diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/battleground.c | 14 | ||||
-rw-r--r-- | src/map/clif.c | 2 | ||||
-rw-r--r-- | src/map/map.c | 6 | ||||
-rw-r--r-- | src/map/pc.c | 12 | ||||
-rw-r--r-- | src/map/script.c | 38 | ||||
-rw-r--r-- | src/map/script.h | 53 |
6 files changed, 66 insertions, 59 deletions
diff --git a/src/map/battleground.c b/src/map/battleground.c index cbf859b80..2b7614761 100644 --- a/src/map/battleground.c +++ b/src/map/battleground.c @@ -472,7 +472,7 @@ struct bg_arena *bg_name2arena (char *name) { return NULL; } int bg_id2pos ( int queue_id, int account_id ) { - struct hQueue *queue = script->queue(queue_id); + struct script_queue *queue = script->queue(queue_id); if( queue ) { int i, pos = 1; for(i = 0; i < queue->size; i++ ) { @@ -496,7 +496,7 @@ void bg_queue_ready_ack (struct bg_arena *arena, struct map_session_data *sd, bo if( !response ) bg->queue_pc_cleanup(sd); else { - struct hQueue *queue = script->queue(arena->queue_id); + struct script_queue *queue = script->queue(arena->queue_id); int i, count = 0; sd->bg_queue.ready = 1; @@ -531,7 +531,7 @@ void bg_queue_player_cleanup(struct map_session_data *sd) { sd->bg_queue.type = 0; } void bg_match_over(struct bg_arena *arena, bool canceled) { - struct hQueue *queue = script->queue(arena->queue_id); + struct script_queue *queue = script->queue(arena->queue_id); int i; nullpo_retv(arena); @@ -560,7 +560,7 @@ void bg_match_over(struct bg_arena *arena, bool canceled) { script->queue_clear(arena->queue_id); } void bg_begin(struct bg_arena *arena) { - struct hQueue *queue = script->queue(arena->queue_id); + struct script_queue *queue = script->queue(arena->queue_id); int i, count = 0; nullpo_retv(arena); @@ -645,7 +645,7 @@ int bg_afk_timer(int tid, int64 tick, int id, intptr_t data) { } void bg_queue_pregame(struct bg_arena *arena) { - struct hQueue *queue; + struct script_queue *queue; int i; nullpo_retv(arena); @@ -667,7 +667,7 @@ int bg_fillup_timer(int tid, int64 tick, int id, intptr_t data) { void bg_queue_check(struct bg_arena *arena) { int count; - struct hQueue *queue; + struct script_queue *queue; nullpo_retv(arena); queue = script->queue(arena->queue_id); @@ -684,7 +684,7 @@ void bg_queue_check(struct bg_arena *arena) { } void bg_queue_add(struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types type) { enum BATTLEGROUNDS_QUEUE_ACK result = bg->can_queue(sd,arena,type); - struct hQueue *queue; + struct script_queue *queue = NULL; int i, count = 0; nullpo_retv(sd); diff --git a/src/map/clif.c b/src/map/clif.c index bc4313f46..2b9ed43c6 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -610,7 +610,7 @@ bool clif_send(const void* buf, int len, struct block_list* bl, enum send_target case BG_QUEUE: if( sd && sd->bg_queue.arena ) { - struct hQueue *queue = script->queue(sd->bg_queue.arena->queue_id); + struct script_queue *queue = script->queue(sd->bg_queue.arena->queue_id); for( i = 0; i < queue->size; i++ ) { struct map_session_data *qsd = NULL; diff --git a/src/map/map.c b/src/map/map.c index cd2ba17c2..dd5baa626 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -1803,9 +1803,9 @@ int map_quit(struct map_session_data *sd) { pc->itemcd_do(sd,false); for( i = 0; i < sd->queues_count; i++ ) { - struct hQueue *queue; - if( (queue = script->queue(sd->queues[i])) && queue->onLogOut[0] != '\0' ) { - npc->event(sd, queue->onLogOut, 0); + struct script_queue *queue = script->queue(sd->queues[i]); + if (queue && queue->event_logout[0] != '\0') { + npc->event(sd, queue->event_logout, 0); } } /* two times, the npc event above may assign a new one or delete others */ diff --git a/src/map/pc.c b/src/map/pc.c index 351d77b26..0671bfb5e 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -5527,10 +5527,10 @@ int pc_setpos(struct map_session_data* sd, unsigned short map_index, int x, int sd->state.pmap = sd->bl.m; for( i = 0; i < sd->queues_count; i++ ) { - struct hQueue *queue; - if( (queue = script->queue(sd->queues[i])) && queue->onMapChange[0] != '\0' ) { + struct script_queue *queue = script->queue(sd->queues[i]); + if (queue && queue->event_mapchange[0] != '\0') { pc->setregstr(sd, script->add_str("QMapChangeTo"), map->list[m].name); - npc->event(sd, queue->onMapChange, 0); + npc->event(sd, queue->event_mapchange, 0); } } @@ -7635,9 +7635,9 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) { } for( i = 0; i < sd->queues_count; i++ ) { - struct hQueue *queue; - if( (queue = script->queue(sd->queues[i])) && queue->onDeath[0] != '\0' ) - npc->event(sd, queue->onDeath, 0); + struct script_queue *queue = script->queue(sd->queues[i]); + if (queue && queue->event_death[0] != '\0') + npc->event(sd, queue->event_death, 0); } npc->script_event(sd,NPCE_DIE); diff --git a/src/map/script.c b/src/map/script.c index de52dd9ea..45f84ec18 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -18790,7 +18790,7 @@ BUILDIN(montransform) { return true; } -struct hQueue *script_hqueue_get(int idx) +struct script_queue *script_hqueue_get(int idx) { if (idx < 0 || idx >= VECTOR_LENGTH(script->hq) || VECTOR_INDEX(script->hq, idx).size == -1) return NULL; @@ -18812,9 +18812,9 @@ int script_hqueue_create(void) VECTOR_INDEX(script->hq, idx).id = i; VECTOR_INDEX(script->hq, idx).size = 0; VECTOR_INDEX(script->hq, idx).items = 0; - VECTOR_INDEX(script->hq, idx).onDeath[0] = '\0'; - VECTOR_INDEX(script->hq, idx).onLogOut[0] = '\0'; - VECTOR_INDEX(script->hq, idx).onMapChange[0] = '\0'; + VECTOR_INDEX(script->hq, idx).event_death[0] = '\0'; + VECTOR_INDEX(script->hq, idx).event_logout[0] = '\0'; + VECTOR_INDEX(script->hq, idx).event_mapchange[0] = '\0'; return idx; } /* set .@id,queue(); */ @@ -18947,28 +18947,28 @@ BUILDIN(queueopt) { if (idx < 0 || idx >= VECTOR_LENGTH(script->hq) || VECTOR_INDEX(script->hq, idx).size == -1) { ShowWarning("buildin_queueopt: unknown queue id %d\n",idx); script_pushint(st, 1); - } else if( var <= HQO_NONE || var >= HQO_MAX ) { + } else if( var <= SQO_NONE || var >= SQO_MAX ) { ShowWarning("buildin_queueopt: unknown optionType %d\n",var); script_pushint(st, 1); } else { - switch( (enum hQueueOpt)var ) { - case HQO_OnDeath: + switch ((enum ScriptQueueOptions)var) { + case SQO_ONDEATH: if( script_hasdata(st, 4) ) - safestrncpy(VECTOR_INDEX(script->hq, idx).onDeath, script_getstr(st, 4), EVENT_NAME_LENGTH); + safestrncpy(VECTOR_INDEX(script->hq, idx).event_death, script_getstr(st, 4), EVENT_NAME_LENGTH); else - VECTOR_INDEX(script->hq, idx).onDeath[0] = '\0'; + VECTOR_INDEX(script->hq, idx).event_death[0] = '\0'; break; - case HQO_onLogOut: + case SQO_ONLOGOUT: if( script_hasdata(st, 4) ) - safestrncpy(VECTOR_INDEX(script->hq, idx).onLogOut, script_getstr(st, 4), EVENT_NAME_LENGTH); + safestrncpy(VECTOR_INDEX(script->hq, idx).event_logout, script_getstr(st, 4), EVENT_NAME_LENGTH); else - VECTOR_INDEX(script->hq, idx).onLogOut[0] = '\0'; + VECTOR_INDEX(script->hq, idx).event_logout[0] = '\0'; break; - case HQO_OnMapChange: + case SQO_ONMAPCHANGE: if( script_hasdata(st, 4) ) - safestrncpy(VECTOR_INDEX(script->hq, idx).onMapChange, script_getstr(st, 4), EVENT_NAME_LENGTH); + safestrncpy(VECTOR_INDEX(script->hq, idx).event_mapchange, script_getstr(st, 4), EVENT_NAME_LENGTH); else - VECTOR_INDEX(script->hq, idx).onMapChange[0] = '\0'; + VECTOR_INDEX(script->hq, idx).event_mapchange[0] = '\0'; break; default: ShowWarning("buildin_queueopt: unsupported optionType %d\n",var); @@ -19047,7 +19047,7 @@ void script_hqueue_clear(int idx) { /* creates a new queue iterator, returns its id */ BUILDIN(queueiterator) { int qid = script_getnum(st, 2); - struct hQueue *queue = NULL; + struct script_queue *queue = NULL; int idx = VECTOR_LENGTH(script->hqi); int i; @@ -19088,7 +19088,7 @@ BUILDIN(queueiterator) { /* returns next/first member in the iterator, 0 if none */ BUILDIN(qiget) { int idx = script_getnum(st, 2); - struct hQueueIterator *it = NULL; + struct script_queue_iterator *it = NULL; if (idx < 0 || idx >= VECTOR_LENGTH(script->hqi)) { ShowWarning("buildin_qiget: unknown queue iterator id %d\n",idx); @@ -19111,7 +19111,7 @@ BUILDIN(qiget) { /* returns 1:0 if there is the current member in the iterator exists */ BUILDIN(qicheck) { int idx = script_getnum(st, 2); - struct hQueueIterator *it = NULL; + struct script_queue_iterator *it = NULL; if (idx < 0 || idx >= VECTOR_LENGTH(script->hqi)) { ShowWarning("buildin_qicheck: unknown queue iterator id %d\n",idx); @@ -20376,7 +20376,7 @@ void script_parse_builtin(void) { BUILDIN_DEF(showevent, "i?"), /** - * hQueue [Ind/Hercules] + * script_queue [Ind/Hercules] **/ BUILDIN_DEF(queue,""), BUILDIN_DEF(queuesize,"i"), diff --git a/src/map/script.h b/src/map/script.h index d3c64f401..aa31389f6 100644 --- a/src/map/script.h +++ b/src/map/script.h @@ -223,12 +223,13 @@ typedef enum c_op { #endif // PCRE_SUPPORT } c_op; -enum hQueueOpt { - HQO_NONE, - HQO_onLogOut, - HQO_OnDeath, - HQO_OnMapChange, - HQO_MAX, +/// Script queue options +enum ScriptQueueOptions { + SQO_NONE, ///< No options set + SQO_ONLOGOUT, ///< Execute event on logout + SQO_ONDEATH, ///< Execute event on death + SQO_ONMAPCHANGE, ///< Execute event on map change + SQO_MAX, }; enum e_script_state { RUN,STOP,END,RERUNLINE,GOTO,RETFUNC,CLOSE }; @@ -391,22 +392,28 @@ struct script_stack { struct reg_db scope; ///< scope variables }; -/* [Ind/Hercules] */ -struct hQueue { - int id; - int *item; - int items;/* how many actual items are in the array */ - int size;/* size of the *item array, not the current amount of items in it since it can have empty slots */ - /* events */ - char onLogOut[EVENT_NAME_LENGTH]; - char onDeath[EVENT_NAME_LENGTH]; - char onMapChange[EVENT_NAME_LENGTH]; +/** + * Data structure to represent a script queue. + * @author Ind/Hercules + */ +struct script_queue { + int id; ///< Queue identifier + int *item; ///< Items in the queue (variable-size array) + int items; ///< Amount of elements in \c item + int size; ///< Capacity of the \c item array (not the current amount of items in it since it can have empty slots + /// Events + char event_logout[EVENT_NAME_LENGTH]; ///< Logout event + char event_death[EVENT_NAME_LENGTH]; ///< Death event + char event_mapchange[EVENT_NAME_LENGTH]; ///< Map change event }; -struct hQueueIterator { - int *item; - int items; - int pos; +/** + * Iterator for a struct script_queue. + */ +struct script_queue_iterator { + int *item; ///< Items in the queue (iterator's cached copy) + int items; ///< Amount of elements in \c item + int pos; ///< Iterator's cursor }; struct script_state { @@ -515,8 +522,8 @@ struct script_interface { struct eri *st_ers; struct eri *stack_ers; /* */ - VECTOR_DECL(struct hQueue) hq; - VECTOR_DECL(struct hQueueIterator) hqi; + VECTOR_DECL(struct script_queue) hq; + VECTOR_DECL(struct script_queue_iterator) hqi; /* */ char **buildin; unsigned int buildin_count; @@ -666,7 +673,7 @@ struct script_interface { 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); + struct script_queue *(*queue) (int idx); bool (*queue_add) (int idx, int var); bool (*queue_del) (int idx); bool (*queue_remove) (int idx, int var); |