From be3017114f30cda349b4417141d958862cc3bc60 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Thu, 15 Dec 2022 19:29:12 +0100 Subject: [PATCH] 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) --- core/os/os.cpp | 4 ---- core/os/os.h | 2 +- doc/classes/Input.xml | 14 +++++++------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/core/os/os.cpp b/core/os/os.cpp index fcf712d442a..bc221dcb0c2 100644 --- a/core/os/os.cpp +++ b/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; } diff --git a/core/os/os.h b/core/os/os.h index 0e59d10ca33..39e3bcb51c5 100644 --- a/core/os/os.h +++ b/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); diff --git a/doc/classes/Input.xml b/doc/classes/Input.xml index f30d9c1c633..4f61556e430 100644 --- a/doc/classes/Input.xml +++ b/doc/classes/Input.xml @@ -364,7 +364,7 @@ - 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. @@ -372,18 +372,18 @@ - Stops the vibration of the joypad. + Stops the vibration of the joypad started with [method start_joy_vibration]. - 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].