This commit is contained in:
Juan Linietsky
2015-08-23 20:22:08 -03:00
21 changed files with 6122 additions and 6044 deletions

View File

@@ -2315,6 +2315,17 @@ void GDParser::_parse_class(ClassNode *p_class) {
case Variant::INT: {
if (tokenizer->get_token()==GDTokenizer::TK_IDENTIFIER && tokenizer->get_token_identifier()=="FLAGS") {
current_export.hint=PROPERTY_HINT_ALL_FLAGS;
tokenizer->advance();
if (tokenizer->get_token()!=GDTokenizer::TK_PARENTHESIS_CLOSE) {
_set_error("Expected ')' in hint.");
return;
}
break;
}
if (tokenizer->get_token()==GDTokenizer::TK_CONSTANT && tokenizer->get_token_constant().get_type()==Variant::STRING) {
//enumeration
current_export.hint=PROPERTY_HINT_ENUM;
@@ -2542,16 +2553,23 @@ void GDParser::_parse_class(ClassNode *p_class) {
} else if (tokenizer->get_token()==GDTokenizer::TK_IDENTIFIER) {
String identifier = tokenizer->get_token_identifier();
if (!ObjectTypeDB::is_type(identifier,"Resource")) {
current_export=PropertyInfo();
_set_error("Export hint not a type or resource.");
if (identifier == "flag") {
current_export.type=Variant::INT;
current_export.hint=PROPERTY_HINT_ALL_FLAGS;
}else if (identifier == "multiline"){
current_export.type=Variant::STRING;
current_export.hint=PROPERTY_HINT_MULTILINE_TEXT;
} else {
if (!ObjectTypeDB::is_type(identifier,"Resource")) {
current_export=PropertyInfo();
_set_error("Export hint not a type or resource.");
}
current_export.type=Variant::OBJECT;
current_export.hint=PROPERTY_HINT_RESOURCE_TYPE;
current_export.hint_string=identifier;
}
current_export.type=Variant::OBJECT;
current_export.hint=PROPERTY_HINT_RESOURCE_TYPE;
current_export.hint_string=identifier;
tokenizer->advance();
}

View File

@@ -97,6 +97,7 @@ const char* GDTokenizer::token_names[TK_MAX]={
"preload",
"assert",
"yield",
"signal",
"'['",
"']'",
"'{'",