Browse Source

Subclasses can now extend from other subclasses contained in scripts derived from relative paths.

Saracen 9 years ago
parent
commit
d643a40f95
1 changed files with 16 additions and 1 deletions
  1. 16 1
      modules/gdscript/gd_compiler.cpp

+ 16 - 1
modules/gdscript/gd_compiler.cpp

@@ -1421,7 +1421,22 @@ Error GDCompiler::_parse_class(GDScript *p_script,GDScript *p_owner,const GDPars
 
 			if (path.is_rel_path()) {
 
-				String base = p_script->get_path();
+				String base;
+
+				if (p_owner) {
+					GDScript *current_class = p_owner;
+					while (current_class != NULL) {
+						base=current_class->get_path();
+						if (base=="")
+							current_class = current_class->_owner;
+						else
+							break;
+					}
+				}
+				else {
+					base = p_script->get_path();
+				}
+
 				if (base=="" || base.is_rel_path()) {
 					_set_error("Could not resolve relative path for parent class: "+path,p_class);
 					return ERR_FILE_NOT_FOUND;