diff options
author | Haru <haru@dotalux.com> | 2014-02-24 17:35:23 +0100 |
---|---|---|
committer | Haru <haru@dotalux.com> | 2014-03-05 22:35:03 +0100 |
commit | 4f3156b78f807553b11f37a7d0c898f6e358495b (patch) | |
tree | 1a329c6b4b17f2b6ae4ba113f494efbd67d3c996 /src/map/script.h | |
parent | d25cc9b7dbc103cf1454db37159ffffeedaac149 (diff) | |
download | hercules-4f3156b78f807553b11f37a7d0c898f6e358495b.tar.gz hercules-4f3156b78f807553b11f37a7d0c898f6e358495b.tar.bz2 hercules-4f3156b78f807553b11f37a7d0c898f6e358495b.tar.xz hercules-4f3156b78f807553b11f37a7d0c898f6e358495b.zip |
Ref redesign, part 3
- Updated several functions to properly use the data structures defined
in parts 1 and 2.
- Special thanks to Ind for his help on this, as well as the previous
two parts.
- Fixes some crashes related to variable references passed back and
forth between nested callfunc/callsub scopes (related: 2669e9a,
3259f89, 4f2de07)
Signed-off-by: Haru <haru@dotalux.com>
Diffstat (limited to 'src/map/script.h')
-rw-r--r-- | src/map/script.h | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/map/script.h b/src/map/script.h index 0121f39d8..ae851a7ec 100644 --- a/src/map/script.h +++ b/src/map/script.h @@ -355,7 +355,7 @@ struct script_data { char *str; struct script_retinfo* ri; } u; - struct DBMap** ref; + struct reg_db *ref; }; // Moved defsp from script_state to script_stack since @@ -563,9 +563,9 @@ struct script_interface { const char* (*conv_str) (struct script_state *st,struct script_data *data); 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, int64 val, struct DBMap** ref); + struct script_data* (*push_val)(struct script_stack* stack, enum c_op type, int64 val, struct reg_db *ref); struct script_data *(*get_val) (struct script_state* st, struct script_data* data); - void* (*get_val2) (struct script_state* st, int64 uid, struct DBMap** ref); + void* (*get_val2) (struct script_state* st, int64 uid, struct reg_db *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); void (*pop_stack) (struct script_state* st, int start, int end); @@ -589,7 +589,7 @@ struct script_interface { int (*add_str) (const char* p); const char* (*get_str) (int id); int (*search_str) (const char* p); - void (*setd_sub) (struct script_state *st, struct map_session_data *sd, const char *varname, int elem, void *value, struct DBMap **ref); + void (*setd_sub) (struct script_state *st, struct map_session_data *sd, const char *varname, int elem, void *value, struct reg_db *ref); void (*attach_state) (struct script_state* st); /* */ struct hQueue *(*queue) (int idx); @@ -628,9 +628,9 @@ struct script_interface { void (*read_constdb) (void); const char* (*print_line) (StringBuf *buf, const char *p, const char *mark, int line); void (*errorwarning_sub) (StringBuf *buf, const char *src, const char *file, int start_line, const char *error_msg, const char *error_pos); - int (*set_reg) (struct script_state *st, TBL_PC *sd, int64 num, const char *name, const void *value, struct DBMap **ref); + int (*set_reg) (struct script_state *st, TBL_PC *sd, int64 num, const char *name, const void *value, struct reg_db *ref); void (*stack_expand) (struct script_stack *stack); - struct script_data* (*push_retinfo) (struct script_stack *stack, struct script_retinfo *ri, DBMap **ref); + struct script_data* (*push_retinfo) (struct script_stack *stack, struct script_retinfo *ri, struct reg_db *ref); void (*op_3) (struct script_state *st, int op); void (*op_2str) (struct script_state *st, int op, const char *s1, const char *s2); void (*op_2num) (struct script_state *st, int op, int i1, int i2); @@ -674,15 +674,15 @@ struct script_interface { /** * Array Handling **/ - struct DBMap *(*array_src) (struct script_state *st, struct map_session_data *sd, const char *name, struct DBMap **ref); - void (*array_update) (struct DBMap **src, int64 num, bool empty); - void (*array_delete) (struct DBMap *src, struct script_array *sa); - void (*array_remove_member) (struct DBMap *src, struct script_array *sa, unsigned int idx); + struct reg_db *(*array_src) (struct script_state *st, struct map_session_data *sd, const char *name, struct reg_db *ref); + void (*array_update) (struct reg_db *src, int64 num, bool empty); + void (*array_delete) (struct reg_db *src, struct script_array *sa); + void (*array_remove_member) (struct reg_db *src, struct script_array *sa, unsigned int idx); void (*array_add_member) (struct script_array *sa, unsigned int idx); - unsigned int (*array_size) (struct script_state *st, struct map_session_data *sd, const char *name, struct DBMap** ref); - unsigned int (*array_highest_key) (struct script_state *st, struct map_session_data *sd, const char *name, struct DBMap** ref); + unsigned int (*array_size) (struct script_state *st, struct map_session_data *sd, const char *name, struct reg_db *ref); + unsigned int (*array_highest_key) (struct script_state *st, struct map_session_data *sd, const char *name, struct reg_db *ref); int (*array_free_db) (DBKey key, DBData *data, va_list ap); - void (*array_ensure_zero) (struct script_state *st, struct map_session_data *sd, int64 uid, struct DBMap** ref); + void (*array_ensure_zero) (struct script_state *st, struct map_session_data *sd, int64 uid, struct reg_db *ref); /* */ void (*reg_destroy_single) (struct map_session_data *sd, int64 reg, struct script_reg_state *data); int (*reg_destroy) (DBKey key, DBData *data, va_list ap); |