diff options
author | Andrei Karas <akaras@inbox.ru> | 2018-04-18 20:36:15 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2018-04-23 07:33:44 +0300 |
commit | ab54c46a7fb4c527bf19a0ea019c6592cc504660 (patch) | |
tree | 6fee3195892f6f0ff887c2bafeb68485c7c87848 /src | |
parent | 0c75c27cfb93cb9102747e1bf68c1474dc6eb4d0 (diff) | |
download | hercules-ab54c46a7fb4c527bf19a0ea019c6592cc504660.tar.gz hercules-ab54c46a7fb4c527bf19a0ea019c6592cc504660.tar.bz2 hercules-ab54c46a7fb4c527bf19a0ea019c6592cc504660.tar.xz hercules-ab54c46a7fb4c527bf19a0ea019c6592cc504660.zip |
Split pc_delspiritball into two functions.
Move job mask related code into pc_delspiritball_sub.
Diffstat (limited to 'src')
-rw-r--r-- | src/map/pc.c | 19 | ||||
-rw-r--r-- | src/map/pc.h | 1 |
2 files changed, 15 insertions, 5 deletions
diff --git a/src/map/pc.c b/src/map/pc.c index 6b947cf89..1dac01109 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -294,14 +294,22 @@ int pc_delspiritball(struct map_session_data *sd,int count,int type) sd->spirit_timer[i] = INVALID_TIMER; } - if(!type) { - if ((sd->job & MAPID_THIRDMASK) == MAPID_ROYAL_GUARD) - clif->millenniumshield(&sd->bl,sd->spiritball); - else - clif->spiritball(&sd->bl); + if (!type) { + pc->delspiritball_sub(sd); } return 0; } + +int pc_delspiritball_sub(struct map_session_data *sd) +{ + nullpo_ret(sd); + if ((sd->job & MAPID_THIRDMASK) == MAPID_ROYAL_GUARD) + clif->millenniumshield(&sd->bl,sd->spiritball); + else + clif->spiritball(&sd->bl); + return 0; +} + int pc_check_banding(struct block_list *bl, va_list ap) { int *c, *b_sd; @@ -12372,6 +12380,7 @@ void pc_defaults(void) { pc->addspiritball = pc_addspiritball; pc->addspiritball_sub = pc_addspiritball_sub; pc->delspiritball = pc_delspiritball; + pc->delspiritball_sub = pc_delspiritball_sub; pc->addfame = pc_addfame; pc->fame_rank = pc_fame_rank; pc->famelist_type = pc_famelist_type; diff --git a/src/map/pc.h b/src/map/pc.h index 4422a0e1a..5fea4234b 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -1042,6 +1042,7 @@ END_ZEROED_BLOCK; /* End */ int (*addspiritball) (struct map_session_data *sd,int interval,int max); int (*addspiritball_sub) (struct map_session_data *sd); int (*delspiritball) (struct map_session_data *sd,int count,int type); + int (*delspiritball_sub) (struct map_session_data *sd); int (*getmaxspiritball) (struct map_session_data *sd, int min); void (*addfame) (struct map_session_data *sd, int ranktype, int count); int (*fame_rank) (int char_id, int ranktype); |