diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2022-07-28 20:46:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-28 20:46:31 +0200 |
commit | 14d021287bced6a7f5ab9db24936bd07b4cfdfd0 (patch) | |
tree | d56647d7c1a68b282074afbab8ccf4bf890718c2 /core/variant | |
parent | 8e0f328a80a4c01bc4788a9aa6daaeb3097b4fab (diff) | |
parent | ca7d572908c58c587214b8f65bdd4078d0185ab2 (diff) |
Merge pull request #63049 from Faless/mp/4.x_as_module
Diffstat (limited to 'core/variant')
-rw-r--r-- | core/variant/callable.cpp | 9 | ||||
-rw-r--r-- | core/variant/callable.h | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/core/variant/callable.cpp b/core/variant/callable.cpp index f20ec4037a..8b9b5f41de 100644 --- a/core/variant/callable.cpp +++ b/core/variant/callable.cpp @@ -63,17 +63,19 @@ void Callable::call(const Variant **p_arguments, int p_argcount, Variant &r_retu } } -void Callable::rpc(int p_id, const Variant **p_arguments, int p_argcount, CallError &r_call_error) const { +Error Callable::rpc(int p_id, const Variant **p_arguments, int p_argcount, CallError &r_call_error) const { if (is_null()) { r_call_error.error = CallError::CALL_ERROR_INSTANCE_IS_NULL; r_call_error.argument = 0; r_call_error.expected = 0; + return ERR_UNCONFIGURED; } else if (!is_custom()) { r_call_error.error = CallError::CALL_ERROR_INVALID_METHOD; r_call_error.argument = 0; r_call_error.expected = 0; + return ERR_UNCONFIGURED; } else { - custom->rpc(p_id, p_arguments, p_argcount, r_call_error); + return custom->rpc(p_id, p_arguments, p_argcount, r_call_error); } } @@ -316,10 +318,11 @@ StringName CallableCustom::get_method() const { ERR_FAIL_V_MSG(StringName(), vformat("Can't get method on CallableCustom \"%s\".", get_as_text())); } -void CallableCustom::rpc(int p_peer_id, const Variant **p_arguments, int p_argcount, Callable::CallError &r_call_error) const { +Error CallableCustom::rpc(int p_peer_id, const Variant **p_arguments, int p_argcount, Callable::CallError &r_call_error) const { r_call_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD; r_call_error.argument = 0; r_call_error.expected = 0; + return ERR_UNCONFIGURED; } const Callable *CallableCustom::get_base_comparator() const { diff --git a/core/variant/callable.h b/core/variant/callable.h index bbcf5427ba..954365d010 100644 --- a/core/variant/callable.h +++ b/core/variant/callable.h @@ -71,7 +71,7 @@ public: void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, CallError &r_call_error) const; void call_deferred(const Variant **p_arguments, int p_argcount) const; - void rpc(int p_id, const Variant **p_arguments, int p_argcount, CallError &r_call_error) const; + Error rpc(int p_id, const Variant **p_arguments, int p_argcount, CallError &r_call_error) const; _FORCE_INLINE_ bool is_null() const { return method == StringName() && object == 0; @@ -129,7 +129,7 @@ public: virtual StringName get_method() const; virtual ObjectID get_object() const = 0; //must always be able to provide an object virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const = 0; - virtual void rpc(int p_peer_id, const Variant **p_arguments, int p_argcount, Callable::CallError &r_call_error) const; + virtual Error rpc(int p_peer_id, const Variant **p_arguments, int p_argcount, Callable::CallError &r_call_error) const; virtual const Callable *get_base_comparator() const; CallableCustom(); |