From fefaf392529f71debc63294ed6ee01938cb73eff Mon Sep 17 00:00:00 2001 From: Haru Date: Wed, 25 Dec 2013 20:10:29 +0100 Subject: Added support for string vars on commands that require a string - Fixes bugreport:7901, thanks to Angelmelody http://hercules.ws/board/tracker/issue-7901-about-pass-variable-type-as-function-parameter - Bonus: debugmes can now take both strings and numbers (i.e. to print a number variable you no longer need to do 'debugmes "" + .@num;') Signed-off-by: Haru --- src/map/script.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/map/script.h') diff --git a/src/map/script.h b/src/map/script.h index 8076ea02e..2f7499569 100644 --- a/src/map/script.h +++ b/src/map/script.h @@ -85,6 +85,8 @@ struct eri; #define script_isstring(st,i) data_isstring(script_getdata((st),(i))) #define script_isint(st,i) data_isint(script_getdata((st),(i))) +#define script_isstringtype(st,i) data_isstring(script->get_val((st), script_getdata((st),(i)))) +#define script_isinttype(st,i) data_isint(script->get_val((st), script_getdata((st),(i)))) #define script_getnum(st,val) (script->conv_num((st), script_getdata((st),(val)))) #define script_getstr(st,val) (script->conv_str((st), script_getdata((st),(val)))) @@ -548,7 +550,7 @@ struct script_interface { TBL_PC *(*rid2sd) (struct script_state *st); void (*detach_rid) (struct script_state* st); struct script_data* (*push_val)(struct script_stack* stack, enum c_op type, int val, struct DBMap** ref); - void (*get_val) (struct script_state* st, struct script_data* data); + struct script_data *(*get_val) (struct script_state* st, struct script_data* data); void* (*get_val2) (struct script_state* st, int uid, struct DBMap** ref); struct script_data* (*push_str) (struct script_stack* stack, enum c_op type, char* str); struct script_data* (*push_copy) (struct script_stack* stack, int pos); -- cgit v1.2.3-60-g2f50