summaryrefslogtreecommitdiff
path: root/src/map/pc.c
diff options
context:
space:
mode:
authorHaru <haru@dotalux.com>2013-09-27 00:55:25 +0200
committerHaru <haru@dotalux.com>2013-09-27 00:55:25 +0200
commit17bc1fab375f8ecc951fbba058a346b1460bf783 (patch)
tree7d51b5eda324985925b153b34441298f3e9bac21 /src/map/pc.c
parent3e5bca5a3df07320ff5c41edbb282df041c36f66 (diff)
downloadhercules-17bc1fab375f8ecc951fbba058a346b1460bf783.tar.gz
hercules-17bc1fab375f8ecc951fbba058a346b1460bf783.tar.bz2
hercules-17bc1fab375f8ecc951fbba058a346b1460bf783.tar.xz
hercules-17bc1fab375f8ecc951fbba058a346b1460bf783.zip
Renamed iStatus interface to status
Signed-off-by: Haru <haru@dotalux.com>
Diffstat (limited to 'src/map/pc.c')
-rw-r--r--src/map/pc.c139
1 files changed, 65 insertions, 74 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index 86ee7a8db..9dbb5175a 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -314,7 +314,7 @@ static int pc_check_banding( struct block_list *bl, va_list ap ) {
if(pc_isdead(tsd))
return 0;
- sc = iStatus->get_sc(bl);
+ sc = status->get_sc(bl);
if( bl == src )
return 0;
@@ -341,12 +341,12 @@ int pc_banding(struct map_session_data *sd, uint16 skill_lv) {
memset(b_sd, 0, sizeof(b_sd));
i = party_foreachsamemap(pc_check_banding,sd,range,&sd->bl,&c,&b_sd);
- if( c < 1 ) //just recalc status no need to recalc hp
- { // No more Royal Guards in Banding found.
- if( (sc = iStatus->get_sc(&sd->bl)) != NULL && sc->data[SC_BANDING] )
- {
+ if( c < 1 ) {
+ //just recalc status no need to recalc hp
+ if( (sc = status->get_sc(&sd->bl)) != NULL && sc->data[SC_BANDING] ) {
+ // No more Royal Guards in Banding found.
sc->data[SC_BANDING]->val2 = 0; // Reset the counter
- status_calc_bl(&sd->bl, iStatus->sc2scb_flag(SC_BANDING));
+ status_calc_bl(&sd->bl, status->sc2scb_flag(SC_BANDING));
}
return 0;
}
@@ -383,13 +383,11 @@ int pc_banding(struct map_session_data *sd, uint16 skill_lv) {
for( j = 0; j < i; j++ )
{
bsd = iMap->id2sd(b_sd[j]);
- if( bsd != NULL )
- {
- iStatus->set_hp(&bsd->bl,hp,0); // Set hp
- if( (sc = iStatus->get_sc(&bsd->bl)) != NULL && sc->data[SC_BANDING] )
- {
+ if( bsd != NULL ) {
+ status->set_hp(&bsd->bl,hp,0); // Set hp
+ if( (sc = status->get_sc(&bsd->bl)) != NULL && sc->data[SC_BANDING] ) {
sc->data[SC_BANDING]->val2 = c; // Set the counter. It doesn't count your self.
- status_calc_bl(&bsd->bl, iStatus->sc2scb_flag(SC_BANDING)); // Set atk and def.
+ status_calc_bl(&bsd->bl, status->sc2scb_flag(SC_BANDING)); // Set atk and def.
}
}
}
@@ -451,10 +449,10 @@ int pc_setrestartvalue(struct map_session_data *sd,int type) {
st = &sd->battle_status;
if (type&1) { //Normal resurrection
- st->hp = 1; //Otherwise iStatus->heal may fail if dead.
- iStatus->heal(&sd->bl, bst->hp, 0, 1);
+ st->hp = 1; //Otherwise status->heal may fail if dead.
+ status->heal(&sd->bl, bst->hp, 0, 1);
if( st->sp < bst->sp )
- iStatus->set_sp(&sd->bl, bst->sp, 1);
+ status->set_sp(&sd->bl, bst->sp, 1);
} else { //Just for saving on the char-server (with values as if respawned)
sd->status.hp = bst->hp;
sd->status.sp = (st->sp < bst->sp) ? bst->sp : st->sp;
@@ -1072,12 +1070,12 @@ bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_tim
if( sd->status.option & OPTION_INVISIBLE && !pc->can_use_command(sd, "@hide") )
sd->status.option &=~ OPTION_INVISIBLE;
- iStatus->change_init(&sd->bl);
+ status->change_init(&sd->bl);
sd->sc.option = sd->status.option; //This is the actual option used in battle.
//Set here because we need the inventory data for weapon sprite parsing.
- iStatus->set_viewdata(&sd->bl, sd->status.class_);
+ status->set_viewdata(&sd->bl, sd->status.class_);
unit->dataset(&sd->bl);
sd->guild_x = -1;
@@ -1204,7 +1202,7 @@ int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl)
return 0;
}
- class_ = iStatus->get_class(bl);
+ class_ = status->get_class(bl);
if (!pcdb_checkid(class_)) {
unsigned int max_hp = status_get_max_hp(bl);
if ((pos == 1 && max_hp < 6000) || (pos == 2 && max_hp < 20000))
@@ -1746,7 +1744,7 @@ int pc_disguise(struct map_session_data *sd, int class_) {
} else
sd->disguise = class_;
- iStatus->set_viewdata(&sd->bl, class_);
+ status->set_viewdata(&sd->bl, class_);
clif->changeoption(&sd->bl);
if (sd->bl.prev != NULL) {
@@ -3329,7 +3327,7 @@ int pc_bonus3(struct map_session_data *sd,int type,int type2,int type3,int val)
int target = skill->get_inf(type2); //Support or Self (non-auto-target) skills should pick self.
target = target&INF_SUPPORT_SKILL || (target&INF_SELF_SKILL && !(skill->get_inf2(type2)&INF2_NO_TARGET_SELF));
pc_bonus_autospell(sd->autospell, ARRAYLENGTH(sd->autospell),
- target?-type2:type2, type3, val, 0, iStatus->current_equip_card_id);
+ target?-type2:type2, type3, val, 0, status->current_equip_card_id);
}
break;
case SP_AUTOSPELL_WHENHIT:
@@ -3338,7 +3336,7 @@ int pc_bonus3(struct map_session_data *sd,int type,int type2,int type3,int val)
int target = skill->get_inf(type2); //Support or Self (non-auto-target) skills should pick self.
target = target&INF_SUPPORT_SKILL || (target&INF_SELF_SKILL && !(skill->get_inf2(type2)&INF2_NO_TARGET_SELF));
pc_bonus_autospell(sd->autospell2, ARRAYLENGTH(sd->autospell2),
- target?-type2:type2, type3, val, BF_NORMAL|BF_SKILL, iStatus->current_equip_card_id);
+ target?-type2:type2, type3, val, BF_NORMAL|BF_SKILL, status->current_equip_card_id);
}
break;
case SP_SP_DRAIN_RATE:
@@ -3433,28 +3431,26 @@ int pc_bonus3(struct map_session_data *sd,int type,int type2,int type3,int val)
return 0;
}
-int pc_bonus4(struct map_session_data *sd,int type,int type2,int type3,int type4,int val)
-{
+int pc_bonus4(struct map_session_data *sd,int type,int type2,int type3,int type4,int val) {
nullpo_ret(sd);
- switch(type){
+ switch(type) {
case SP_AUTOSPELL:
if(sd->state.lr_flag != 2)
- pc_bonus_autospell(sd->autospell, ARRAYLENGTH(sd->autospell), (val&1?type2:-type2), (val&2?-type3:type3), type4, 0, iStatus->current_equip_card_id);
+ pc_bonus_autospell(sd->autospell, ARRAYLENGTH(sd->autospell), (val&1?type2:-type2), (val&2?-type3:type3), type4, 0, status->current_equip_card_id);
break;
case SP_AUTOSPELL_WHENHIT:
if(sd->state.lr_flag != 2)
- pc_bonus_autospell(sd->autospell2, ARRAYLENGTH(sd->autospell2), (val&1?type2:-type2), (val&2?-type3:type3), type4, BF_NORMAL|BF_SKILL, iStatus->current_equip_card_id);
+ pc_bonus_autospell(sd->autospell2, ARRAYLENGTH(sd->autospell2), (val&1?type2:-type2), (val&2?-type3:type3), type4, BF_NORMAL|BF_SKILL, status->current_equip_card_id);
break;
case SP_AUTOSPELL_ONSKILL:
- if(sd->state.lr_flag != 2)
- {
+ if(sd->state.lr_flag != 2) {
int target = skill->get_inf(type2); //Support or Self (non-auto-target) skills should pick self.
target = target&INF_SUPPORT_SKILL || (target&INF_SELF_SKILL && !(skill->get_inf2(type2)&INF2_NO_TARGET_SELF));
- pc_bonus_autospell_onskill(sd->autospell3, ARRAYLENGTH(sd->autospell3), type2, target?-type3:type3, type4, val, iStatus->current_equip_card_id);
+ pc_bonus_autospell_onskill(sd->autospell3, ARRAYLENGTH(sd->autospell3), type2, target?-type3:type3, type4, val, status->current_equip_card_id);
}
break;
@@ -3475,24 +3471,23 @@ int pc_bonus4(struct map_session_data *sd,int type,int type2,int type3,int type4
return 0;
}
-int pc_bonus5(struct map_session_data *sd,int type,int type2,int type3,int type4,int type5,int val)
-{
+int pc_bonus5(struct map_session_data *sd,int type,int type2,int type3,int type4,int type5,int val) {
nullpo_ret(sd);
switch(type){
case SP_AUTOSPELL:
if(sd->state.lr_flag != 2)
- pc_bonus_autospell(sd->autospell, ARRAYLENGTH(sd->autospell), (val&1?type2:-type2), (val&2?-type3:type3), type4, type5, iStatus->current_equip_card_id);
+ pc_bonus_autospell(sd->autospell, ARRAYLENGTH(sd->autospell), (val&1?type2:-type2), (val&2?-type3:type3), type4, type5, status->current_equip_card_id);
break;
case SP_AUTOSPELL_WHENHIT:
if(sd->state.lr_flag != 2)
- pc_bonus_autospell(sd->autospell2, ARRAYLENGTH(sd->autospell2), (val&1?type2:-type2), (val&2?-type3:type3), type4, type5, iStatus->current_equip_card_id);
+ pc_bonus_autospell(sd->autospell2, ARRAYLENGTH(sd->autospell2), (val&1?type2:-type2), (val&2?-type3:type3), type4, type5, status->current_equip_card_id);
break;
case SP_AUTOSPELL_ONSKILL:
if(sd->state.lr_flag != 2)
- pc_bonus_autospell_onskill(sd->autospell3, ARRAYLENGTH(sd->autospell3), type2, (val&1?-type3:type3), (val&2?-type4:type4), type5, iStatus->current_equip_card_id);
+ pc_bonus_autospell_onskill(sd->autospell3, ARRAYLENGTH(sd->autospell3), type2, (val&1?-type3:type3), (val&2?-type4:type4), type5, status->current_equip_card_id);
break;
default:
@@ -4386,7 +4381,7 @@ int pc_useitem(struct map_session_data *sd,int n) {
//perform a skill-use check before going through. [Skotlex]
//resurrection was picked as testing skill, as a non-offensive, generic skill, it will do.
//FIXME: Is this really needed here? It'll be checked in unit.c after all and this prevents skill items using when silenced [Inkfish]
- if( sd->inventory_data[n]->flag.delay_consume && ( sd->ud.skilltimer != INVALID_TIMER /*|| !iStatus->check_skilluse(&sd->bl, &sd->bl, ALL_RESURRECTION, 0)*/ ) )
+ if( sd->inventory_data[n]->flag.delay_consume && ( sd->ud.skilltimer != INVALID_TIMER /*|| !status->check_skilluse(&sd->bl, &sd->bl, ALL_RESURRECTION, 0)*/ ) )
return 0;
if( sd->inventory_data[n]->delay > 0 ) {
@@ -4686,8 +4681,8 @@ int pc_steal_item(struct map_session_data *sd,struct block_list *bl, uint16 skil
if(md->state.steal_flag == UCHAR_MAX || ( md->sc.opt1 && md->sc.opt1 != OPT1_BURNING && md->sc.opt1 != OPT1_CRYSTALIZE ) ) //already stolen from / status change check
return 0;
- sd_status= iStatus->get_status_data(&sd->bl);
- md_status= iStatus->get_status_data(bl);
+ sd_status= status->get_status_data(&sd->bl);
+ md_status= status->get_status_data(bl);
if( md->master_id || md_status->mode&MD_BOSS || mob_is_treasure(md) ||
maplist[bl->m].flag.nomobloot || // check noloot map flag [Lorky]
@@ -4876,8 +4871,8 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y
if (sd->sc.data[SC_KNOWLEDGE]) {
struct status_change_entry *sce = sd->sc.data[SC_KNOWLEDGE];
if (sce->timer != INVALID_TIMER)
- timer->delete(sce->timer, iStatus->change_timer);
- sce->timer = timer->add(timer->gettick() + skill->get_time(SG_KNOWLEDGE, sce->val1), iStatus->change_timer, sd->bl.id, SC_KNOWLEDGE);
+ timer->delete(sce->timer, status->change_timer);
+ sce->timer = timer->add(timer->gettick() + skill->get_time(SG_KNOWLEDGE, sce->val1), status->change_timer, sd->bl.id, SC_KNOWLEDGE);
}
status_change_end(&sd->bl, SC_PROPERTYWALK, INVALID_TIMER);
status_change_end(&sd->bl, SC_CLOAKING, INVALID_TIMER);
@@ -5147,12 +5142,12 @@ int pc_checkallowskill(struct map_session_data *sd)
if(!sd->sc.count)
return 0;
- for (i = 0; i < ARRAYLENGTH(scw_list); i++)
- { // Skills requiring specific weapon types
+ for (i = 0; i < ARRAYLENGTH(scw_list); i++) {
+ // Skills requiring specific weapon types
if( scw_list[i] == SC_DANCING && !battle_config.dancing_weaponswitch_fix )
continue;
- if(sd->sc.data[scw_list[i]] &&
- !pc_check_weapontype(sd,skill->get_weapontype(iStatus->sc2skill(scw_list[i]))))
+ if( sd->sc.data[scw_list[i]]
+ && !pc_check_weapontype(sd,skill->get_weapontype(status->sc2skill(scw_list[i]))))
status_change_end(&sd->bl, scw_list[i], INVALID_TIMER);
}
@@ -5684,15 +5679,14 @@ const char* job_name(int class_)
}
}
-int pc_follow_timer(int tid, unsigned int tick, int id, intptr_t data)
-{
+int pc_follow_timer(int tid, unsigned int tick, int id, intptr_t data) {
struct map_session_data *sd;
struct block_list *tbl;
sd = iMap->id2sd(id);
nullpo_ret(sd);
- if (sd->followtimer != tid){
+ if (sd->followtimer != tid) {
ShowError("pc_follow_timer %d != %d\n",sd->followtimer,tid);
sd->followtimer = INVALID_TIMER;
return 0;
@@ -5701,17 +5695,16 @@ int pc_follow_timer(int tid, unsigned int tick, int id, intptr_t data)
sd->followtimer = INVALID_TIMER;
tbl = iMap->id2bl(sd->followtarget);
- if (tbl == NULL || pc_isdead(sd) || iStatus->isdead(tbl))
- {
+ if (tbl == NULL || pc_isdead(sd) || status->isdead(tbl)) {
pc->stop_following(sd);
return 0;
}
// either player or target is currently detached from map blocks (could be teleporting),
// but still connected to this map, so we'll just increment the timer and check back later
- if (sd->bl.prev != NULL && tbl->prev != NULL &&
- sd->ud.skilltimer == INVALID_TIMER && sd->ud.attacktimer == INVALID_TIMER && sd->ud.walktimer == INVALID_TIMER)
- {
+ if (sd->bl.prev != NULL && tbl->prev != NULL
+ && sd->ud.skilltimer == INVALID_TIMER && sd->ud.attacktimer == INVALID_TIMER && sd->ud.walktimer == INVALID_TIMER
+ ) {
if((sd->bl.m == tbl->m) && unit->can_reach_bl(&sd->bl,tbl, AREA_SIZE, 0, NULL, NULL)) {
if (!check_distance_bl(&sd->bl, tbl, 5))
unit->walktobl(&sd->bl, tbl, 5, 0);
@@ -5783,16 +5776,16 @@ int pc_checkbaselevelup(struct map_session_data *sd) {
status_percent_heal(&sd->bl,100,100);
if((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE) {
- sc_start(&sd->bl,iStatus->skill2sc(PR_KYRIE),100,1,skill->get_time(PR_KYRIE,1));
- sc_start(&sd->bl,iStatus->skill2sc(PR_IMPOSITIO),100,1,skill->get_time(PR_IMPOSITIO,1));
- sc_start(&sd->bl,iStatus->skill2sc(PR_MAGNIFICAT),100,1,skill->get_time(PR_MAGNIFICAT,1));
- sc_start(&sd->bl,iStatus->skill2sc(PR_GLORIA),100,1,skill->get_time(PR_GLORIA,1));
- sc_start(&sd->bl,iStatus->skill2sc(PR_SUFFRAGIUM),100,1,skill->get_time(PR_SUFFRAGIUM,1));
+ sc_start(&sd->bl,status->skill2sc(PR_KYRIE),100,1,skill->get_time(PR_KYRIE,1));
+ sc_start(&sd->bl,status->skill2sc(PR_IMPOSITIO),100,1,skill->get_time(PR_IMPOSITIO,1));
+ sc_start(&sd->bl,status->skill2sc(PR_MAGNIFICAT),100,1,skill->get_time(PR_MAGNIFICAT,1));
+ sc_start(&sd->bl,status->skill2sc(PR_GLORIA),100,1,skill->get_time(PR_GLORIA,1));
+ sc_start(&sd->bl,status->skill2sc(PR_SUFFRAGIUM),100,1,skill->get_time(PR_SUFFRAGIUM,1));
if (sd->state.snovice_dead_flag)
sd->state.snovice_dead_flag = 0; //Reenable steelbody resurrection on dead.
} else if( (sd->class_&MAPID_BASEMASK) == MAPID_TAEKWON ) {
- sc_start(&sd->bl,iStatus->skill2sc(AL_INCAGI),100,10,600000);
- sc_start(&sd->bl,iStatus->skill2sc(AL_BLESSING),100,10,600000);
+ sc_start(&sd->bl,status->skill2sc(AL_INCAGI),100,10,600000);
+ sc_start(&sd->bl,status->skill2sc(AL_BLESSING),100,10,600000);
}
clif->misceffect(&sd->bl,0);
npc->script_event(sd, NPCE_BASELVUP); //LORDALFA - LVLUPEVENT
@@ -5853,14 +5846,14 @@ int pc_checkjoblevelup(struct map_session_data *sd)
*------------------------------------------*/
static void pc_calcexp(struct map_session_data *sd, unsigned int *base_exp, unsigned int *job_exp, struct block_list *src) {
int bonus = 0;
- struct status_data *st = iStatus->get_status_data(src);
+ struct status_data *st = status->get_status_data(src);
if (sd->expaddrace[st->race])
bonus += sd->expaddrace[st->race];
bonus += sd->expaddrace[st->mode&MD_BOSS?RC_BOSS:RC_NONBOSS];
- if (battle_config.pk_mode &&
- (int)(iStatus->get_lv(src) - sd->status.base_level) >= 20)
+ if (battle_config.pk_mode
+ && (int)(status->get_lv(src) - sd->status.base_level) >= 20)
bonus += 15; // pk_mode additional exp if monster >20 levels [Valaris]
if (sd->sc.data[SC_CASH_PLUSEXP])
@@ -6877,8 +6870,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) {
}
// activate Steel body if a super novice dies at 99+% exp [celest]
- if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && !sd->state.snovice_dead_flag)
- {
+ if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && !sd->state.snovice_dead_flag) {
unsigned int next = pc->nextbaseexp(sd);
if( next == 0 ) next = pc->thisbaseexp(sd);
if( get_percentage(sd->status.base_exp,next) >= 99 ) {
@@ -6888,7 +6880,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) {
clif->resurrection(&sd->bl, 1);
if(battle_config.pc_invincible_time)
pc->setinvincibletimer(sd, battle_config.pc_invincible_time);
- sc_start(&sd->bl,iStatus->skill2sc(MO_STEELBODY),100,1,skill->get_time(MO_STEELBODY,1));
+ sc_start(&sd->bl,status->skill2sc(MO_STEELBODY),100,1,skill->get_time(MO_STEELBODY,1));
if(map_flag_gvg2(sd->bl.m))
pc_respawn_timer(INVALID_TIMER, timer->gettick(), sd->bl.id, 0);
return 0;
@@ -7428,7 +7420,7 @@ int pc_itemheal(struct map_session_data *sd,int itemid, int hp,int sp)
#endif
}
- return iStatus->heal(&sd->bl, hp, sp, 1);
+ return status->heal(&sd->bl, hp, sp, 1);
}
/*==========================================
@@ -7560,7 +7552,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
short id;
for(i = 0; i < MAX_SKILL_TREE && (id = skill_tree[class_][i].id) > 0; i++) {
//Remove status specific to your current tree skills.
- enum sc_type sc = iStatus->skill2sc(id);
+ enum sc_type sc = status->skill2sc(id);
if (sc > SC_COMMON_MAX && sd->sc.data[sc])
status_change_end(&sd->bl, sc, INVALID_TIMER);
}
@@ -7602,7 +7594,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
if (sd->disguise != -1)
pc->disguise(sd, -1);
- iStatus->set_viewdata(&sd->bl, job);
+ status->set_viewdata(&sd->bl, job);
clif->changelook(&sd->bl,LOOK_BASE,sd->vd.class_); // move sprite update to prevent client crashes with incompatible equipment [Valaris]
if(sd->vd.cloth_color)
clif->changelook(&sd->bl,LOOK_CLOTHES_COLOR,sd->vd.cloth_color);
@@ -7697,7 +7689,7 @@ int pc_changelook(struct map_session_data *sd,int type,int val)
switch(type){
case LOOK_BASE:
- iStatus->set_viewdata(&sd->bl, val);
+ status->set_viewdata(&sd->bl, val);
clif->changelook(&sd->bl,LOOK_BASE,sd->vd.class_);
clif->changelook(&sd->bl,LOOK_WEAPON,sd->status.weapon);
if (sd->vd.cloth_color)
@@ -7812,9 +7804,9 @@ int pc_setoption(struct map_session_data *sd,int type)
else if( !(type&OPTION_MADOGEAR) && p_type&OPTION_MADOGEAR )
status_calc_pc(sd, 0);
for( i = 0; i < SC_MAX; i++ ){
- if ( !sd->sc.data[i] || !iStatus->get_sc_type(i) )
+ if ( !sd->sc.data[i] || !status->get_sc_type(i) )
continue;
- if ( iStatus->get_sc_type(i)&SC_MADO_NO_RESET )
+ if ( status->get_sc_type(i)&SC_MADO_NO_RESET )
continue;
switch (i) {
case SC_BERSERK:
@@ -7835,7 +7827,7 @@ int pc_setoption(struct map_session_data *sd,int type)
return 0; //Disguises break sprite changes
if (new_look < 0) { //Restore normal look.
- iStatus->set_viewdata(&sd->bl, sd->status.class_);
+ status->set_viewdata(&sd->bl, sd->status.class_);
new_look = sd->vd.class_;
}
@@ -9237,8 +9229,7 @@ void pc_bleeding (struct map_session_data *sd, unsigned int diff_tick)
//Character regen. Flag is used to know which types of regen can take place.
//&1: HP regen
//&2: SP regen
-void pc_regen (struct map_session_data *sd, unsigned int diff_tick)
-{
+void pc_regen (struct map_session_data *sd, unsigned int diff_tick) {
int hp = 0, sp = 0;
if (sd->hp_regen.value) {
@@ -9258,7 +9249,7 @@ void pc_regen (struct map_session_data *sd, unsigned int diff_tick)
}
if (hp > 0 || sp > 0)
- iStatus->heal(&sd->bl, hp, sp, 0);
+ status->heal(&sd->bl, hp, sp, 0);
return;
}