|
@@ -3752,6 +3752,19 @@ void GDScriptParser::_parse_class(ClassNode *p_class) {
|
|
|
BlockNode *block = alloc_node<BlockNode>();
|
|
|
block->parent_class = p_class;
|
|
|
|
|
|
+ FunctionNode *function = alloc_node<FunctionNode>();
|
|
|
+ function->name = name;
|
|
|
+ function->arguments = arguments;
|
|
|
+ function->argument_types = argument_types;
|
|
|
+ function->default_values = default_values;
|
|
|
+ function->_static = _static;
|
|
|
+ function->line = fnline;
|
|
|
+#ifdef DEBUG_ENABLED
|
|
|
+ function->arguments_usage = arguments_usage;
|
|
|
+#endif // DEBUG_ENABLED
|
|
|
+ function->rpc_mode = rpc_mode;
|
|
|
+ rpc_mode = MultiplayerAPI::RPC_MODE_DISABLED;
|
|
|
+
|
|
|
if (name == "_init") {
|
|
|
|
|
|
if (_static) {
|
|
@@ -3782,7 +3795,9 @@ void GDScriptParser::_parse_class(ClassNode *p_class) {
|
|
|
parenthesis++;
|
|
|
while (true) {
|
|
|
|
|
|
+ current_function = function;
|
|
|
Node *arg = _parse_and_reduce_expression(p_class, _static);
|
|
|
+ current_function = NULL;
|
|
|
cparent->arguments.push_back(arg);
|
|
|
|
|
|
if (tokenizer->get_token() == GDScriptTokenizer::TK_COMMA) {
|
|
@@ -3826,19 +3841,7 @@ void GDScriptParser::_parse_class(ClassNode *p_class) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- FunctionNode *function = alloc_node<FunctionNode>();
|
|
|
- function->name = name;
|
|
|
function->return_type = return_type;
|
|
|
- function->arguments = arguments;
|
|
|
- function->argument_types = argument_types;
|
|
|
- function->default_values = default_values;
|
|
|
- function->_static = _static;
|
|
|
- function->line = fnline;
|
|
|
-#ifdef DEBUG_ENABLED
|
|
|
- function->arguments_usage = arguments_usage;
|
|
|
-#endif // DEBUG_ENABLED
|
|
|
- function->rpc_mode = rpc_mode;
|
|
|
- rpc_mode = MultiplayerAPI::RPC_MODE_DISABLED;
|
|
|
|
|
|
if (_static)
|
|
|
p_class->static_functions.push_back(function);
|