Browse Source

SceneRPCInterface: Sort rpc names using `StringLikeVariantOrder`

rune-scape 9 months ago
parent
commit
3c8615221a

+ 1 - 11
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) {
 void SceneRPCInterface::_parse_rpc_config(const Variant &p_config, bool p_for_node, RPCConfigCache &r_cache) {
 	if (p_config.get_type() == Variant::NIL) {
 	if (p_config.get_type() == Variant::NIL) {
 		return;
 		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);
 	ERR_FAIL_COND(p_config.get_type() != Variant::DICTIONARY);
 	const Dictionary config = p_config;
 	const Dictionary config = p_config;
 	Array names = config.keys();
 	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++) {
 	for (int i = 0; i < names.size(); i++) {
 		ERR_CONTINUE(!names[i].is_string());
 		ERR_CONTINUE(!names[i].is_string());
 		String name = names[i].operator String();
 		String name = names[i].operator String();

+ 0 - 2
modules/multiplayer/scene_rpc_interface.h

@@ -91,8 +91,6 @@ private:
 #endif
 #endif
 
 
 protected:
 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 _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);
 	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);