improve reporting of error in wrong inheritance for autoload script

This commit is contained in:
Juan Linietsky 2016-01-13 09:42:03 -03:00
parent 96317566c2
commit c633a29a39
2 changed files with 5 additions and 4 deletions

View file

@ -78,11 +78,11 @@ void OS_Unix::print_error(const char* p_function,const char* p_file,int p_line,c
break;
case ERR_WARNING:
print("\E[1;33mWARNING: %s: \E[0m\E[1m%s\n",p_function,err_details);
print("\E[0;33m At: %s:%i.\E[0m\n",p_file,p_line);
print("\E[0;33m At: %s:%i.\E[0m\n",p_file,p_line);
break;
case ERR_SCRIPT:
print("\E[1;35mSCRIPT ERROR: %s: \E[0m\E[1m%s\n",p_function,err_details);
print("\E[0;35m At: %s:%i.\E[0m\n",p_file,p_line);
print("\E[0;35m At: %s:%i.\E[0m\n",p_file,p_line);
break;
}
}

View file

@ -1374,12 +1374,13 @@ bool Main::start() {
} else if (res->is_type("Script")) {
Ref<Script> s = res;
StringName ibt = s->get_instance_base_type();
bool valid_type = !ObjectTypeDB::is_type(ibt,"Node");
ERR_EXPLAIN("Script does not inherit a Node: "+path);
ERR_CONTINUE( !ObjectTypeDB::is_type(ibt,"Node") );
ERR_CONTINUE( !valid_type );
Object *obj = ObjectTypeDB::instance(ibt);
ERR_EXPLAIN("Cannot instance node for autoload type: "+String(ibt));
ERR_EXPLAIN("Cannot instance script for autoload, expected 'Node' inheritance, got: "+String(ibt));
ERR_CONTINUE( obj==NULL );
n = obj->cast_to<Node>();