diff options
| author | Thaddeus Crews <repiteo@outlook.com> | 2024-11-11 14:18:07 -0600 |
|---|---|---|
| committer | Thaddeus Crews <repiteo@outlook.com> | 2024-11-11 14:18:07 -0600 |
| commit | def34fb06e2079e59e4d1522f3aceb1fbd7069bd (patch) | |
| tree | 02f463a2df8214421595702ba516aaf66f87e552 | |
| parent | 3945635142e02bd0af5f56a3ce6f8ef9c38f89f1 (diff) | |
| parent | 3c8615221abe22029ccd8e22891018c2bc5eaad9 (diff) | |
| download | redot-engine-def34fb06e2079e59e4d1522f3aceb1fbd7069bd.tar.gz | |
Merge pull request #98472 from rune-scape/sort-rpc
SceneRPCInterface: Sort rpc names using `StringLikeVariantOrder`
| -rw-r--r-- | modules/multiplayer/scene_rpc_interface.cpp | 12 | ||||
| -rw-r--r-- | modules/multiplayer/scene_rpc_interface.h | 2 |
2 files changed, 1 insertions, 13 deletions
diff --git a/modules/multiplayer/scene_rpc_interface.cpp b/modules/multiplayer/scene_rpc_interface.cpp index 0938d7ef99..b5f3889268 100644 --- a/modules/multiplayer/scene_rpc_interface.cpp +++ b/modules/multiplayer/scene_rpc_interface.cpp @@ -73,16 +73,6 @@ int get_packet_len(uint32_t p_node_target, int p_packet_len) { } } -bool SceneRPCInterface::_sort_rpc_names(const Variant &p_l, const Variant &p_r) { - if (likely(p_l.is_string() && p_r.is_string())) { - return p_l.operator String() < p_r.operator String(); - } - bool valid = false; - Variant res; - Variant::evaluate(Variant::OP_LESS, p_l, p_r, res, valid); - return valid ? res.operator bool() : false; -} - void SceneRPCInterface::_parse_rpc_config(const Variant &p_config, bool p_for_node, RPCConfigCache &r_cache) { if (p_config.get_type() == Variant::NIL) { return; @@ -90,7 +80,7 @@ void SceneRPCInterface::_parse_rpc_config(const Variant &p_config, bool p_for_no ERR_FAIL_COND(p_config.get_type() != Variant::DICTIONARY); const Dictionary config = p_config; Array names = config.keys(); - names.sort_custom(callable_mp_static(&SceneRPCInterface::_sort_rpc_names)); // Ensure ID order + names.sort_custom(callable_mp_static(&StringLikeVariantOrder::compare)); // Ensure ID order for (int i = 0; i < names.size(); i++) { ERR_CONTINUE(!names[i].is_string()); String name = names[i].operator String(); diff --git a/modules/multiplayer/scene_rpc_interface.h b/modules/multiplayer/scene_rpc_interface.h index 852cef7830..5c9b66d5f5 100644 --- a/modules/multiplayer/scene_rpc_interface.h +++ b/modules/multiplayer/scene_rpc_interface.h @@ -91,8 +91,6 @@ private: #endif protected: - static bool _sort_rpc_names(const Variant &p_l, const Variant &p_r); - void _process_rpc(Node *p_node, const uint16_t p_rpc_method_id, int p_from, const uint8_t *p_packet, int p_packet_len, int p_offset); void _send_rpc(Node *p_from, int p_to, uint16_t p_rpc_id, const RPCConfig &p_config, const StringName &p_name, const Variant **p_arg, int p_argcount); |
