- Added support for scripts to call user-defined functions without the use of callfunc
- Note: the callfunc; method is still required to be defined in the source git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15979 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
7aff48d520
commit
2578dfe2f9
@ -951,8 +951,21 @@ const char* parse_callfunc(const char* p, int require_paren)
|
|||||||
disp_error_message("parse_callfunc: callsub has no arguments, please review it's definition",p);
|
disp_error_message("parse_callfunc: callsub has no arguments, please review it's definition",p);
|
||||||
if( *arg != '*' )
|
if( *arg != '*' )
|
||||||
++arg; // count func as argument
|
++arg; // count func as argument
|
||||||
} else
|
} else {
|
||||||
disp_error_message("parse_line: expect command, missing function name or calling undeclared function",p);
|
const char* name = get_str(func);
|
||||||
|
if( strdb_get(userfunc_db, name) == NULL ) {
|
||||||
|
disp_error_message("parse_line: expect command, missing function name or calling undeclared function",p);
|
||||||
|
} else {
|
||||||
|
int callfunc = search_str("callfunc");
|
||||||
|
add_scriptl(callfunc);
|
||||||
|
add_scriptc(C_ARG);
|
||||||
|
add_scriptc(C_STR);
|
||||||
|
while( *name ) add_scriptb(*name ++);
|
||||||
|
add_scriptb(0);
|
||||||
|
arg = buildin_func[str_data[callfunc].val].arg;
|
||||||
|
if( *arg != '*' ) ++ arg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
p = skip_word(p);
|
p = skip_word(p);
|
||||||
p = skip_space(p);
|
p = skip_space(p);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user