summaryrefslogtreecommitdiff
path: root/src/map/script.h
diff options
context:
space:
mode:
authorHaru <haru@dotalux.com>2014-02-24 17:35:23 +0100
committerHaru <haru@dotalux.com>2014-03-05 22:35:03 +0100
commit4f3156b78f807553b11f37a7d0c898f6e358495b (patch)
tree1a329c6b4b17f2b6ae4ba113f494efbd67d3c996 /src/map/script.h
parentd25cc9b7dbc103cf1454db37159ffffeedaac149 (diff)
downloadhercules-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.h26
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);