Browse Source

Silence `Input.vibrate_handheld()` warning as it's already documented

The warning causes messages to be spammed if you are calling this
method in a game that runs on both desktop and mobile platforms,
unless you guard all calls to `Input.vibrate_handheld()` with
`OS.has_feature("mobile") or OS.has_feature("web")`.

Since the limitation is already documented (and is obvious enough
given the method's name), the warning message is redundant.

(cherry picked from commit 4a991887bf3dd5fbb687fb379f06ac85aa4a6245)
Hugo Locurcio 2 years ago
parent
commit
be3017114f
3 changed files with 8 additions and 12 deletions
  1. 0 4
      core/os/os.cpp
  2. 1 1
      core/os/os.h
  3. 7 7
      doc/classes/Input.xml

+ 0 - 4
core/os/os.cpp

@@ -186,10 +186,6 @@ int OS::get_process_id() const {
 	return -1;
 };
 
-void OS::vibrate_handheld(int p_duration_ms) {
-	WARN_PRINT("vibrate_handheld() only works with Android, iOS and HTML5");
-}
-
 bool OS::is_stdout_verbose() const {
 	return _verbose_stdout;
 }

+ 1 - 1
core/os/os.h

@@ -365,7 +365,7 @@ public:
 	virtual Error kill(const ProcessID &p_pid) = 0;
 	virtual int get_process_id() const;
 	virtual bool is_process_running(const ProcessID &p_pid) const = 0;
-	virtual void vibrate_handheld(int p_duration_ms = 500);
+	virtual void vibrate_handheld(int p_duration_ms = 500) {}
 
 	virtual Error shell_open(String p_uri);
 	virtual Error set_cwd(const String &p_cwd);

+ 7 - 7
doc/classes/Input.xml

@@ -364,7 +364,7 @@
 			<argument index="2" name="strong_magnitude" type="float" />
 			<argument index="3" name="duration" type="float" default="0" />
 			<description>
-				Starts to vibrate the joypad. Joypads usually come with two rumble motors, a strong and a weak one. [code]weak_magnitude[/code] is the strength of the weak motor (between 0 and 1) and [code]strong_magnitude[/code] is the strength of the strong motor (between 0 and 1). [code]duration[/code] is the duration of the effect in seconds (a duration of 0 will try to play the vibration indefinitely).
+				Starts to vibrate the joypad. Joypads usually come with two rumble motors, a strong and a weak one. [code]weak_magnitude[/code] is the strength of the weak motor (between 0 and 1) and [code]strong_magnitude[/code] is the strength of the strong motor (between 0 and 1). [code]duration[/code] is the duration of the effect in seconds (a duration of 0 will try to play the vibration indefinitely). The vibration can be stopped early by calling [method stop_joy_vibration].
 				[b]Note:[/b] Not every hardware is compatible with long effect durations; it is recommended to restart an effect if it has to be played for more than a few seconds.
 			</description>
 		</method>
@@ -372,18 +372,18 @@
 			<return type="void" />
 			<argument index="0" name="device" type="int" />
 			<description>
-				Stops the vibration of the joypad.
+				Stops the vibration of the joypad started with [method start_joy_vibration].
 			</description>
 		</method>
 		<method name="vibrate_handheld">
 			<return type="void" />
 			<argument index="0" name="duration_ms" type="int" default="500" />
 			<description>
-				Vibrate handheld devices.
-				[b]Note:[/b] This method is implemented on Android, iOS, and HTML5.
-				[b]Note:[/b] For Android, it requires enabling the [code]VIBRATE[/code] permission in the export preset.
-				[b]Note:[/b] For iOS, specifying the duration is supported in iOS 13 and later.
-				[b]Note:[/b] Some web browsers such as Safari and Firefox for Android do not support this method.
+				Vibrate the handheld device for the specified duration in milliseconds.
+				[b]Note:[/b] This method is implemented on Android, iOS, and HTML5. It has no effect on other platforms.
+				[b]Note:[/b] For Android, [method vibrate_handheld] requires enabling the [code]VIBRATE[/code] permission in the export preset. Otherwise, [method vibrate_handheld] will have no effect.
+				[b]Note:[/b] For iOS, specifying the duration is only supported in iOS 13 and later.
+				[b]Note:[/b] Some web browsers such as Safari and Firefox for Android do not support [method vibrate_handheld].
 			</description>
 		</method>
 		<method name="warp_mouse_position">