浏览代码

Merge pull request #6813 from Faless/fix_6801_bis

Re-Allow absolute paths, make them behave correctly
Rémi Verschelde 9 年之前
父节点
当前提交
5e373c2a69
共有 3 个文件被更改,包括 1 次插入13 次删除
  1. 1 1
      core/globals.cpp
  2. 0 4
      modules/gdscript/gd_functions.cpp
  3. 0 8
      modules/gdscript/gd_parser.cpp

+ 1 - 1
core/globals.cpp

@@ -54,7 +54,7 @@ String Globals::localize_path(const String& p_path) const {
 	if (resource_path=="")
 		return p_path; //not initialied yet
 
-	if (p_path.begins_with("res://") || p_path.begins_with("user://"))
+	if (p_path.begins_with("res://") || p_path.begins_with("user://") || p_path.is_abs_path())
 		return p_path.simplify_path();
 
 

+ 0 - 4
modules/gdscript/gd_functions.cpp

@@ -840,10 +840,6 @@ void GDFunctions::call(Function p_func,const Variant **p_args,int p_arg_count,Va
 				r_error.error=Variant::CallError::CALL_ERROR_INVALID_ARGUMENT;
 				r_error.argument=0;
 				r_ret=Variant();
-			} else if(((String)(*p_args[0])).begins_with("/")) {
-				r_error.error=Variant::CallError::CALL_ERROR_INVALID_ARGUMENT;
-				r_error.argument=0;
-				r_ret=RTR("Paths cannot start with '/', absolute paths must start with 'res://', 'user://', or 'local://'");
 			} else {
 				r_ret=ResourceLoader::load(*p_args[0]);
 			}

+ 0 - 8
modules/gdscript/gd_parser.cpp

@@ -309,10 +309,6 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
 				_set_error("expected string constant as 'preload' argument.");
 				return NULL;
 			}
-			if (path.begins_with("/")) {
-				_set_error("Paths cannot start with '/', absolute paths must start with \'res://\', \'user://\', or \'local://\'");
-				return NULL;
-			}
 			if (!path.is_abs_path() && base_path!="")
 				path=base_path+"/"+path;
 			path = path.replace("///","//").simplify_path();
@@ -2122,10 +2118,6 @@ void GDParser::_parse_extends(ClassNode *p_class) {
 			_set_error("'extends' constant must be a string.");
 			return;
 		}
-		if (((String)(constant)).begins_with("/")) {
-			_set_error("Paths cannot start with '/', absolute paths must start with \'res://\', \'user://\', or \'local://\'");
-			return;
-		}
 
 		p_class->extends_file=constant;
 		tokenizer->advance();