summaryrefslogtreecommitdiff
path: root/modules/gdscript/gd_parser.cpp
diff options
context:
space:
mode:
authorGen <z.rz2323721@gmail.com>2015-08-01 14:02:10 +0800
committerGen <z.rz2323721@gmail.com>2015-08-01 14:02:10 +0800
commit7843ec6633625455e689e711aa62e9d8337689fa (patch)
tree5718f14aec592ca1fd0064b4f26125b0e8c10fc4 /modules/gdscript/gd_parser.cpp
parent922356b903061cda7591090bf19e8346c3a78cf5 (diff)
add flag and multiline hits in GDScript
`export (flag) var test` for PROPERTY_HINT_ALL_FLAGS `export (multiline) var test` for PROPERTY_HINT_MULTILINE_TEXT
Diffstat (limited to 'modules/gdscript/gd_parser.cpp')
-rw-r--r--modules/gdscript/gd_parser.cpp25
1 files changed, 16 insertions, 9 deletions
diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp
index afe8c9aa71..755997ef31 100644
--- a/modules/gdscript/gd_parser.cpp
+++ b/modules/gdscript/gd_parser.cpp
@@ -2542,16 +2542,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();
}