summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/map/atcommand.c80
-rw-r--r--src/map/battle.c68
-rw-r--r--src/map/battle.h2
-rw-r--r--src/map/chrif.c8
-rw-r--r--src/map/clif.c157
-rw-r--r--src/map/elemental.c60
-rw-r--r--src/map/mercenary.c65
-rw-r--r--src/map/mob.c145
-rw-r--r--src/map/pc.c123
-rw-r--r--src/map/pet.c22
-rw-r--r--src/map/quest.c8
-rw-r--r--src/map/quest.h2
-rw-r--r--src/map/skill.c141
-rw-r--r--src/map/status.c1764
-rw-r--r--src/map/status.h4
15 files changed, 1284 insertions, 1365 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 41d93fa4d..0fd54200d 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -2377,11 +2377,10 @@ ACMD(zeny)
/*==========================================
*
*------------------------------------------*/
-ACMD(param)
-{
+ACMD(param) {
int i, value = 0, new_value, max;
const char* param[] = { "str", "agi", "vit", "int", "dex", "luk" };
- short* status[6];
+ short* stats[6];
//we don't use direct initialization because it isn't part of the c standard.
nullpo_retr(-1, sd);
@@ -2399,28 +2398,28 @@ ACMD(param)
return false;
}
- status[0] = &sd->status.str;
- status[1] = &sd->status.agi;
- status[2] = &sd->status.vit;
- status[3] = &sd->status.int_;
- status[4] = &sd->status.dex;
- status[5] = &sd->status.luk;
+ stats[0] = &sd->status.str;
+ stats[1] = &sd->status.agi;
+ stats[2] = &sd->status.vit;
+ stats[3] = &sd->status.int_;
+ stats[4] = &sd->status.dex;
+ stats[5] = &sd->status.luk;
if( battle_config.atcommand_max_stat_bypass )
max = SHRT_MAX;
else
max = pc_maxparameter(sd);
- if(value < 0 && *status[i] <= -value) {
+ if(value < 0 && *stats[i] <= -value) {
new_value = 1;
- } else if(max - *status[i] < value) {
+ } else if(max - *stats[i] < value) {
new_value = max;
} else {
- new_value = *status[i] + value;
+ new_value = *stats[i] + value;
}
- if (new_value != *status[i]) {
- *status[i] = new_value;
+ if (new_value != *stats[i]) {
+ *stats[i] = new_value;
clif->updatestatus(sd, SP_STR + i);
clif->updatestatus(sd, SP_USTR + i);
status_calc_pc(sd, 0);
@@ -2439,19 +2438,18 @@ ACMD(param)
/*==========================================
* Stat all by fritz (rewritten by [Yor])
*------------------------------------------*/
-ACMD(stat_all)
-{
+ACMD(stat_all) {
int index, count, value, max, new_value;
- short* status[6];
+ short* stats[6];
//we don't use direct initialization because it isn't part of the c standard.
nullpo_retr(-1, sd);
- status[0] = &sd->status.str;
- status[1] = &sd->status.agi;
- status[2] = &sd->status.vit;
- status[3] = &sd->status.int_;
- status[4] = &sd->status.dex;
- status[5] = &sd->status.luk;
+ stats[0] = &sd->status.str;
+ stats[1] = &sd->status.agi;
+ stats[2] = &sd->status.vit;
+ stats[3] = &sd->status.int_;
+ stats[4] = &sd->status.dex;
+ stats[5] = &sd->status.luk;
if (!message || !*message || sscanf(message, "%d", &value) < 1 || value == 0) {
value = pc_maxparameter(sd);
@@ -2464,17 +2462,17 @@ ACMD(stat_all)
}
count = 0;
- for (index = 0; index < ARRAYLENGTH(status); index++) {
+ for (index = 0; index < ARRAYLENGTH(stats); index++) {
- if (value > 0 && *status[index] > max - value)
+ if (value > 0 && *stats[index] > max - value)
new_value = max;
- else if (value < 0 && *status[index] <= -value)
+ else if (value < 0 && *stats[index] <= -value)
new_value = 1;
else
- new_value = *status[index] +value;
+ new_value = *stats[index] +value;
- if (new_value != (int)*status[index]) {
- *status[index] = new_value;
+ if (new_value != (int)*stats[index]) {
+ *stats[index] = new_value;
clif->updatestatus(sd, SP_STR + index);
clif->updatestatus(sd, SP_USTR + index);
count++;
@@ -5440,9 +5438,8 @@ ACMD(useskill)
* Debug command to locate new skill IDs. It sends the
* three possible skill-effect packets to the area.
*------------------------------------------*/
-ACMD(displayskill)
-{
- struct status_data * status;
+ACMD(displayskill) {
+ struct status_data *st;
unsigned int tick;
uint16 skill_id;
uint16 skill_lv = 1;
@@ -5453,9 +5450,9 @@ ACMD(displayskill)
clif->message(fd, msg_txt(1166)); // Usage: @displayskill <skill ID> {<skill level>}
return false;
}
- status = iStatus->get_status_data(&sd->bl);
+ st = iStatus->get_status_data(&sd->bl);
tick = timer->gettick();
- clif->skill_damage(&sd->bl,&sd->bl, tick, status->amotion, status->dmotion, 1, 1, skill_id, skill_lv, 5);
+ clif->skill_damage(&sd->bl,&sd->bl, tick, st->amotion, st->dmotion, 1, 1, skill_id, skill_lv, 5);
clif->skill_nodamage(&sd->bl, &sd->bl, skill_id, skill_lv, 1);
clif->skill_poseffect(&sd->bl, skill_id, skill_lv, sd->bl.x, sd->bl.y, tick);
return true;
@@ -7071,10 +7068,9 @@ ACMD(homtalk)
/*==========================================
* Show homunculus stats
*------------------------------------------*/
-ACMD(hominfo)
-{
+ACMD(hominfo) {
struct homun_data *hd;
- struct status_data *status;
+ struct status_data *st;
nullpo_retr(-1, sd);
if ( !homun_alive(sd->hd) ) {
@@ -7083,15 +7079,15 @@ ACMD(hominfo)
}
hd = sd->hd;
- status = iStatus->get_status_data(&hd->bl);
+ st = iStatus->get_status_data(&hd->bl);
clif->message(fd, msg_txt(1261)); // Homunculus stats:
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1262), // HP: %d/%d - SP: %d/%d
- status->hp, status->max_hp, status->sp, status->max_sp);
+ st->hp, st->max_hp, st->sp, st->max_sp);
clif->message(fd, atcmd_output);
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1263), // ATK: %d - MATK: %d~%d
- status->rhw.atk2 +status->batk, status->matk_min, status->matk_max);
+ st->rhw.atk2 +st->batk, st->matk_min, st->matk_max);
clif->message(fd, atcmd_output);
snprintf(atcmd_output, sizeof(atcmd_output) ,msg_txt(1264), // Hungry: %d - Intimacy: %u
@@ -7100,8 +7096,8 @@ ACMD(hominfo)
snprintf(atcmd_output, sizeof(atcmd_output) ,
msg_txt(1265), // Stats: Str %d / Agi %d / Vit %d / Int %d / Dex %d / Luk %d
- status->str, status->agi, status->vit,
- status->int_, status->dex, status->luk);
+ st->str, st->agi, st->vit,
+ st->int_, st->dex, st->luk);
clif->message(fd, atcmd_output);
return true;
diff --git a/src/map/battle.c b/src/map/battle.c
index 7900581c6..6427fb157 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -501,28 +501,26 @@ int64 battle_calc_weapon_damage(struct block_list *src, struct block_list *bl, u
*&16: Arrow attack but BOW, REVOLVER, RIFLE, SHOTGUN, GATLING or GRENADE type weapon not equipped (i.e. shuriken, kunai and venom knives not affected by DEX)
*/
#ifdef RENEWAL
-int64 battle_calc_base_damage(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int nk, bool n_ele, short s_ele, short s_ele_, int type, int flag, int flag2)
-{
+int64 battle_calc_base_damage(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int nk, bool n_ele, short s_ele, short s_ele_, int type, int flag, int flag2) {
int64 damage, batk;
- struct status_data *status = iStatus->get_status_data(src);
+ struct status_data *st = iStatus->get_status_data(src);
- batk = battle->calc_elefix(src, bl, skill_id, skill_lv, iStatus->calc_batk(bl, iStatus->get_sc(src), status->batk, false), nk, n_ele, ELE_NEUTRAL, ELE_NEUTRAL, false, flag);
+ batk = battle->calc_elefix(src, bl, skill_id, skill_lv, iStatus->calc_batk(bl, iStatus->get_sc(src), st->batk, false), nk, n_ele, ELE_NEUTRAL, ELE_NEUTRAL, false, flag);
if( type == EQI_HAND_L )
- damage = batk + 3 * battle->calc_weapon_damage(src, bl, skill_id, skill_lv, &status->lhw, nk, n_ele, s_ele, s_ele_, status_get_size(bl), type, flag, flag2) / 4;
+ damage = batk + 3 * battle->calc_weapon_damage(src, bl, skill_id, skill_lv, &st->lhw, nk, n_ele, s_ele, s_ele_, status_get_size(bl), type, flag, flag2) / 4;
else
- damage = (batk << 1) + battle->calc_weapon_damage(src, bl, skill_id, skill_lv, &status->rhw, nk, n_ele, s_ele, s_ele_, status_get_size(bl), type, flag, flag2);
+ damage = (batk << 1) + battle->calc_weapon_damage(src, bl, skill_id, skill_lv, &st->rhw, nk, n_ele, s_ele, s_ele_, status_get_size(bl), type, flag, flag2);
#else
-static int64 battle_calc_base_damage(struct status_data *status, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag)
-{
+static int64 battle_calc_base_damage(struct status_data *st, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag) {
unsigned int atkmin=0, atkmax=0;
short type = 0;
int64 damage = 0;
if (!sd) { //Mobs/Pets
if(flag&4) {
- atkmin = status->matk_min;
- atkmax = status->matk_max;
+ atkmin = st->matk_min;
+ atkmax = st->matk_max;
} else {
atkmin = wa->atk;
atkmax = wa->atk2;
@@ -531,10 +529,10 @@ static int64 battle_calc_base_damage(struct status_data *status, struct weapon_a
atkmin = atkmax;
} else { //PCs
atkmax = wa->atk;
- type = (wa == &status->lhw)?EQI_HAND_L:EQI_HAND_R;
+ type = (wa == &st->lhw)?EQI_HAND_L:EQI_HAND_R;
if (!(flag&1) || (flag&2)) { //Normal attacks
- atkmin = status->dex;
+ atkmin = st->dex;
if (sd->equip_index[type] >= 0 && sd->inventory_data[sd->equip_index[type]])
atkmin = atkmin*(80 + sd->inventory_data[sd->equip_index[type]]->wlv*20)/100;
@@ -571,9 +569,9 @@ static int64 battle_calc_base_damage(struct status_data *status, struct weapon_a
//Finally, add baseatk
if(flag&4)
- damage += status->matk_min;
+ damage += st->matk_min;
else
- damage += status->batk;
+ damage += st->batk;
//rodatazone says that Overrefine bonuses are part of baseatk
//Here we also apply the weapon_atk_rate bonus so it is correctly applied on left/right hands.
@@ -606,7 +604,7 @@ int64 battle_calc_sizefix(struct map_session_data *sd, int64 damage, int type, i
*------------------------------------------*/
int64 battle_addmastery(struct map_session_data *sd,struct block_list *target,int64 dmg,int type) {
int64 damage;
- struct status_data *status = iStatus->get_status_data(target);
+ struct status_data *st = iStatus->get_status_data(target);
int weapon, skill_lv;
damage = dmg;
@@ -614,12 +612,12 @@ int64 battle_addmastery(struct map_session_data *sd,struct block_list *target,in
if((skill_lv = pc->checkskill(sd,AL_DEMONBANE)) > 0 &&
target->type == BL_MOB && //This bonus doesnt work against players.
- (battle->check_undead(status->race,status->def_ele) || status->race==RC_DEMON) )
+ (battle->check_undead(st->race,st->def_ele) || st->race==RC_DEMON) )
damage += (int)(skill_lv*(3+sd->status.base_level/20.0));
//damage += (skill_lv * 3);
- if( (skill_lv = pc->checkskill(sd, RA_RANGERMAIN)) > 0 && (status->race == RC_BRUTE || status->race == RC_PLANT || status->race == RC_FISH) )
+ if( (skill_lv = pc->checkskill(sd, RA_RANGERMAIN)) > 0 && (st->race == RC_BRUTE || st->race == RC_PLANT || st->race == RC_FISH) )
damage += (skill_lv * 5);
- if( (skill_lv = pc->checkskill(sd,NC_RESEARCHFE)) > 0 && (status->def_ele == ELE_FIRE || status->def_ele == ELE_EARTH) )
+ if( (skill_lv = pc->checkskill(sd,NC_RESEARCHFE)) > 0 && (st->def_ele == ELE_FIRE || st->def_ele == ELE_EARTH) )
damage += (skill_lv * 10);
if( pc_ismadogear(sd) )
damage += 20 + 20 * pc->checkskill(sd, NC_MADOLICENCE);
@@ -627,7 +625,7 @@ int64 battle_addmastery(struct map_session_data *sd,struct block_list *target,in
if( (skill_lv = pc->checkskill(sd,BS_WEAPONRESEARCH)) > 0 )
damage += (skill_lv * 2);
#endif
- if((skill_lv = pc->checkskill(sd,HT_BEASTBANE)) > 0 && (status->race==RC_BRUTE || status->race==RC_INSECT) ) {
+ if((skill_lv = pc->checkskill(sd,HT_BEASTBANE)) > 0 && (st->race==RC_BRUTE || st->race==RC_INSECT) ) {
damage += (skill_lv * 4);
if (sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_HUNTER)
damage += sd->status.str;
@@ -1377,7 +1375,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
int i;
struct status_change *sc, *tsc;
struct map_session_data *sd, *tsd;
- struct status_data *status, *tstatus;
+ struct status_data *st, *tst;
nullpo_ret(src);
nullpo_ret(target);
@@ -1386,8 +1384,8 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
tsd = BL_CAST(BL_PC, target);
sc = iStatus->get_sc(src);
tsc = iStatus->get_sc(target);
- status = iStatus->get_status_data(src);
- tstatus = iStatus->get_status_data(target);
+ st = iStatus->get_status_data(src);
+ tst = iStatus->get_status_data(target);
switch(attack_type){
case BF_MAGIC:
@@ -1403,7 +1401,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
#endif
break;
case MG_SOULSTRIKE:
- if (battle->check_undead(tstatus->race,tstatus->def_ele))
+ if (battle->check_undead(tst->race,tst->def_ele))
skillratio += 5*skill_lv;
break;
case MG_FIREWALL:
@@ -1450,10 +1448,10 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
skillratio += 10 * skill_lv - 30;
break;
case SL_STIN:
- skillratio += (tstatus->size!=SZ_SMALL?-99:10*skill_lv); //target size must be small (0) for full damage.
+ skillratio += (tst->size!=SZ_SMALL?-99:10*skill_lv); //target size must be small (0) for full damage.
break;
case SL_STUN:
- skillratio += (tstatus->size!=SZ_BIG?5*skill_lv:-99); //Full damage is dealt on small/medium targets
+ skillratio += (tst->size!=SZ_BIG?5*skill_lv:-99); //Full damage is dealt on small/medium targets
break;
case SL_SMA:
skillratio += -60 + iStatus->get_lv(src); //Base damage is 40% + lv%
@@ -1904,7 +1902,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
#ifndef RENEWAL
case MO_EXTREMITYFIST:
{ //Overflow check. [Skotlex]
- unsigned int ratio = skillratio + 100*(8 + status->sp/10);
+ unsigned int ratio = skillratio + 100*(8 + st->sp/10);
//You'd need something like 6K SP to reach this max, so should be fine for most purposes.
if (ratio > 60000) ratio = 60000; //We leave some room here in case skillratio gets further increased.
skillratio = (unsigned short)ratio;
@@ -2009,8 +2007,8 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
break;
case GS_BULLSEYE:
//Only works well against brute/demihumans non bosses.
- if((tstatus->race == RC_BRUTE || tstatus->race == RC_DEMIHUMAN)
- && !(tstatus->mode&MD_BOSS))
+ if((tst->race == RC_BRUTE || tst->race == RC_DEMIHUMAN)
+ && !(tst->mode&MD_BOSS))
skillratio += 400;
break;
case GS_TRACKING:
@@ -2109,7 +2107,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
else
skillratio += 200 * skill_lv;
skillratio = (skillratio - 100) * (100 + (iStatus->get_lv(src)-100)) / 100;
- if( status->rhw.ele == ELE_FIRE )
+ if( st->rhw.ele == ELE_FIRE )
skillratio += 100 * skill_lv;
break;
case RK_CRUSHSTRIKE:
@@ -2117,7 +2115,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
{//ATK [{Weapon Level * (Weapon Upgrade Level + 6) * 100} + (Weapon ATK) + (Weapon Weight)]%
short index = sd->equip_index[EQI_HAND_R];
if( index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_WEAPON )
- skillratio += -100 + sd->inventory_data[index]->weight/10 + status->rhw.atk +
+ skillratio += -100 + sd->inventory_data[index]->weight/10 + st->rhw.atk +
100 * sd->inventory_data[index]->wlv * (sd->status.inventory[index].refine + 6);
}
break;
@@ -2210,7 +2208,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
RE_LVL_DMOD(100);
break;
case NC_ARMSCANNON:
- switch( tstatus->size ) {
+ switch( tst->size ) {
case SZ_SMALL: skillratio += 100 + 500 * skill_lv; break;// Small
case SZ_MEDIUM: skillratio += 100 + 400 * skill_lv; break;// Medium
case SZ_BIG: skillratio += 100 + 300 * skill_lv; break;// Large
@@ -2379,7 +2377,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block
RE_LVL_DMOD(150);
break;
case SR_RIDEINLIGHTNING: // ATK [{(Skill Level x 200) + Additional Damage} x Caster Base Level / 100] %
- if( (status->rhw.ele) == ELE_WIND || (status->lhw.ele) == ELE_WIND )
+ if( (st->rhw.ele) == ELE_WIND || (st->lhw.ele) == ELE_WIND )
skillratio += skill_lv * 50;
skillratio += -100 + 200 * skill_lv;
RE_LVL_DMOD(100);
@@ -2855,11 +2853,11 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
if(sc->data[SC_ENERGYCOAT] && (flag&BF_WEAPON && skill_id != WS_CARTTERMINATION))
#endif
{
- struct status_data *status = iStatus->get_status_data(bl);
- int per = 100*status->sp / status->max_sp -1; //100% should be counted as the 80~99% interval
+ struct status_data *sstatus = iStatus->get_status_data(bl);
+ int per = 100*sstatus->sp / sstatus->max_sp -1; //100% should be counted as the 80~99% interval
per /=20; //Uses 20% SP intervals.
//SP Cost: 1% + 0.5% per every 20% SP
- if (!iStatus->charge(bl, 0, (10+5*per)*status->max_sp/1000))
+ if (!iStatus->charge(bl, 0, (10+5*per)*sstatus->max_sp/1000))
status_change_end(bl, SC_ENERGYCOAT, INVALID_TIMER);
//Reduction: 6% + 6% every 20%
damage -= damage * (6 * (1+per)) / 100;
diff --git a/src/map/battle.h b/src/map/battle.h
index f56bff3be..6909160c9 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -546,7 +546,7 @@ struct battle_interface {
#ifdef RENEWAL
(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int nk, bool n_ele, short s_ele, short s_ele_, int type, int flag, int flag2);
#else
- (struct status_data *status, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag);
+ (struct status_data *st, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag);
#endif
struct Damage (*calc_misc_attack) (struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag);
struct Damage (*calc_magic_attack) (struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag);
diff --git a/src/map/chrif.c b/src/map/chrif.c
index 87fa0fc0b..15bf80da3 100644
--- a/src/map/chrif.c
+++ b/src/map/chrif.c
@@ -598,7 +598,7 @@ void chrif_authok(int fd) {
int account_id, group_id, char_id;
uint32 login_id1,login_id2;
time_t expiration_time;
- struct mmo_charstatus* status;
+ struct mmo_charstatus* charstatus;
struct auth_node *node;
bool changing_mapservers;
TBL_PC* sd;
@@ -615,8 +615,8 @@ void chrif_authok(int fd) {
expiration_time = (time_t)(int32)RFIFOL(fd,16);
group_id = RFIFOL(fd,20);
changing_mapservers = (RFIFOB(fd,24));
- status = (struct mmo_charstatus*)RFIFOP(fd,25);
- char_id = status->char_id;
+ charstatus = (struct mmo_charstatus*)RFIFOP(fd,25);
+ char_id = charstatus->char_id;
//Check if we don't already have player data in our server
//Causes problems if the currently connected player tries to quit or this data belongs to an already connected player which is trying to re-auth.
@@ -646,7 +646,7 @@ void chrif_authok(int fd) {
node->char_id == char_id &&
node->login_id1 == login_id1 )
{ //Auth Ok
- if (pc->authok(sd, login_id2, expiration_time, group_id, status, changing_mapservers))
+ if (pc->authok(sd, login_id2, expiration_time, group_id, charstatus, changing_mapservers))
return;
} else { //Auth Failed
pc->authfail(sd);
diff --git a/src/map/clif.c b/src/map/clif.c
index 7bc808eed..488e2cf0f 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -1370,13 +1370,13 @@ int clif_spawn(struct block_list *bl)
/// Sends information about owned homunculus to the client (ZC_PROPERTY_HOMUN). [orn]
/// 022e <name>.24B <modified>.B <level>.W <hunger>.W <intimacy>.W <equip id>.W <atk>.W <matk>.W <hit>.W <crit>.W <def>.W <mdef>.W <flee>.W <aspd>.W <hp>.W <max hp>.W <sp>.W <max sp>.W <exp>.L <max exp>.L <skill points>.W <atk range>.W
void clif_hominfo(struct map_session_data *sd, struct homun_data *hd, int flag) {
- struct status_data *status;
+ struct status_data *hstatus;
unsigned char buf[128];
enum homun_type htype;
nullpo_retv(hd);
- status = &hd->battle_status;
+ hstatus = &hd->battle_status;
htype = homun->class2type(hd->homunculus.class_);
memset(buf,0,packet_len(0x22e));
@@ -1388,30 +1388,30 @@ void clif_hominfo(struct map_session_data *sd, struct homun_data *hd, int flag)
WBUFW(buf,29)=hd->homunculus.hunger;
WBUFW(buf,31)=(unsigned short) (hd->homunculus.intimacy / 100) ;
WBUFW(buf,33)=0; // equip id
- WBUFW(buf,35)=cap_value(status->rhw.atk2+status->batk, 0, INT16_MAX);
- WBUFW(buf,37)=cap_value(status->matk_max, 0, INT16_MAX);
- WBUFW(buf,39)=status->hit;
+ WBUFW(buf,35)=cap_value(hstatus->rhw.atk2+hstatus->batk, 0, INT16_MAX);
+ WBUFW(buf,37)=cap_value(hstatus->matk_max, 0, INT16_MAX);
+ WBUFW(buf,39)=hstatus->hit;
if (battle_config.hom_setting&0x10)
- WBUFW(buf,41)=status->luk/3 + 1; //crit is a +1 decimal value! Just display purpose.[Vicious]
+ WBUFW(buf,41)=hstatus->luk/3 + 1; //crit is a +1 decimal value! Just display purpose.[Vicious]
else
- WBUFW(buf,41)=status->cri/10;
- WBUFW(buf,43)=status->def + status->vit ;
- WBUFW(buf,45)=status->mdef;
- WBUFW(buf,47)=status->flee;
- WBUFW(buf,49)=(flag)?0:status->amotion;
- if (status->max_hp > INT16_MAX) {
- WBUFW(buf,51) = status->hp/(status->max_hp/100);
+ WBUFW(buf,41)=hstatus->cri/10;
+ WBUFW(buf,43)=hstatus->def + hstatus->vit ;
+ WBUFW(buf,45)=hstatus->mdef;
+ WBUFW(buf,47)=hstatus->flee;
+ WBUFW(buf,49)=(flag)?0:hstatus->amotion;
+ if (hstatus->max_hp > INT16_MAX) {
+ WBUFW(buf,51) = hstatus->hp/(hstatus->max_hp/100);
WBUFW(buf,53) = 100;
} else {
- WBUFW(buf,51)=status->hp;
- WBUFW(buf,53)=status->max_hp;
+ WBUFW(buf,51)=hstatus->hp;
+ WBUFW(buf,53)=hstatus->max_hp;
}
- if (status->max_sp > INT16_MAX) {
- WBUFW(buf,55) = status->sp/(status->max_sp/100);
+ if (hstatus->max_sp > INT16_MAX) {
+ WBUFW(buf,55) = hstatus->sp/(hstatus->max_sp/100);
WBUFW(buf,57) = 100;
} else {
- WBUFW(buf,55)=status->sp;
- WBUFW(buf,57)=status->max_sp;
+ WBUFW(buf,55)=hstatus->sp;
+ WBUFW(buf,57)=hstatus->max_sp;
}
WBUFL(buf,59)=hd->homunculus.exp;
WBUFL(buf,63)=hd->exp_next;
@@ -5462,9 +5462,8 @@ void clif_skill_mapinfomessage(struct map_session_data *sd, int type)
/// Displays Sense (WZ_ESTIMATION) information window (ZC_MONSTER_INFO).
/// 018c <class>.W <level>.W <size>.W <hp>.L <def>.W <race>.W <mdef>.W <element>.W
/// <water%>.B <earth%>.B <fire%>.B <wind%>.B <poison%>.B <holy%>.B <shadow%>.B <ghost%>.B <undead%>.B
-void clif_skill_estimation(struct map_session_data *sd,struct block_list *dst)
-{
- struct status_data *status;
+void clif_skill_estimation(struct map_session_data *sd,struct block_list *dst) {
+ struct status_data *dstatus;
unsigned char buf[64];
int i;//, fix;
@@ -5474,23 +5473,23 @@ void clif_skill_estimation(struct map_session_data *sd,struct block_list *dst)
if( dst->type != BL_MOB )
return;
- status = iStatus->get_status_data(dst);
+ dstatus = iStatus->get_status_data(dst);
WBUFW(buf, 0)=0x18c;
WBUFW(buf, 2)=iStatus->get_class(dst);
WBUFW(buf, 4)=iStatus->get_lv(dst);
- WBUFW(buf, 6)=status->size;
- WBUFL(buf, 8)=status->hp;
- WBUFW(buf,12)= (battle_config.estimation_type&1?status->def:0)
- +(battle_config.estimation_type&2?status->def2:0);
- WBUFW(buf,14)=status->race;
- WBUFW(buf,16)= (battle_config.estimation_type&1?status->mdef:0)
- +(battle_config.estimation_type&2?status->mdef2:0);
- WBUFW(buf,18)= status->def_ele;
+ WBUFW(buf, 6)=dstatus->size;
+ WBUFL(buf, 8)=dstatus->hp;
+ WBUFW(buf,12)= (battle_config.estimation_type&1?dstatus->def:0)
+ +(battle_config.estimation_type&2?dstatus->def2:0);
+ WBUFW(buf,14)=dstatus->race;
+ WBUFW(buf,16)= (battle_config.estimation_type&1?dstatus->mdef:0)
+ +(battle_config.estimation_type&2?dstatus->mdef2:0);
+ WBUFW(buf,18)= dstatus->def_ele;
for(i=0;i<9;i++)
- WBUFB(buf,20+i)= (unsigned char)battle->attr_ratio(i+1,status->def_ele, status->ele_lv);
+ WBUFB(buf,20+i)= (unsigned char)battle->attr_ratio(i+1,dstatus->def_ele, dstatus->ele_lv);
// The following caps negative attributes to 0 since the client displays them as 255-fix. [Skotlex]
-// WBUFB(buf,20+i)= (unsigned char)((fix=battle_attr_ratio(i+1,status->def_ele, status->ele_lv))<0?0:fix);
+// WBUFB(buf,20+i)= (unsigned char)((fix=battle_attr_ratio(i+1,dstatus->def_ele, dstatus->ele_lv))<0?0:fix);
clif->send(buf,packet_len(0x18c),&sd->bl,sd->status.party_id>0?PARTY_SAMEMAP:SELF);
}
@@ -15668,58 +15667,57 @@ void clif_quest_show_event(struct map_session_data *sd, struct block_list *bl, s
/// Notification about a mercenary status parameter change (ZC_MER_PAR_CHANGE).
/// 02a2 <var id>.W <value>.L
-void clif_mercenary_updatestatus(struct map_session_data *sd, int type)
-{
+void clif_mercenary_updatestatus(struct map_session_data *sd, int type) {
struct mercenary_data *md;
- struct status_data *status;
+ struct status_data *mstatus;
int fd;
if( sd == NULL || (md = sd->md) == NULL )
return;
fd = sd->fd;
- status = &md->battle_status;
+ mstatus = &md->battle_status;
WFIFOHEAD(fd,packet_len(0x2a2));
WFIFOW(fd,0) = 0x2a2;
WFIFOW(fd,2) = type;
switch( type ) {
case SP_ATK1:
- {
- int atk = rnd()%(status->rhw.atk2 - status->rhw.atk + 1) + status->rhw.atk;
- WFIFOL(fd,4) = cap_value(atk, 0, INT16_MAX);
- }
+ {
+ int atk = rnd()%(mstatus->rhw.atk2 - mstatus->rhw.atk + 1) + mstatus->rhw.atk;
+ WFIFOL(fd,4) = cap_value(atk, 0, INT16_MAX);
+ }
break;
case SP_MATK1:
- WFIFOL(fd,4) = cap_value(status->matk_max, 0, INT16_MAX);
+ WFIFOL(fd,4) = cap_value(mstatus->matk_max, 0, INT16_MAX);
break;
case SP_HIT:
- WFIFOL(fd,4) = status->hit;
+ WFIFOL(fd,4) = mstatus->hit;
break;
case SP_CRITICAL:
- WFIFOL(fd,4) = status->cri/10;
+ WFIFOL(fd,4) = mstatus->cri/10;
break;
case SP_DEF1:
- WFIFOL(fd,4) = status->def;
+ WFIFOL(fd,4) = mstatus->def;
break;
case SP_MDEF1:
- WFIFOL(fd,4) = status->mdef;
+ WFIFOL(fd,4) = mstatus->mdef;
break;
case SP_MERCFLEE:
- WFIFOL(fd,4) = status->flee;
+ WFIFOL(fd,4) = mstatus->flee;
break;
case SP_ASPD:
- WFIFOL(fd,4) = status->amotion;
+ WFIFOL(fd,4) = mstatus->amotion;
break;
case SP_HP:
- WFIFOL(fd,4) = status->hp;
+ WFIFOL(fd,4) = mstatus->hp;
break;
case SP_MAXHP:
- WFIFOL(fd,4) = status->max_hp;
+ WFIFOL(fd,4) = mstatus->max_hp;
break;
case SP_SP:
- WFIFOL(fd,4) = status->sp;
+ WFIFOL(fd,4) = mstatus->sp;
break;
case SP_MAXSP:
- WFIFOL(fd,4) = status->max_sp;
+ WFIFOL(fd,4) = mstatus->max_sp;
break;
case SP_MERCKILLS:
WFIFOL(fd,4) = md->mercenary.kill_count;
@@ -15736,39 +15734,38 @@ void clif_mercenary_updatestatus(struct map_session_data *sd, int type)
/// 029b <id>.L <atk>.W <matk>.W <hit>.W <crit>.W <def>.W <mdef>.W <flee>.W <aspd>.W
/// <name>.24B <level>.W <hp>.L <maxhp>.L <sp>.L <maxsp>.L <expire time>.L <faith>.W
/// <calls>.L <kills>.L <atk range>.W
-void clif_mercenary_info(struct map_session_data *sd)
-{
+void clif_mercenary_info(struct map_session_data *sd) {
int fd;
struct mercenary_data *md;
- struct status_data *status;
+ struct status_data *mstatus;
int atk;
if( sd == NULL || (md = sd->md) == NULL )
return;
fd = sd->fd;
- status = &md->battle_status;
+ mstatus = &md->battle_status;
WFIFOHEAD(fd,packet_len(0x29b));
WFIFOW(fd,0) = 0x29b;
WFIFOL(fd,2) = md->bl.id;
// Mercenary shows ATK as a random value between ATK ~ ATK2
- atk = rnd()%(status->rhw.atk2 - status->rhw.atk + 1) + status->rhw.atk;
+ atk = rnd()%(mstatus->rhw.atk2 - mstatus->rhw.atk + 1) + mstatus->rhw.atk;
WFIFOW(fd,6) = cap_value(atk, 0, INT16_MAX);
- WFIFOW(fd,8) = cap_value(status->matk_max, 0, INT16_MAX);
- WFIFOW(fd,10) = status->hit;
- WFIFOW(fd,12) = status->cri/10;
- WFIFOW(fd,14) = status->def;
- WFIFOW(fd,16) = status->mdef;
- WFIFOW(fd,18) = status->flee;
- WFIFOW(fd,20) = status->amotion;
+ WFIFOW(fd,8) = cap_value(mstatus->matk_max, 0, INT16_MAX);
+ WFIFOW(fd,10) = mstatus->hit;
+ WFIFOW(fd,12) = mstatus->cri/10;
+ WFIFOW(fd,14) = mstatus->def;
+ WFIFOW(fd,16) = mstatus->mdef;
+ WFIFOW(fd,18) = mstatus->flee;
+ WFIFOW(fd,20) = mstatus->amotion;
safestrncpy((char*)WFIFOP(fd,22), md->db->name, NAME_LENGTH);
WFIFOW(fd,46) = md->db->lv;
- WFIFOL(fd,48) = status->hp;
- WFIFOL(fd,52) = status->max_hp;
- WFIFOL(fd,56) = status->sp;
- WFIFOL(fd,60) = status->max_sp;
+ WFIFOL(fd,48) = mstatus->hp;
+ WFIFOL(fd,52) = mstatus->max_hp;
+ WFIFOL(fd,56) = mstatus->sp;
+ WFIFOL(fd,60) = mstatus->max_sp;
WFIFOL(fd,64) = (int)time(NULL) + (mercenary->get_lifetime(md) / 1000);
WFIFOW(fd,68) = mercenary->get_faith(md);
WFIFOL(fd,70) = mercenary->get_calls(md);
@@ -16291,29 +16288,29 @@ void clif_parse_ItemListWindowSelected(int fd, struct map_session_data* sd) {
*==========================================*/
void clif_elemental_updatestatus(struct map_session_data *sd, int type) {
struct elemental_data *ed;
- struct status_data *status;
+ struct status_data *estatus;
int fd;
if( sd == NULL || (ed = sd->ed) == NULL )
return;
fd = sd->fd;
- status = &ed->battle_status;
+ estatus = &ed->battle_status;
WFIFOHEAD(fd,8);
WFIFOW(fd,0) = 0x81e;
WFIFOW(fd,2) = type;
switch( type ) {
case SP_HP:
- WFIFOL(fd,4) = status->hp;
+ WFIFOL(fd,4) = estatus->hp;
break;
case SP_MAXHP:
- WFIFOL(fd,4) = status->max_hp;
+ WFIFOL(fd,4) = estatus->max_hp;
break;
case SP_SP:
- WFIFOL(fd,4) = status->sp;
+ WFIFOL(fd,4) = estatus->sp;
break;
case SP_MAXSP:
- WFIFOL(fd,4) = status->max_sp;
+ WFIFOL(fd,4) = estatus->max_sp;
break;
}
WFIFOSET(fd,8);
@@ -16322,21 +16319,21 @@ void clif_elemental_updatestatus(struct map_session_data *sd, int type) {
void clif_elemental_info(struct map_session_data *sd) {
int fd;
struct elemental_data *ed;
- struct status_data *status;
+ struct status_data *estatus;
if( sd == NULL || (ed = sd->ed) == NULL )
return;
fd = sd->fd;
- status = &ed->battle_status;
+ estatus = &ed->battle_status;
WFIFOHEAD(fd,22);
WFIFOW(fd, 0) = 0x81d;
WFIFOL(fd, 2) = ed->bl.id;
- WFIFOL(fd, 6) = status->hp;
- WFIFOL(fd,10) = status->max_hp;
- WFIFOL(fd,14) = status->sp;
- WFIFOL(fd,18) = status->max_sp;
+ WFIFOL(fd, 6) = estatus->hp;
+ WFIFOL(fd,10) = estatus->max_hp;
+ WFIFOL(fd,14) = estatus->sp;
+ WFIFOL(fd,18) = estatus->max_sp;
WFIFOSET(fd,22);
}
diff --git a/src/map/elemental.c b/src/map/elemental.c
index 3a6ab2105..b1ad4073b 100644
--- a/src/map/elemental.c
+++ b/src/map/elemental.c
@@ -762,7 +762,7 @@ int read_elementaldb(void) {
char *str[26];
int i, j = 0, k = 0, ele;
struct s_elemental_db *db;
- struct status_data *status;
+ struct status_data *estatus;
sprintf(line, "%s/%s", iMap->db_path, "elemental_db.txt");
memset(elemental->elemental_db,0,sizeof(elemental->elemental_db));
@@ -798,44 +798,44 @@ int read_elementaldb(void) {
safestrncpy(db->name, str[2], NAME_LENGTH);
db->lv = atoi(str[3]);
- status = &db->status;
+ estatus = &db->status;
db->vd.class_ = db->class_;
- status->max_hp = atoi(str[4]);
- status->max_sp = atoi(str[5]);
- status->rhw.range = atoi(str[6]);
- status->rhw.atk = atoi(str[7]);
- status->rhw.atk2 = atoi(str[8]);
- status->def = atoi(str[9]);
- status->mdef = atoi(str[10]);
- status->str = atoi(str[11]);
- status->agi = atoi(str[12]);
- status->vit = atoi(str[13]);
- status->int_ = atoi(str[14]);
- status->dex = atoi(str[15]);
- status->luk = atoi(str[16]);
+ estatus->max_hp = atoi(str[4]);
+ estatus->max_sp = atoi(str[5]);
+ estatus->rhw.range = atoi(str[6]);
+ estatus->rhw.atk = atoi(str[7]);
+ estatus->rhw.atk2 = atoi(str[8]);
+ estatus->def = atoi(str[9]);
+ estatus->mdef = atoi(str[10]);
+ estatus->str = atoi(str[11]);
+ estatus->agi = atoi(str[12]);
+ estatus->vit = atoi(str[13]);
+ estatus->int_ = atoi(str[14]);
+ estatus->dex = atoi(str[15]);
+ estatus->luk = atoi(str[16]);
db->range2 = atoi(str[17]);
db->range3 = atoi(str[18]);
- status->size = atoi(str[19]);
- status->race = atoi(str[20]);
+ estatus->size = atoi(str[19]);
+ estatus->race = atoi(str[20]);
ele = atoi(str[21]);
- status->def_ele = ele%10;
- status->ele_lv = ele/20;
- if( status->def_ele >= ELE_MAX ) {
- ShowWarning("Elemental %d has invalid element type %d (max element is %d)\n", db->class_, status->def_ele, ELE_MAX - 1);
- status->def_ele = ELE_NEUTRAL;
+ estatus->def_ele = ele%10;
+ estatus->ele_lv = ele/20;
+ if( estatus->def_ele >= ELE_MAX ) {
+ ShowWarning("Elemental %d has invalid element type %d (max element is %d)\n", db->class_, estatus->def_ele, ELE_MAX - 1);
+ estatus->def_ele = ELE_NEUTRAL;
}
- if( status->ele_lv < 1 || status->ele_lv > 4 ) {
- ShowWarning("Elemental %d has invalid element level %d (max is 4)\n", db->class_, status->ele_lv);
- status->ele_lv = 1;
+ if( estatus->ele_lv < 1 || estatus->ele_lv > 4 ) {
+ ShowWarning("Elemental %d has invalid element level %d (max is 4)\n", db->class_, estatus->ele_lv);
+ estatus->ele_lv = 1;
}
- status->aspd_rate = 1000;
- status->speed = atoi(str[22]);
- status->adelay = atoi(str[23]);
- status->amotion = atoi(str[24]);
- status->dmotion = atoi(str[25]);
+ estatus->aspd_rate = 1000;
+ estatus->speed = atoi(str[22]);
+ estatus->adelay = atoi(str[23]);
+ estatus->amotion = atoi(str[24]);
+ estatus->dmotion = atoi(str[25]);
j++;
}
diff --git a/src/map/mercenary.c b/src/map/mercenary.c
index 0e89d62a9..402c477bf 100644
--- a/src/map/mercenary.c
+++ b/src/map/mercenary.c
@@ -397,11 +397,10 @@ int mercenary_checkskill(struct mercenary_data *md, uint16 skill_id)
return 0;
}
-static bool read_mercenarydb_sub(char* str[], int columns, int current)
-{
+static bool read_mercenarydb_sub(char* str[], int columns, int current) {
int ele;
struct s_mercenary_db *db;
- struct status_data *status;
+ struct status_data *mstatus;
db = &mercenary->db[current];
db->class_ = atoi(str[0]);
@@ -409,46 +408,44 @@ static bool read_mercenarydb_sub(char* str[], int columns, int current)
safestrncpy(db->name, str[2], NAME_LENGTH);
db->lv = atoi(str[3]);
- status = &db->status;
+ mstatus = &db->status;
db->vd.class_ = db->class_;
- status->max_hp = atoi(str[4]);
- status->max_sp = atoi(str[5]);
- status->rhw.range = atoi(str[6]);
- status->rhw.atk = atoi(str[7]);
- status->rhw.atk2 = status->rhw.atk + atoi(str[8]);
- status->def = atoi(str[9]);
- status->mdef = atoi(str[10]);
- status->str = atoi(str[11]);
- status->agi = atoi(str[12]);
- status->vit = atoi(str[13]);
- status->int_ = atoi(str[14]);
- status->dex = atoi(str[15]);
- status->luk = atoi(str[16]);
+ mstatus->max_hp = atoi(str[4]);
+ mstatus->max_sp = atoi(str[5]);
+ mstatus->rhw.range = atoi(str[6]);
+ mstatus->rhw.atk = atoi(str[7]);
+ mstatus->rhw.atk2 = mstatus->rhw.atk + atoi(str[8]);
+ mstatus->def = atoi(str[9]);
+ mstatus->mdef = atoi(str[10]);
+ mstatus->str = atoi(str[11]);
+ mstatus->agi = atoi(str[12]);
+ mstatus->vit = atoi(str[13]);
+ mstatus->int_ = atoi(str[14]);
+ mstatus->dex = atoi(str[15]);
+ mstatus->luk = atoi(str[16]);
db->range2 = atoi(str[17]);
db->range3 = atoi(str[18]);
- status->size = atoi(str[19]);
- status->race = atoi(str[20]);
+ mstatus->size = atoi(str[19]);
+ mstatus->race = atoi(str[20]);
ele = atoi(str[21]);
- status->def_ele = ele%10;
- status->ele_lv = ele/20;
- if( status->def_ele >= ELE_MAX )
- {
- ShowWarning("Mercenary %d has invalid element type %d (max element is %d)\n", db->class_, status->def_ele, ELE_MAX - 1);
- status->def_ele = ELE_NEUTRAL;
+ mstatus->def_ele = ele%10;
+ mstatus->ele_lv = ele/20;
+ if( mstatus->def_ele >= ELE_MAX ) {
+ ShowWarning("Mercenary %d has invalid element type %d (max element is %d)\n", db->class_, mstatus->def_ele, ELE_MAX - 1);
+ mstatus->def_ele = ELE_NEUTRAL;
}
- if( status->ele_lv < 1 || status->ele_lv > 4 )
- {
- ShowWarning("Mercenary %d has invalid element level %d (max is 4)\n", db->class_, status->ele_lv);
- status->ele_lv = 1;
+ if( mstatus->ele_lv < 1 || mstatus->ele_lv > 4 ) {
+ ShowWarning("Mercenary %d has invalid element level %d (max is 4)\n", db->class_, mstatus->ele_lv);
+ mstatus->ele_lv = 1;
}
- status->aspd_rate = 1000;
- status->speed = atoi(str[22]);
- status->adelay = atoi(str[23]);
- status->amotion = atoi(str[24]);
- status->dmotion = atoi(str[25]);
+ mstatus->aspd_rate = 1000;
+ mstatus->speed = atoi(str[22]);
+ mstatus->adelay = atoi(str[23]);
+ mstatus->amotion = atoi(str[24]);
+ mstatus->dmotion = atoi(str[25]);
return true;
}
diff --git a/src/map/mob.c b/src/map/mob.c
index d1b6990c4..32bf3d72a 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -2077,9 +2077,8 @@ void mob_damage(struct mob_data *md, struct block_list *src, int damage) {
* Signals death of mob.
* type&1 -> no drops, type&2 -> no exp
*------------------------------------------*/
-int mob_dead(struct mob_data *md, struct block_list *src, int type)
-{
- struct status_data *status;
+int mob_dead(struct mob_data *md, struct block_list *src, int type) {
+ struct status_data *mstatus;
struct map_session_data *sd = NULL, *tmpsd[DAMAGELOG_SIZE];
struct map_session_data *mvp_sd = NULL, *second_sd = NULL, *third_sd = NULL;
@@ -2093,7 +2092,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
unsigned int mvp_damage, tick = timer->gettick();
bool rebirth, homkillonly;
- status = &md->status;
+ mstatus = &md->status;
if( src && src->type == BL_PC )
{
@@ -2198,7 +2197,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
per = (double)md->dmglog[i].dmg/(double)md->tdmg;
else {
//eAthena's exp formula based on max hp.
- per = (double)md->dmglog[i].dmg/(double)status->max_hp;
+ per = (double)md->dmglog[i].dmg/(double)mstatus->max_hp;
if (per > 2) per = 2; // prevents unlimited exp gain
}
@@ -2399,8 +2398,8 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
{
if ( sd->add_drop[i].race == -md->class_ ||
( sd->add_drop[i].race > 0 && (
- sd->add_drop[i].race & (1<<status->race) ||
- sd->add_drop[i].race & (1<<(status->mode&MD_BOSS?RC_BOSS:RC_NONBOSS))
+ sd->add_drop[i].race & (1<<mstatus->race) ||
+ sd->add_drop[i].race & (1<<(mstatus->mode&MD_BOSS?RC_BOSS:RC_NONBOSS))
)))
{
//check if the bonus item drop rate should be multiplied with mob level/10 [Lupus]
@@ -3323,14 +3322,13 @@ int mob_is_clone(int class_)
//If mode is not passed, a default aggressive mode is used.
//If master_id is passed, clone is attached to him.
//Returns: ID of newly crafted copy.
-int mob_clone_spawn(struct map_session_data *sd, int16 m, int16 x, int16 y, const char *event, int master_id, int mode, int flag, unsigned int duration)
-{
+int mob_clone_spawn(struct map_session_data *sd, int16 m, int16 x, int16 y, const char *event, int master_id, int mode, int flag, unsigned int duration) {
int class_;
int i,j,h,inf,skill_id, fd;
struct mob_data *md;
struct mob_skill *ms;
struct mob_db* db;
- struct status_data *status;
+ struct status_data *mstatus;
nullpo_ret(sd);
@@ -3342,24 +3340,24 @@ int mob_clone_spawn(struct map_session_data *sd, int16 m, int16 x, int16 y, cons
return 0;
db = mob->db_data[class_]=(struct mob_db*)aCalloc(1, sizeof(struct mob_db));
- status = &db->status;
+ mstatus = &db->status;
strcpy(db->sprite,sd->status.name);
strcpy(db->name,sd->status.name);
strcpy(db->jname,sd->status.name);
db->lv=iStatus->get_lv(&sd->bl);
- memcpy(status, &sd->base_status, sizeof(struct status_data));
- status->rhw.atk2= status->dex + status->rhw.atk + status->rhw.atk2; //Max ATK
- status->rhw.atk = status->dex; //Min ATK
- if (status->lhw.atk) {
- status->lhw.atk2= status->dex + status->lhw.atk + status->lhw.atk2; //Max ATK
- status->lhw.atk = status->dex; //Min ATK
+ memcpy(mstatus, &sd->base_status, sizeof(struct status_data));
+ mstatus->rhw.atk2= mstatus->dex + mstatus->rhw.atk + mstatus->rhw.atk2; //Max ATK
+ mstatus->rhw.atk = mstatus->dex; //Min ATK
+ if (mstatus->lhw.atk) {
+ mstatus->lhw.atk2= mstatus->dex + mstatus->lhw.atk + mstatus->lhw.atk2; //Max ATK
+ mstatus->lhw.atk = mstatus->dex; //Min ATK
}
if (mode) //User provided mode.
- status->mode = mode;
+ mstatus->mode = mode;
else if (flag&1) //Friendly Character, remove looting.
- status->mode &= ~MD_LOOTER;
- status->hp = status->max_hp;
- status->sp = status->max_sp;
+ mstatus->mode &= ~MD_LOOTER;
+ mstatus->hp = mstatus->max_hp;
+ mstatus->sp = mstatus->max_sp;
memcpy(&db->vd, &sd->vd, sizeof(struct view_data));
db->base_exp=1;
db->job_exp=1;
@@ -3639,10 +3637,9 @@ static inline int mob_parse_dbrow_cap_value(int class_, int min, int max, int va
/*==========================================
* processes one mobdb entry
*------------------------------------------*/
-bool mob_parse_dbrow(char** str)
-{
+bool mob_parse_dbrow(char** str) {
struct mob_db *db, entry;
- struct status_data *status;
+ struct status_data *mstatus;
int class_, i, k;
double exp, maxhp;
struct mob_data data;
@@ -3666,7 +3663,7 @@ bool mob_parse_dbrow(char** str)
memset(&entry, 0, sizeof(entry));
db = &entry;
- status = &db->status;
+ mstatus = &db->status;
db->vd.class_ = class_;
safestrncpy(db->sprite, str[1], sizeof(db->sprite));
@@ -3674,8 +3671,8 @@ bool mob_parse_dbrow(char** str)
safestrncpy(db->name, str[3], sizeof(db->name));
db->lv = atoi(str[4]);
db->lv = cap_value(db->lv, 1, USHRT_MAX);
- status->max_hp = atoi(str[5]);
- status->max_sp = atoi(str[6]);
+ mstatus->max_hp = atoi(str[5]);
+ mstatus->max_sp = atoi(str[6]);
exp = (double)atoi(str[7]) * (double)battle_config.base_exp_rate / 100.;
db->base_exp = (unsigned int)cap_value(exp, 0, UINT_MAX);
@@ -3683,28 +3680,28 @@ bool mob_parse_dbrow(char** str)
exp = (double)atoi(str[8]) * (double)battle_config.job_exp_rate / 100.;
db->job_exp = (unsigned int)cap_value(exp, 0, UINT_MAX);
- status->rhw.range = atoi(str[9]);
+ mstatus->rhw.range = atoi(str[9]);
- status->rhw.atk = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[10]));
- status->rhw.atk2 = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[11]));
+ mstatus->rhw.atk = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[10]));
+ mstatus->rhw.atk2 = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[11]));
- status->def = mob_parse_dbrow_cap_value(class_,DEFTYPE_MIN,DEFTYPE_MAX,atoi(str[12]));
- status->mdef = mob_parse_dbrow_cap_value(class_,DEFTYPE_MIN,DEFTYPE_MAX,atoi(str[13]));
+ mstatus->def = mob_parse_dbrow_cap_value(class_,DEFTYPE_MIN,DEFTYPE_MAX,atoi(str[12]));
+ mstatus->mdef = mob_parse_dbrow_cap_value(class_,DEFTYPE_MIN,DEFTYPE_MAX,atoi(str[13]));
- status->str = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[14]));
- status->agi = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[15]));
- status->vit = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[16]));
- status->int_ = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[17]));
- status->dex = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[18]));
- status->luk = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[19]));
+ mstatus->str = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[14]));
+ mstatus->agi = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[15]));
+ mstatus->vit = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[16]));
+ mstatus->int_ = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[17]));
+ mstatus->dex = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[18]));
+ mstatus->luk = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[19]));
//All status should be min 1 to prevent divisions by zero from some skills. [Skotlex]
- if (status->str < 1) status->str = 1;
- if (status->agi < 1) status->agi = 1;
- if (status->vit < 1) status->vit = 1;
- if (status->int_< 1) status->int_= 1;
- if (status->dex < 1) status->dex = 1;
- if (status->luk < 1) status->luk = 1;
+ if (mstatus->str < 1) mstatus->str = 1;
+ if (mstatus->agi < 1) mstatus->agi = 1;
+ if (mstatus->vit < 1) mstatus->vit = 1;
+ if (mstatus->int_< 1) mstatus->int_= 1;
+ if (mstatus->dex < 1) mstatus->dex = 1;
+ if (mstatus->luk < 1) mstatus->luk = 1;
db->range2 = atoi(str[20]);
db->range3 = atoi(str[21]);
@@ -3719,44 +3716,44 @@ bool mob_parse_dbrow(char** str)
db->range3 = db->range2;
}
- status->size = atoi(str[22]);
- status->race = atoi(str[23]);
+ mstatus->size = atoi(str[22]);
+ mstatus->race = atoi(str[23]);
i = atoi(str[24]); //Element
- status->def_ele = i%10;
- status->ele_lv = i/20;
- if (status->def_ele >= ELE_MAX) {
- ShowError("mob_parse_dbrow: Invalid element type %d for monster ID %d (max=%d).\n", status->def_ele, class_, ELE_MAX-1);
+ mstatus->def_ele = i%10;
+ mstatus->ele_lv = i/20;
+ if (mstatus->def_ele >= ELE_MAX) {
+ ShowError("mob_parse_dbrow: Invalid element type %d for monster ID %d (max=%d).\n", mstatus->def_ele, class_, ELE_MAX-1);
return false;
}
- if (status->ele_lv < 1 || status->ele_lv > 4) {
- ShowError("mob_parse_dbrow: Invalid element level %d for monster ID %d, must be in range 1-4.\n", status->ele_lv, class_);
+ if (mstatus->ele_lv < 1 || mstatus->ele_lv > 4) {
+ ShowError("mob_parse_dbrow: Invalid element level %d for monster ID %d, must be in range 1-4.\n", mstatus->ele_lv, class_);
return false;
}
- status->mode = (int)strtol(str[25], NULL, 0);
+ mstatus->mode = (int)strtol(str[25], NULL, 0);
if (!battle_config.monster_active_enable)
- status->mode &= ~MD_AGGRESSIVE;
+ mstatus->mode &= ~MD_AGGRESSIVE;
- status->speed = atoi(str[26]);
- status->aspd_rate = 1000;
+ mstatus->speed = atoi(str[26]);
+ mstatus->aspd_rate = 1000;
i = atoi(str[27]);
- status->adelay = cap_value(i, battle_config.monster_max_aspd*2, 4000);
+ mstatus->adelay = cap_value(i, battle_config.monster_max_aspd*2, 4000);
i = atoi(str[28]);
- status->amotion = cap_value(i, battle_config.monster_max_aspd, 2000);
+ mstatus->amotion = cap_value(i, battle_config.monster_max_aspd, 2000);
//If the attack animation is longer than the delay, the client crops the attack animation!
//On aegis there is no real visible effect of having a recharge-time less than amotion anyway.
- if (status->adelay < status->amotion)
- status->adelay = status->amotion;
- status->dmotion = atoi(str[29]);
+ if (mstatus->adelay < mstatus->amotion)
+ mstatus->adelay = mstatus->amotion;
+ mstatus->dmotion = atoi(str[29]);
if(battle_config.monster_damage_delay_rate != 100)
- status->dmotion = status->dmotion * battle_config.monster_damage_delay_rate / 100;
+ mstatus->dmotion = mstatus->dmotion * battle_config.monster_damage_delay_rate / 100;
// Fill in remaining status data by using a dummy monster.
data.bl.type = BL_MOB;
data.level = db->lv;
- memcpy(&data.status, status, sizeof(struct status_data));
- iStatus->calc_misc(&data.bl, status, db->lv);
+ memcpy(&data.status, mstatus, sizeof(struct status_data));
+ iStatus->calc_misc(&data.bl, mstatus, db->lv);
// MVP EXP Bonus: MEXP
// Some new MVP's MEXP multipled by high exp-rate cause overflow. [LuzZza]
@@ -3764,7 +3761,7 @@ bool mob_parse_dbrow(char** str)
db->mexp = (unsigned int)cap_value(exp, 0, UINT_MAX);
//Now that we know if it is an mvp or not, apply battle_config modifiers [Skotlex]
- maxhp = (double)status->max_hp;
+ maxhp = (double)mstatus->max_hp;
if (db->mexp > 0) { //Mvp
if (battle_config.mvp_hp_rate != 100)
maxhp = maxhp * (double)battle_config.mvp_hp_rate / 100.;
@@ -3772,12 +3769,12 @@ bool mob_parse_dbrow(char** str)
if (battle_config.monster_hp_rate != 100)
maxhp = maxhp * (double)battle_config.monster_hp_rate / 100.;
- status->max_hp = (unsigned int)cap_value(maxhp, 1, UINT_MAX);
- if(status->max_sp < 1) status->max_sp = 1;
+ mstatus->max_hp = (unsigned int)cap_value(maxhp, 1, UINT_MAX);
+ if(mstatus->max_sp < 1) mstatus->max_sp = 1;
//Since mobs always respawn with full life...
- status->hp = status->max_hp;
- status->sp = status->max_sp;
+ mstatus->hp = mstatus->max_hp;
+ mstatus->sp = mstatus->max_sp;
// MVP Drops: MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per
for(i = 0; i < MAX_MVP_DROP; i++) {
@@ -3823,30 +3820,30 @@ bool mob_parse_dbrow(char** str)
else switch (type)
{ // Added suport to restrict normal drops of MVP's [Reddozen]
case IT_HEALING:
- rate_adjust = (status->mode&MD_BOSS) ? battle_config.item_rate_heal_boss : battle_config.item_rate_heal;
+ rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_heal_boss : battle_config.item_rate_heal;
ratemin = battle_config.item_drop_heal_min;
ratemax = battle_config.item_drop_heal_max;
break;
case IT_USABLE:
case IT_CASH:
- rate_adjust = (status->mode&MD_BOSS) ? battle_config.item_rate_use_boss : battle_config.item_rate_use;
+ rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_use_boss : battle_config.item_rate_use;
ratemin = battle_config.item_drop_use_min;
ratemax = battle_config.item_drop_use_max;
break;
case IT_WEAPON:
case IT_ARMOR:
case IT_PETARMOR:
- rate_adjust = (status->mode&MD_BOSS) ? battle_config.item_rate_equip_boss : battle_config.item_rate_equip;
+ rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_equip_boss : battle_config.item_rate_equip;
ratemin = battle_config.item_drop_equip_min;
ratemax = battle_config.item_drop_equip_max;
break;
case IT_CARD:
- rate_adjust = (status->mode&MD_BOSS) ? battle_config.item_rate_card_boss : battle_config.item_rate_card;
+ rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_card_boss : battle_config.item_rate_card;
ratemin = battle_config.item_drop_card_min;
ratemax = battle_config.item_drop_card_max;
break;
default:
- rate_adjust = (status->mode&MD_BOSS) ? battle_config.item_rate_common_boss : battle_config.item_rate_common;
+ rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_common_boss : battle_config.item_rate_common;
ratemin = battle_config.item_drop_common_min;
ratemax = battle_config.item_drop_common_max;
break;
diff --git a/src/map/pc.c b/src/map/pc.c
index 441230c29..c485baa43 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -444,20 +444,20 @@ unsigned char pc_famerank(int char_id, int job)
}
int pc_setrestartvalue(struct map_session_data *sd,int type) {
- struct status_data *status, *b_status;
+ struct status_data *st, *bst;
nullpo_ret(sd);
- b_status = &sd->base_status;
- status = &sd->battle_status;
+ bst = &sd->base_status;
+ st = &sd->battle_status;
if (type&1) { //Normal resurrection
- status->hp = 1; //Otherwise iStatus->heal may fail if dead.
- iStatus->heal(&sd->bl, b_status->hp, 0, 1);
- if( status->sp < b_status->sp )
- iStatus->set_sp(&sd->bl, b_status->sp, 1);
+ st->hp = 1; //Otherwise iStatus->heal may fail if dead.
+ iStatus->heal(&sd->bl, bst->hp, 0, 1);
+ if( st->sp < bst->sp )
+ iStatus->set_sp(&sd->bl, bst->sp, 1);
} else { //Just for saving on the char-server (with values as if respawned)
- sd->status.hp = b_status->hp;
- sd->status.sp = (status->sp < b_status->sp)?b_status->sp:status->sp;
+ sd->status.hp = bst->hp;
+ sd->status.sp = (st->sp < bst->sp) ? bst->sp : st->sp;
}
return 0;
}
@@ -2100,13 +2100,12 @@ int pc_bonus_subele(struct map_session_data* sd, unsigned char ele, short rate,
/*==========================================
* Add a bonus(type) to player sd
*------------------------------------------*/
-int pc_bonus(struct map_session_data *sd,int type,int val)
-{
- struct status_data *status;
+int pc_bonus(struct map_session_data *sd,int type,int val) {
+ struct status_data *bst;
int bonus;
nullpo_ret(sd);
- status = &sd->base_status;
+ bst = &sd->base_status;
switch(type){
case SP_STR:
@@ -2120,57 +2119,57 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
break;
case SP_ATK1:
if(!sd->state.lr_flag) {
- bonus = status->rhw.atk + val;
- status->rhw.atk = cap_value(bonus, 0, USHRT_MAX);
+ bonus = bst->rhw.atk + val;
+ bst->rhw.atk = cap_value(bonus, 0, USHRT_MAX);
}
else if(sd->state.lr_flag == 1) {
- bonus = status->lhw.atk + val;
- status->lhw.atk = cap_value(bonus, 0, USHRT_MAX);
+ bonus = bst->lhw.atk + val;
+ bst->lhw.atk = cap_value(bonus, 0, USHRT_MAX);
}
break;
case SP_ATK2:
if(!sd->state.lr_flag) {
- bonus = status->rhw.atk2 + val;
- status->rhw.atk2 = cap_value(bonus, 0, USHRT_MAX);
+ bonus = bst->rhw.atk2 + val;
+ bst->rhw.atk2 = cap_value(bonus, 0, USHRT_MAX);
}
else if(sd->state.lr_flag == 1) {
- bonus = status->lhw.atk2 + val;
- status->lhw.atk2 = cap_value(bonus, 0, USHRT_MAX);
+ bonus = bst->lhw.atk2 + val;
+ bst->lhw.atk2 = cap_value(bonus, 0, USHRT_MAX);
}
break;
case SP_BASE_ATK:
if(sd->state.lr_flag != 2) {
#ifdef RENEWAL
- status->equip_atk += val;
+ bst->equip_atk += val;
#else
- bonus = status->batk + val;
- status->batk = cap_value(bonus, 0, USHRT_MAX);
+ bonus = bst->batk + val;
+ bst->batk = cap_value(bonus, 0, USHRT_MAX);
#endif
}
break;
case SP_DEF1:
if(sd->state.lr_flag != 2) {
- bonus = status->def + val;
+ bonus = bst->def + val;
#ifdef RENEWAL
- status->def = cap_value(bonus, SHRT_MIN, SHRT_MAX);
+ bst->def = cap_value(bonus, SHRT_MIN, SHRT_MAX);
#else
- status->def = cap_value(bonus, CHAR_MIN, CHAR_MAX);
+ bst->def = cap_value(bonus, CHAR_MIN, CHAR_MAX);
#endif
}
break;
case SP_DEF2:
if(sd->state.lr_flag != 2) {
- bonus = status->def2 + val;
- status->def2 = cap_value(bonus, SHRT_MIN, SHRT_MAX);
+ bonus = bst->def2 + val;
+ bst->def2 = cap_value(bonus, SHRT_MIN, SHRT_MAX);
}
break;
case SP_MDEF1:
if(sd->state.lr_flag != 2) {
- bonus = status->mdef + val;
+ bonus = bst->mdef + val;
#ifdef RENEWAL
- status->mdef = cap_value(bonus, SHRT_MIN, SHRT_MAX);
+ bst->mdef = cap_value(bonus, SHRT_MIN, SHRT_MAX);
#else
- status->mdef = cap_value(bonus, CHAR_MIN, CHAR_MAX);
+ bst->mdef = cap_value(bonus, CHAR_MIN, CHAR_MAX);
#endif
if( sd->state.lr_flag == 3 ) {//Shield, used for royal guard
sd->bonus.shieldmdef += bonus;
@@ -2179,33 +2178,33 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
break;
case SP_MDEF2:
if(sd->state.lr_flag != 2) {
- bonus = status->mdef2 + val;
- status->mdef2 = cap_value(bonus, SHRT_MIN, SHRT_MAX);
+ bonus = bst->mdef2 + val;
+ bst->mdef2 = cap_value(bonus, SHRT_MIN, SHRT_MAX);
}
break;
case SP_HIT:
if(sd->state.lr_flag != 2) {
- bonus = status->hit + val;
- status->hit = cap_value(bonus, SHRT_MIN, SHRT_MAX);
+ bonus = bst->hit + val;
+ bst->hit = cap_value(bonus, SHRT_MIN, SHRT_MAX);
} else
sd->bonus.arrow_hit+=val;
break;
case SP_FLEE1:
if(sd->state.lr_flag != 2) {
- bonus = status->flee + val;
- status->flee = cap_value(bonus, SHRT_MIN, SHRT_MAX);
+ bonus = bst->flee + val;
+ bst->flee = cap_value(bonus, SHRT_MIN, SHRT_MAX);
}
break;
case SP_FLEE2:
if(sd->state.lr_flag != 2) {
- bonus = status->flee2 + val*10;
- status->flee2 = cap_value(bonus, SHRT_MIN, SHRT_MAX);
+ bonus = bst->flee2 + val*10;
+ bst->flee2 = cap_value(bonus, SHRT_MIN, SHRT_MAX);
}
break;
case SP_CRITICAL:
if(sd->state.lr_flag != 2) {
- bonus = status->cri + val*10;
- status->cri = cap_value(bonus, SHRT_MIN, SHRT_MAX);
+ bonus = bst->cri + val*10;
+ bst->cri = cap_value(bonus, SHRT_MIN, SHRT_MAX);
} else
sd->bonus.arrow_cri += val*10;
break;
@@ -2214,8 +2213,7 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
ShowError("pc_bonus: SP_ATKELE: Invalid element %d\n", val);
break;
}
- switch (sd->state.lr_flag)
- {
+ switch (sd->state.lr_flag) {
case 2:
switch (sd->status.weapon) {
case W_BOW:
@@ -2225,7 +2223,7 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
case W_SHOTGUN:
case W_GRENADE:
//Become weapon element.
- status->rhw.ele=val;
+ bst->rhw.ele=val;
break;
default: //Become arrow element.
sd->bonus.arrow_ele=val;
@@ -2233,10 +2231,10 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
}
break;
case 1:
- status->lhw.ele=val;
+ bst->lhw.ele=val;
break;
default:
- status->rhw.ele=val;
+ bst->rhw.ele=val;
break;
}
break;
@@ -2246,21 +2244,21 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
break;
}
if(sd->state.lr_flag != 2)
- status->def_ele=val;
+ bst->def_ele=val;
break;
case SP_MAXHP:
if(sd->state.lr_flag == 2)
break;
- val += (int)status->max_hp;
+ val += (int)bst->max_hp;
//Negative bonuses will underflow, this will be handled in status_calc_pc through casting
//If this is called outside of status_calc_pc, you'd better pray they do not underflow and end with UINT_MAX max_hp.
- status->max_hp = (unsigned int)val;
+ bst->max_hp = (unsigned int)val;
break;
case SP_MAXSP:
if(sd->state.lr_flag == 2)
break;
- val += (int)status->max_sp;
- status->max_sp = (unsigned int)val;
+ val += (int)bst->max_sp;
+ bst->max_sp = (unsigned int)val;
break;
#ifndef RENEWAL_CAST
case SP_VARCASTRATE:
@@ -2291,14 +2289,14 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
case W_GATLING:
case W_SHOTGUN:
case W_GRENADE:
- status->rhw.range += val;
+ bst->rhw.range += val;
}
break;
case 1:
- status->lhw.range += val;
+ bst->lhw.range += val;
break;
default:
- status->rhw.range += val;
+ bst->rhw.range += val;
break;
}
break;
@@ -2317,9 +2315,9 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
case SP_ASPD_RATE: //Stackable increase - Made it linear as per rodatazone
if(sd->state.lr_flag != 2)
#ifndef RENEWAL_ASPD
- status->aspd_rate -= 10*val;
+ bst->aspd_rate -= 10*val;
#else
- status->aspd_rate2 += val;
+ bst->aspd_rate2 += val;
#endif
break;
case SP_HP_RECOV_RATE:
@@ -5855,14 +5853,13 @@ int pc_checkjoblevelup(struct map_session_data *sd)
/*==========================================
* Alters experienced based on self bonuses that do not get even shared to the party.
*------------------------------------------*/
-static void pc_calcexp(struct map_session_data *sd, unsigned int *base_exp, unsigned int *job_exp, struct block_list *src)
-{
+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 *status = iStatus->get_status_data(src);
+ struct status_data *st = iStatus->get_status_data(src);
- if (sd->expaddrace[status->race])
- bonus += sd->expaddrace[status->race];
- bonus += sd->expaddrace[status->mode&MD_BOSS?RC_BOSS:RC_NONBOSS];
+ 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)
diff --git a/src/map/pet.c b/src/map/pet.c
index d064ddfe0..bb5982e7a 100644
--- a/src/map/pet.c
+++ b/src/map/pet.c
@@ -1114,10 +1114,9 @@ int pet_recovery_timer(int tid, unsigned int tick, int id, intptr_t data)
return 0;
}
-int pet_heal_timer(int tid, unsigned int tick, int id, intptr_t data)
-{
+int pet_heal_timer(int tid, unsigned int tick, int id, intptr_t data) {
struct map_session_data *sd=iMap->id2sd(id);
- struct status_data *status;
+ struct status_data *st;
struct pet_data *pd;
unsigned int rate = 100;
@@ -1131,11 +1130,11 @@ int pet_heal_timer(int tid, unsigned int tick, int id, intptr_t data)
return 0;
}
- status = iStatus->get_status_data(&sd->bl);
+ st = iStatus->get_status_data(&sd->bl);
if(pc_isdead(sd) ||
- (rate = get_percentage(status->sp, status->max_sp)) > pd->s_skill->sp ||
- (rate = get_percentage(status->hp, status->max_hp)) > pd->s_skill->hp ||
+ (rate = get_percentage(st->sp, st->max_sp)) > pd->s_skill->sp ||
+ (rate = get_percentage(st->hp, st->max_hp)) > pd->s_skill->hp ||
(rate = (pd->ud.skilltimer != INVALID_TIMER)) //Another skill is in effect
) { //Wait (how long? 1 sec for every 10% of remaining)
pd->s_skill->timer=timer->add(timer->gettick()+(rate>10?rate:10)*100,pet->heal_timer,sd->bl.id,0);
@@ -1152,11 +1151,10 @@ int pet_heal_timer(int tid, unsigned int tick, int id, intptr_t data)
/*==========================================
* pet support skills [Skotlex]
*------------------------------------------*/
-int pet_skill_support_timer(int tid, unsigned int tick, int id, intptr_t data)
-{
+int pet_skill_support_timer(int tid, unsigned int tick, int id, intptr_t data) {
struct map_session_data *sd=iMap->id2sd(id);
struct pet_data *pd;
- struct status_data *status;
+ struct status_data *st;
short rate = 100;
if(sd==NULL || sd->pd == NULL || sd->pd->s_skill == NULL)
return 1;
@@ -1168,7 +1166,7 @@ int pet_skill_support_timer(int tid, unsigned int tick, int id, intptr_t data)
return 0;
}
- status = iStatus->get_status_data(&sd->bl);
+ st = iStatus->get_status_data(&sd->bl);
if (DIFF_TICK(pd->ud.canact_tick, tick) > 0)
{ //Wait until the pet can act again.
@@ -1177,8 +1175,8 @@ int pet_skill_support_timer(int tid, unsigned int tick, int id, intptr_t data)
}
if(pc_isdead(sd) ||
- (rate = get_percentage(status->sp, status->max_sp)) > pd->s_skill->sp ||
- (rate = get_percentage(status->hp, status->max_hp)) > pd->s_skill->hp ||
+ (rate = get_percentage(st->sp, st->max_sp)) > pd->s_skill->sp ||
+ (rate = get_percentage(st->hp, st->max_hp)) > pd->s_skill->hp ||
(rate = (pd->ud.skilltimer != INVALID_TIMER)) //Another skill is in effect
) { //Wait (how long? 1 sec for every 10% of remaining)
pd->s_skill->timer=timer->add(tick+(rate>10?rate:10)*100,pet->skill_support_timer,sd->bl.id,0);
diff --git a/src/map/quest.c b/src/map/quest.c
index 881037081..40030560a 100644
--- a/src/map/quest.c
+++ b/src/map/quest.c
@@ -226,7 +226,7 @@ void quest_update_objective(TBL_PC * sd, int mob_id) {
}
}
-int quest_update_status(TBL_PC * sd, int quest_id, quest_state status) {
+int quest_update_status(TBL_PC * sd, int quest_id, quest_state qs) {
int i;
//Only status of active and inactive quests can be updated. Completed quests can't (for now). [Inkfish]
@@ -236,11 +236,11 @@ int quest_update_status(TBL_PC * sd, int quest_id, quest_state status) {
return -1;
}
- sd->quest_log[i].state = status;
+ sd->quest_log[i].state = qs;
sd->save_quest = true;
- if( status < Q_COMPLETE ) {
- clif->quest_update_status(sd, quest_id, (bool)status);
+ if( qs < Q_COMPLETE ) {
+ clif->quest_update_status(sd, quest_id, (bool)qs);
return 0;
}
diff --git a/src/map/quest.h b/src/map/quest.h
index c127dd402..340bc8608 100644
--- a/src/map/quest.h
+++ b/src/map/quest.h
@@ -29,7 +29,7 @@ struct quest_interface {
int (*delete) (TBL_PC *sd, int quest_id);
int (*update_objective_sub) (struct block_list *bl, va_list ap);
void (*update_objective) (TBL_PC *sd, int mob_id);
- int (*update_status) (TBL_PC *sd, int quest_id, quest_state status);
+ int (*update_status) (TBL_PC *sd, int quest_id, quest_state qs);
int (*check) (TBL_PC *sd, int quest_id, quest_check_type type);
int (*read_db) (void);
};
diff --git a/src/map/skill.c b/src/map/skill.c
index 3669431f0..3e9817faf 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -688,7 +688,6 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint
struct status_data *sstatus, *tstatus;
struct status_change *sc, *tsc;
- enum sc_type status;
int temp;
int rate;
@@ -1074,9 +1073,9 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint
break;
case LK_JOINTBEAT:
- status = iStatus->skill2sc(skill_id);
if (tsc->jb_flag) {
- sc_start4(bl,status,(5*skill_lv+5),skill_lv,tsc->jb_flag&BREAK_FLAGS,src->id,0,skill->get_time2(skill_id,skill_lv));
+ enum sc_type type = iStatus->skill2sc(skill_id);
+ sc_start4(bl,type,(5*skill_lv+5),skill_lv,tsc->jb_flag&BREAK_FLAGS,src->id,0,skill->get_time2(skill_id,skill_lv));
tsc->jb_flag = 0;
}
break;
@@ -2155,8 +2154,7 @@ int skill_magic_reflect(struct block_list* src, struct block_list* bl, int type)
* flag&0x2000 is used to signal that the skill_lv should be passed as -1 to the
* client (causes player characters to not scream skill name)
*-------------------------------------------------------------------------*/
-int skill_attack (int attack_type, struct block_list* src, struct block_list *dsrc, struct block_list *bl, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag)
-{
+int skill_attack (int attack_type, struct block_list* src, struct block_list *dsrc, struct block_list *bl, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) {
struct Damage dmg;
struct status_data *sstatus, *tstatus;
struct status_change *sc;
@@ -2263,11 +2261,11 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
dmg.damage = battle->attr_fix(bl, bl, dmg.damage, s_ele, status_get_element(bl), status_get_element_level(bl));
if( sc && sc->data[SC_ENERGYCOAT] ) {
- struct status_data *status = iStatus->get_status_data(bl);
- int per = 100*status->sp / status->max_sp -1; //100% should be counted as the 80~99% interval
+ struct status_data *st = iStatus->get_status_data(bl);
+ int per = 100*st->sp / st->max_sp -1; //100% should be counted as the 80~99% interval
per /=20; //Uses 20% SP intervals.
//SP Cost: 1% + 0.5% per every 20% SP
- if (!iStatus->charge(bl, 0, (10+5*per)*status->max_sp/1000))
+ if (!iStatus->charge(bl, 0, (10+5*per)*st->max_sp/1000))
status_change_end(bl, SC_ENERGYCOAT, INVALID_TIMER);
//Reduction: 6% + 6% every 20%
dmg.damage -= dmg.damage * (6 * (1+per)) / 100;
@@ -2967,7 +2965,7 @@ int skill_check_unit_range2 (struct block_list *bl, int x, int y, uint16 skill_i
* &2: picked menu entry (Warp Portal, Teleport and other menu based skills)
*------------------------------------------*/
int skill_check_condition_mercenary(struct block_list *bl, int skill_id, int lv, int type) {
- struct status_data *status;
+ struct status_data *st;
struct map_session_data *sd = NULL;
int i, hp, sp, hp_rate, sp_rate, state, mhp;
uint16 idx;
@@ -2983,7 +2981,7 @@ int skill_check_condition_mercenary(struct block_list *bl, int skill_id, int lv,
case BL_MER: sd = ((TBL_MER*)bl)->master; break;
}
- status = iStatus->get_status_data(bl);
+ st = iStatus->get_status_data(bl);
if( (idx = skill->get_index(skill_id)) == 0 )
return 0;
@@ -2999,15 +2997,15 @@ int skill_check_condition_mercenary(struct block_list *bl, int skill_id, int lv,
sp_rate = skill_db[idx].sp_rate[lv-1];
state = skill_db[idx].state;
if( (mhp = skill_db[idx].mhp[lv-1]) > 0 )
- hp += (status->max_hp * mhp) / 100;
+ hp += (st->max_hp * mhp) / 100;
if( hp_rate > 0 )
- hp += (status->hp * hp_rate) / 100;
+ hp += (st->hp * hp_rate) / 100;
else
- hp += (status->max_hp * (-hp_rate)) / 100;
+ hp += (st->max_hp * (-hp_rate)) / 100;
if( sp_rate > 0 )
- sp += (status->sp * sp_rate) / 100;
+ sp += (st->sp * sp_rate) / 100;
else
- sp += (status->max_sp * (-sp_rate)) / 100;
+ sp += (st->max_sp * (-sp_rate)) / 100;
if( bl->type == BL_HOM ) { // Intimacy Requeriments
struct homun_data *hd = BL_CAST(BL_HOM, bl);
@@ -3024,11 +3022,11 @@ int skill_check_condition_mercenary(struct block_list *bl, int skill_id, int lv,
}
if( !(type&2) ) {
- if( hp > 0 && status->hp <= (unsigned int)hp ) {
+ if( hp > 0 && st->hp <= (unsigned int)hp ) {
clif->skill_fail(sd, skill_id, USESKILL_FAIL_HP_INSUFFICIENT, 0);
return 0;
}
- if( sp > 0 && status->sp <= (unsigned int)sp ) {
+ if( sp > 0 && st->sp <= (unsigned int)sp ) {
clif->skill_fail(sd, skill_id, USESKILL_FAIL_SP_INSUFFICIENT, 0);
return 0;
}
@@ -10497,14 +10495,13 @@ int skill_icewall_block(struct block_list *bl,va_list ap) {
* Initializes and sets a ground skill.
* flag&1 is used to determine when the skill 'morphs' (Warp portal becomes active, or Fire Pillar becomes active)
*------------------------------------------*/
-struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill_id, uint16 skill_lv, int16 x, int16 y, int flag)
-{
+struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_id, uint16 skill_lv, int16 x, int16 y, int flag) {
struct skill_unit_group *group;
int i,limit,val1=0,val2=0,val3=0;
int target,interval,range,unit_flag,req_item=0;
struct s_skill_unit_layout *layout;
struct map_session_data *sd;
- struct status_data *status;
+ struct status_data *st;
struct status_change *sc;
int active_flag=1;
int subunt=0;
@@ -10527,7 +10524,7 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill
}
sd = BL_CAST(BL_PC, src);
- status = iStatus->get_status_data(src);
+ st = iStatus->get_status_data(src);
sc = iStatus->get_sc(src); // for traps, firewall and fogwall - celest
switch( skill_id ) {
@@ -10652,18 +10649,18 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill
case BA_DISSONANCE:
case DC_UGLYDANCE:
- val1 = 10; //FIXME: This value is not used anywhere, what is it for? [Skotlex]
+ val1 = 10; //FIXME: This value is not used anywhere, what is it for? [Skotlex]
break;
case BA_WHISTLE:
- val1 = skill_lv +status->agi/10; // Flee increase
- val2 = ((skill_lv+1)/2)+status->luk/10; // Perfect dodge increase
+ val1 = skill_lv +st->agi/10; // Flee increase
+ val2 = ((skill_lv+1)/2)+st->luk/10; // Perfect dodge increase
if(sd){
val1 += pc->checkskill(sd,BA_MUSICALLESSON);
val2 += pc->checkskill(sd,BA_MUSICALLESSON);
}
break;
case DC_HUMMING:
- val1 = 2*skill_lv+status->dex/10; // Hit increase
+ val1 = 2*skill_lv+st->dex/10; // Hit increase
#ifdef RENEWAL
val1 *= 2;
#endif
@@ -10671,9 +10668,9 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill
val1 += pc->checkskill(sd,DC_DANCINGLESSON);
break;
case BA_POEMBRAGI:
- val1 = 3*skill_lv+status->dex/10; // Casting time reduction
+ val1 = 3*skill_lv+st->dex/10; // Casting time reduction
//For some reason at level 10 the base delay reduction is 50%.
- val2 = (skill_lv<10?3*skill_lv:50)+status->int_/5; // After-cast delay reduction
+ val2 = (skill_lv<10?3*skill_lv:50)+st->int_/5; // After-cast delay reduction
if(sd){
val1 += 2*pc->checkskill(sd,BA_MUSICALLESSON);
val2 += 2*pc->checkskill(sd,BA_MUSICALLESSON);
@@ -10681,11 +10678,11 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill
break;
case DC_DONTFORGETME:
#ifdef RENEWAL
- val1 = status->dex/10 + 3*skill_lv; // ASPD decrease
- val2 = status->agi/10 + 2*skill_lv; // Movement speed adjustment.
+ val1 = st->dex/10 + 3*skill_lv; // ASPD decrease
+ val2 = st->agi/10 + 2*skill_lv; // Movement speed adjustment.
#else
- val1 = status->dex/10 + 3*skill_lv + 5; // ASPD decrease
- val2 = status->agi/10 + 3*skill_lv + 5; // Movement speed adjustment.
+ val1 = st->dex/10 + 3*skill_lv + 5; // ASPD decrease
+ val2 = st->agi/10 + 3*skill_lv + 5; // Movement speed adjustment.
#endif
if(sd){
val1 += pc->checkskill(sd,DC_DANCINGLESSON);
@@ -10693,13 +10690,13 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill
}
break;
case BA_APPLEIDUN:
- val1 = 5+2*skill_lv+status->vit/10; // MaxHP percent increase
+ val1 = 5+2*skill_lv+st->vit/10; // MaxHP percent increase
if(sd)
val1 += pc->checkskill(sd,BA_MUSICALLESSON);
break;
case DC_SERVICEFORYOU:
- val1 = 15+skill_lv+(status->int_/10); // MaxSP percent increase TO-DO: this INT bonus value is guessed
- val2 = 20+3*skill_lv+(status->int_/10); // SP cost reduction
+ val1 = 15+skill_lv+(st->int_/10); // MaxSP percent increase TO-DO: this INT bonus value is guessed
+ val2 = 20+3*skill_lv+(st->int_/10); // SP cost reduction
if(sd){
val1 += pc->checkskill(sd,DC_DANCINGLESSON); //TO-DO This bonus value is guessed
val2 += pc->checkskill(sd,DC_DANCINGLESSON); //TO-DO Should be half this value
@@ -10707,17 +10704,17 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill
break;
case BA_ASSASSINCROSS:
#ifdef RENEWAL
- val1 = 10 + skill_lv + (status->agi/10); // ASPD increase
+ val1 = 10 + skill_lv + (st->agi/10); // ASPD increase
if(sd)
val1 += 4*pc->checkskill(sd,BA_MUSICALLESSON);
#else
- val1 = 100+(10*skill_lv)+(status->agi/10); // ASPD increase
+ val1 = 100+(10*skill_lv)+(st->agi/10); // ASPD increase
if(sd)
val1 += 5*pc->checkskill(sd,BA_MUSICALLESSON);
#endif
break;
case DC_FORTUNEKISS:
- val1 = 10+skill_lv+(status->luk/10); // Critical increase
+ val1 = 10+skill_lv+(st->luk/10); // Critical increase
if(sd)
val1 += pc->checkskill(sd,DC_DANCINGLESSON);
val1*=10; //Because every 10 crit is an actual cri point.
@@ -10765,7 +10762,7 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, uint16 skill
{
int element[5]={ELE_WIND,ELE_DARK,ELE_POISON,ELE_WATER,ELE_FIRE};
- val1 = status->rhw.ele;
+ val1 = st->rhw.ele;
if (!val1)
val1=element[rnd()%5];
@@ -12334,7 +12331,7 @@ int skill_isammotype (struct map_session_data *sd, int skill_id)
}
int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id, uint16 skill_lv) {
- struct status_data *status;
+ struct status_data *st;
struct status_change *sc;
struct skill_condition require;
int i;
@@ -12370,7 +12367,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
return 0;
break;
}
- status = &sd->battle_status;
+ st = &sd->battle_status;
sc = &sd->sc;
if( !sc->count )
sc = NULL;
@@ -12695,9 +12692,8 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
break;
//Auron insists we should implement SP consumption when you are not Soul Linked. [Skotlex]
//Only invoke on skill begin cast (instant cast skill). [Kevin]
- if( require.sp > 0 )
- {
- if (status->sp < (unsigned int)require.sp)
+ if( require.sp > 0 ) {
+ if (st->sp < (unsigned int)require.sp)
clif->skill_fail(sd,skill_id,USESKILL_FAIL_SP_INSUFFICIENT,0);
else
status_zap(&sd->bl, 0, require.sp);
@@ -12725,9 +12721,9 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
case NJ_ISSEN:
#ifdef RENEWAL
- if (status->hp < (status->hp/100)) {
+ if (st->hp < (st->hp/100)) {
#else
- if (status->hp < 2) {
+ if (st->hp < 2) {
#endif
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 0;
@@ -12747,7 +12743,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
}
break;
case PF_HPCONVERSION:
- if (status->sp == status->max_sp)
+ if (st->sp == st->max_sp)
return 0; //Unusable when at full SP.
break;
case AM_CALLHOMUN: //Can't summon if a hom is already out
@@ -13162,7 +13158,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
break;
}
- if(require.mhp > 0 && get_percentage(status->hp, status->max_hp) > require.mhp) {
+ if(require.mhp > 0 && get_percentage(st->hp, st->max_hp) > require.mhp) {
//mhp is the max-hp-requirement, that is,
//you must have this % or less of HP to cast it.
clif->skill_fail(sd,skill_id,USESKILL_FAIL_HP_INSUFFICIENT,0);
@@ -13174,7 +13170,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
return 0;
}
- if( require.sp > 0 && status->sp < (unsigned int)require.sp) {
+ if( require.sp > 0 && st->sp < (unsigned int)require.sp) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_SP_INSUFFICIENT,0);
return 0;
}
@@ -13216,10 +13212,9 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
return 1;
}
-int skill_check_condition_castend(struct map_session_data* sd, uint16 skill_id, uint16 skill_lv)
-{
+int skill_check_condition_castend(struct map_session_data* sd, uint16 skill_id, uint16 skill_lv) {
struct skill_condition require;
- struct status_data *status;
+ struct status_data *st;
int i;
int index[MAX_SKILL_ITEM_REQUIRE];
@@ -13322,11 +13317,11 @@ int skill_check_condition_castend(struct map_session_data* sd, uint16 skill_id,
break;
}
- status = &sd->battle_status;
+ st = &sd->battle_status;
require = skill->get_requirement(sd,skill_id,skill_lv);
- if( require.hp > 0 && status->hp <= (unsigned int)require.hp) {
+ if( require.hp > 0 && st->hp <= (unsigned int)require.hp) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_HP_INSUFFICIENT,0);
return 0;
}
@@ -13489,10 +13484,9 @@ int skill_consume_requirement( struct map_session_data *sd, uint16 skill_id, uin
return 1;
}
-struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16 skill_id, uint16 skill_lv)
-{
+struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16 skill_id, uint16 skill_lv) {
struct skill_condition req;
- struct status_data *status;
+ struct status_data *st;
struct status_change *sc;
int i,hp_rate,sp_rate, sp_skill_rate_bonus = 100;
uint16 idx;
@@ -13528,23 +13522,23 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
if( skill_lv < 1 || skill_lv > MAX_SKILL_LEVEL )
return req;
- status = &sd->battle_status;
+ st = &sd->battle_status;
req.hp = skill_db[idx].hp[skill_lv-1];
hp_rate = skill_db[idx].hp_rate[skill_lv-1];
if(hp_rate > 0)
- req.hp += (status->hp * hp_rate)/100;
+ req.hp += (st->hp * hp_rate)/100;
else
- req.hp += (status->max_hp * (-hp_rate))/100;
+ req.hp += (st->max_hp * (-hp_rate))/100;
req.sp = skill_db[idx].sp[skill_lv-1];
if((sd->skill_id_old == BD_ENCORE) && skill_id == sd->skill_id_dance)
req.sp /= 2;
sp_rate = skill_db[idx].sp_rate[skill_lv-1];
if(sp_rate > 0)
- req.sp += (status->sp * sp_rate)/100;
+ req.sp += (st->sp * sp_rate)/100;
else
- req.sp += (status->max_sp * (-sp_rate))/100;
+ req.sp += (st->max_sp * (-sp_rate))/100;
if( sd->dsprate != 100 )
req.sp = req.sp * sd->dsprate / 100;
@@ -16018,16 +16012,15 @@ int skill_can_produce_mix (struct map_session_data *sd, int nameid, int trigger,
/*==========================================
*
*------------------------------------------*/
-int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid, int slot1, int slot2, int slot3, int qty)
-{
+int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid, int slot1, int slot2, int slot3, int qty) {
int slot[3];
int i,sc,ele,idx,equip,wlv,make_per = 0,flag = 0,skill_lv = 0;
int num = -1; // exclude the recipe
- struct status_data *status;
+ struct status_data *st;
struct item_data* data;
nullpo_ret(sd);
- status = iStatus->get_status_data(&sd->bl);
+ st = iStatus->get_status_data(&sd->bl);
if( sd->skill_id_old == skill_id )
skill_lv = sd->skill_lv_old;
@@ -16125,7 +16118,7 @@ int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid,
case BS_ENCHANTEDSTONE:
// Ores & Metals Refining - skill bonuses are straight from kRO website [DracoRPG]
i = pc->checkskill(sd,skill_id);
- make_per = sd->status.job_level*20 + status->dex*10 + status->luk*10; //Base chance
+ make_per = sd->status.job_level*20 + st->dex*10 + st->luk*10; //Base chance
switch(nameid){
case 998: // Iron
make_per += 4000+i*500; // Temper Iron bonus: +26/+32/+38/+44/+50
@@ -16142,7 +16135,7 @@ int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid,
}
break;
case ASC_CDP:
- make_per = (2000 + 40*status->dex + 20*status->luk);
+ make_per = (2000 + 40*st->dex + 20*st->luk);
break;
case AL_HOLYWATER:
/**
@@ -16157,7 +16150,7 @@ int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid,
case AM_TWILIGHT3:
make_per = pc->checkskill(sd,AM_LEARNINGPOTION)*50
+ pc->checkskill(sd,AM_PHARMACY)*300 + sd->status.job_level*20
- + (status->int_/2)*10 + status->dex*10+status->luk*10;
+ + (st->int_/2)*10 + st->dex*10+st->luk*10;
if(homun_alive(sd->hd)) {//Player got a homun
int skill2_lv;
if((skill2_lv=homun->checkskill(sd->hd,HVAN_INSTRUCT)) > 0) //His homun is a vanil with instruction change
@@ -16205,7 +16198,7 @@ int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid,
case RK_RUNEMASTERY:
{
int A = 5100 + 200 * pc->checkskill(sd, skill_id);
- int B = 10 * status->dex / 3 + (status->luk + sd->status.job_level);
+ int B = 10 * st->dex / 3 + (st->luk + sd->status.job_level);
int C = 100 * cap_value(sd->itemid,0,100); //itemid depend on makerune()
int D = 2500;
switch (nameid) { //rune rank it_diff 9 craftable rune
@@ -16252,7 +16245,7 @@ int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid,
difficulty = (620 - 20 * skill_lv);// (620 - 20 * Skill Level)
- make_per = status->int_ + status->dex/2 + status->luk + sd->status.job_level + (30+rnd()%120) + // (Caster?s INT) + (Caster?s DEX / 2) + (Caster?s LUK) + (Caster?s Job Level) + Random number between (30 ~ 150) +
+ make_per = st->int_ + st->dex/2 + st->luk + sd->status.job_level + (30+rnd()%120) + // (Caster?s INT) + (Caster?s DEX / 2) + (Caster?s LUK) + (Caster?s Job Level) + Random number between (30 ~ 150) +
(sd->status.base_level-100) + pc->checkskill(sd, AM_LEARNINGPOTION) + pc->checkskill(sd, CR_FULLPROTECTION)*(4+rnd()%6); // (Caster?s Base Level - 100) + (Potion Research x 5) + (Full Chemical Protection Skill Level) x (Random number between 4 ~ 10)
switch(nameid){// difficulty factor
@@ -16294,7 +16287,7 @@ int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid,
{
int difficulty = 30 + rnd()%120; // Random number between (30 ~ 150)
- make_per = sd->status.job_level / 4 + status->luk / 2 + status->dex / 3; // (Caster?s Job Level / 4) + (Caster?s LUK / 2) + (Caster?s DEX / 3)
+ make_per = sd->status.job_level / 4 + st->luk / 2 + st->dex / 3; // (Caster?s Job Level / 4) + (Caster?s LUK / 2) + (Caster?s DEX / 3)
qty = ~(5 + rnd()%5) + 1;
switch(nameid){// difficulty factor
@@ -16342,10 +16335,10 @@ int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid,
else
make_per = 1200 * (sd->menuskill_val - 10)
+ 20 * (sd->status.base_level + 1)
- + 20 * (status->dex + 1)
+ + 20 * (st->dex + 1)
+ 100 * (rnd()%(30+5*(sd->cook_mastery/400) - (6+sd->cook_mastery/80)) + (6+sd->cook_mastery/80))
- 400 * (skill_produce_db[idx].itemlv - 11 + 1)
- - 10 * (100 - status->luk + 1)
+ - 10 * (100 - st->luk + 1)
- 500 * (num - 1)
- 100 * (rnd()%4 + 1);
break;
@@ -16354,7 +16347,7 @@ int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid,
break;
}
} else { // Weapon Forging - skill bonuses are straight from kRO website, other things from a jRO calculator [DracoRPG]
- make_per = 5000 + sd->status.job_level*20 + status->dex*10 + status->luk*10; // Base
+ make_per = 5000 + sd->status.job_level*20 + st->dex*10 + st->luk*10; // Base
make_per += pc->checkskill(sd,skill_id)*500; // Smithing skills bonus: +5/+10/+15
make_per += pc->checkskill(sd,BS_WEAPONRESEARCH)*100 +((wlv >= 3)? pc->checkskill(sd,BS_ORIDEOCON)*100:0); // Weaponry Research bonus: +1/+2/+3/+4/+5/+6/+7/+8/+9/+10, Oridecon Research bonus (custom): +1/+2/+3/+4/+5
make_per -= (ele?2000:0) + sc*1500 + (wlv>1?wlv*1000:0); // Element Stone: -20%, Star Crumb: -15% each, Weapon level malus: -0/-20/-30
diff --git a/src/map/status.c b/src/map/status.c
index 5d856cfb9..eb398806b 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -1089,37 +1089,35 @@ static inline void status_cpy(struct status_data* a, const struct status_data* b
//Sets HP to given value. Flag is the flag passed to iStatus->heal in case
//final value is higher than current (use 2 to make a healing effect display
//on players) It will always succeed (overrides Berserk block), but it can't kill.
-int status_set_hp(struct block_list *bl, unsigned int hp, int flag)
-{
- struct status_data *status;
+int status_set_hp(struct block_list *bl, unsigned int hp, int flag) {
+ struct status_data *st;
if (hp < 1) return 0;
- status = iStatus->get_status_data(bl);
- if (status == &dummy_status)
+ st = iStatus->get_status_data(bl);
+ if (st == &dummy_status)
return 0;
- if (hp > status->max_hp) hp = status->max_hp;
- if (hp == status->hp) return 0;
- if (hp > status->hp)
- return iStatus->heal(bl, hp - status->hp, 0, 1|flag);
- return status_zap(bl, status->hp - hp, 0);
+ if (hp > st->max_hp) hp = st->max_hp;
+ if (hp == st->hp) return 0;
+ if (hp > st->hp)
+ return iStatus->heal(bl, hp - st->hp, 0, 1|flag);
+ return status_zap(bl, st->hp - hp, 0);
}
//Sets SP to given value. Flag is the flag passed to iStatus->heal in case
//final value is higher than current (use 2 to make a healing effect display
//on players)
-int status_set_sp(struct block_list *bl, unsigned int sp, int flag)
-{
- struct status_data *status;
+int status_set_sp(struct block_list *bl, unsigned int sp, int flag) {
+ struct status_data *st;
- status = iStatus->get_status_data(bl);
- if (status == &dummy_status)
+ st = iStatus->get_status_data(bl);
+ if (st == &dummy_status)
return 0;
- if (sp > status->max_sp) sp = status->max_sp;
- if (sp == status->sp) return 0;
- if (sp > status->sp)
- return iStatus->heal(bl, 0, sp - status->sp, 1|flag);
- return status_zap(bl, 0, status->sp - sp);
+ if (sp > st->max_sp) sp = st->max_sp;
+ if (sp == st->sp) return 0;
+ if (sp > st->sp)
+ return iStatus->heal(bl, 0, sp - st->sp, 1|flag);
+ return status_zap(bl, 0, st->sp - sp);
}
int status_charge(struct block_list* bl, int64 hp, int64 sp)
@@ -1135,7 +1133,7 @@ int status_charge(struct block_list* bl, int64 hp, int64 sp)
//If flag&4, if killed, mob must not give exp/loot.
//flag will be set to &8 when damaging sp of a dead character
int status_damage(struct block_list *src,struct block_list *target,int64 in_hp, int64 in_sp, int walkdelay, int flag) {
- struct status_data *status;
+ struct status_data *st;
struct status_change *sc;
int hp,sp;
@@ -1159,24 +1157,24 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp,
if (target->type == BL_SKILL)
return skill->unit_ondamaged((struct skill_unit *)target, src, hp, timer->gettick());
- status = iStatus->get_status_data(target);
- if( status == &dummy_status )
+ st = iStatus->get_status_data(target);
+ if( st == &dummy_status )
return 0;
- if ((unsigned int)hp >= status->hp) {
+ if ((unsigned int)hp >= st->hp) {
if (flag&2) return 0;
- hp = status->hp;
+ hp = st->hp;
}
- if ((unsigned int)sp > status->sp) {
+ if ((unsigned int)sp > st->sp) {
if (flag&2) return 0;
- sp = status->sp;
+ sp = st->sp;
}
if (!hp && !sp)
return 0;
- if( !status->hp )
+ if( !st->hp )
flag |= 8;
// Let through. battle.c/skill.c have the whole logic of when it's possible or
@@ -1218,7 +1216,7 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp,
status_change_end(target, SC_GRAVITATION, INVALID_TIMER);
}
}
- if(sc->data[SC_DANCING] && (unsigned int)hp > status->max_hp>>2)
+ if(sc->data[SC_DANCING] && (unsigned int)hp > st->max_hp>>2)
status_change_end(target, SC_DANCING, INVALID_TIMER);
if(sc->data[SC_CLOAKINGEXCEED] && --(sc->data[SC_CLOAKINGEXCEED]->val2) <= 0)
status_change_end(target, SC_CLOAKINGEXCEED, INVALID_TIMER);
@@ -1228,19 +1226,19 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp,
unit->skillcastcancel(target, 2);
}
- status->hp-= hp;
- status->sp-= sp;
+ st->hp-= hp;
+ st->sp-= sp;
- if (sc && hp && status->hp) {
+ if (sc && hp && st->hp) {
if (sc->data[SC_AUTOBERSERK] &&
(!sc->data[SC_PROVOKE] || !sc->data[SC_PROVOKE]->val2) &&
- status->hp < status->max_hp>>2)
+ st->hp < st->max_hp>>2)
sc_start4(target,SC_PROVOKE,100,10,1,0,0,0);
- if (sc->data[SC_BERSERK] && status->hp <= 100)
+ if (sc->data[SC_BERSERK] && st->hp <= 100)
status_change_end(target, SC_BERSERK, INVALID_TIMER);
- if( sc->data[SC_RAISINGDRAGON] && status->hp <= 1000 )
+ if( sc->data[SC_RAISINGDRAGON] && st->hp <= 1000 )
status_change_end(target, SC_RAISINGDRAGON, INVALID_TIMER);
- if (sc->data[SC_SATURDAY_NIGHT_FEVER] && status->hp <= 100)
+ if (sc->data[SC_SATURDAY_NIGHT_FEVER] && st->hp <= 100)
status_change_end(target, SC_SATURDAY_NIGHT_FEVER, INVALID_TIMER);
}
@@ -1256,14 +1254,14 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp,
unit->stop_walking( target, 1 );
}
- if( status->hp || (flag&8) )
+ if( st->hp || (flag&8) )
{ //Still lives or has been dead before this damage.
if (walkdelay)
unit->set_walkdelay(target, timer->gettick(), walkdelay, 0);
return (int)(hp+sp);
}
- status->hp = 1; //To let the dead function cast skills and all that.
+ st->hp = 1; //To let the dead function cast skills and all that.
//NOTE: These dead functions should return: [Skotlex]
//0: Death cancelled, auto-revived.
//Non-zero: Standard death. Clear status, cancel move/attack, etc
@@ -1284,7 +1282,7 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp,
return (int)(hp+sp);
//Normal death
- status->hp = 0;
+ st->hp = 0;
if (battle_config.clear_unit_ondeath &&
battle_config.clear_unit_ondeath&target->type)
skill->clear_unitgroup(target);
@@ -1356,15 +1354,14 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp,
//Heals a character. If flag&1, this is forced healing (otherwise stuff like Berserk can block it)
//If flag&2, when the player is healed, show the HP/SP heal effect.
-int status_heal(struct block_list *bl,int64 in_hp,int64 in_sp, int flag)
-{
- struct status_data *status;
+int status_heal(struct block_list *bl,int64 in_hp,int64 in_sp, int flag) {
+ struct status_data *st;
struct status_change *sc;
int hp,sp;
- status = iStatus->get_status_data(bl);
+ st = iStatus->get_status_data(bl);
- if (status == &dummy_status || !status->hp)
+ if (st == &dummy_status || !st->hp)
return 0;
/* here onwards we consider it a 32-type, the client does not support higher and from here onwards the value doesn't get thru percentage modifiers */
@@ -1389,8 +1386,8 @@ int status_heal(struct block_list *bl,int64 in_hp,int64 in_sp, int flag)
hp = 0;
}
- if((unsigned int)hp > status->max_hp - status->hp)
- hp = status->max_hp - status->hp;
+ if((unsigned int)hp > st->max_hp - st->hp)
+ hp = st->max_hp - st->hp;
}
if(sp < 0) {
@@ -1400,21 +1397,21 @@ int status_heal(struct block_list *bl,int64 in_hp,int64 in_sp, int flag)
}
if(sp) {
- if((unsigned int)sp > status->max_sp - status->sp)
- sp = status->max_sp - status->sp;
+ if((unsigned int)sp > st->max_sp - st->sp)
+ sp = st->max_sp - st->sp;
}
if(!sp && !hp) return 0;
- status->hp+= hp;
- status->sp+= sp;
+ st->hp+= hp;
+ st->sp+= sp;
- if(hp && sc &&
- sc->data[SC_AUTOBERSERK] &&
- sc->data[SC_PROVOKE] &&
- sc->data[SC_PROVOKE]->val2==1 &&
- status->hp>=status->max_hp>>2
- ) //End auto berserk.
+ if( hp && sc
+ && sc->data[SC_AUTOBERSERK]
+ && sc->data[SC_PROVOKE]
+ && sc->data[SC_PROVOKE]->val2==1
+ && st->hp>=st->max_hp>>2
+ ) //End auto berserk.
status_change_end(bl, SC_PROVOKE, INVALID_TIMER);
// send hp update to client
@@ -1435,41 +1432,40 @@ int status_heal(struct block_list *bl,int64 in_hp,int64 in_sp, int flag)
//If rates are < 0, percent is of max HP/SP
//If !flag, this is heal, otherwise it is damage.
//Furthermore, if flag==2, then the target must not die from the substraction.
-int status_percent_change(struct block_list *src,struct block_list *target,signed char hp_rate, signed char sp_rate, int flag)
-{
- struct status_data *status;
- unsigned int hp =0, sp = 0;
+int status_percent_change(struct block_list *src,struct block_list *target,signed char hp_rate, signed char sp_rate, int flag) {
+ struct status_data *st;
+ unsigned int hp = 0, sp = 0;
- status = iStatus->get_status_data(target);
+ st = iStatus->get_status_data(target);
//It's safe now [MarkZD]
if (hp_rate > 99)
- hp = status->hp;
+ hp = st->hp;
else if (hp_rate > 0)
- hp = status->hp>10000?
- hp_rate*(status->hp/100):
- ((int64)hp_rate*status->hp)/100;
+ hp = st->hp>10000?
+ hp_rate*(st->hp/100):
+ ((int64)hp_rate*st->hp)/100;
else if (hp_rate < -99)
- hp = status->max_hp;
+ hp = st->max_hp;
else if (hp_rate < 0)
- hp = status->max_hp>10000?
- (-hp_rate)*(status->max_hp/100):
- ((int64)-hp_rate*status->max_hp)/100;
+ hp = st->max_hp>10000?
+ (-hp_rate)*(st->max_hp/100):
+ ((int64)-hp_rate*st->max_hp)/100;
if (hp_rate && !hp)
hp = 1;
- if (flag == 2 && hp >= status->hp)
- hp = status->hp-1; //Must not kill target.
+ if (flag == 2 && hp >= st->hp)
+ hp = st->hp-1; //Must not kill target.
if (sp_rate > 99)
- sp = status->sp;
+ sp = st->sp;
else if (sp_rate > 0)
- sp = ((int64)sp_rate*status->sp)/100;
+ sp = ((int64)sp_rate*st->sp)/100;
else if (sp_rate < -99)
- sp = status->max_sp;
+ sp = st->max_sp;
else if (sp_rate < 0)
- sp = ((int64)-sp_rate)*status->max_sp/100;
+ sp = ((int64)-sp_rate)*st->max_sp/100;
if (sp_rate && !sp)
sp = 1;
@@ -1494,31 +1490,30 @@ int status_percent_change(struct block_list *src,struct block_list *target,signe
return iStatus->heal(target, hp, sp, 0);
}
-int status_revive(struct block_list *bl, unsigned char per_hp, unsigned char per_sp)
-{
- struct status_data *status;
+int status_revive(struct block_list *bl, unsigned char per_hp, unsigned char per_sp) {
+ struct status_data *st;
unsigned int hp, sp;
if (!iStatus->isdead(bl)) return 0;
- status = iStatus->get_status_data(bl);
- if (status == &dummy_status)
+ st = iStatus->get_status_data(bl);
+ if (st == &dummy_status)
return 0; //Invalid target.
- hp = (int64)status->max_hp * per_hp/100;
- sp = (int64)status->max_sp * per_sp/100;
+ hp = (int64)st->max_hp * per_hp/100;
+ sp = (int64)st->max_sp * per_sp/100;
- if(hp > status->max_hp - status->hp)
- hp = status->max_hp - status->hp;
+ if(hp > st->max_hp - st->hp)
+ hp = st->max_hp - st->hp;
else if (per_hp && !hp)
hp = 1;
- if(sp > status->max_sp - status->sp)
- sp = status->max_sp - status->sp;
+ if(sp > st->max_sp - st->sp)
+ sp = st->max_sp - st->sp;
else if (per_sp && !sp)
sp = 1;
- status->hp += hp;
- status->sp += sp;
+ st->hp += hp;
+ st->sp += sp;
if (bl->prev) //Animation only if character is already on a map.
clif->resurrection(bl, 1);
@@ -1543,19 +1538,18 @@ int status_revive(struct block_list *bl, unsigned char per_hp, unsigned char per
* target MAY Be null, in which case the checks are only to see
* whether the source can cast or not the skill on the ground.
*------------------------------------------*/
-int status_check_skilluse(struct block_list *src, struct block_list *target, uint16 skill_id, int flag)
-{
- struct status_data *status;
+int status_check_skilluse(struct block_list *src, struct block_list *target, uint16 skill_id, int flag) {
+ struct status_data *st;
struct status_change *sc=NULL, *tsc;
int hide_flag;
- status = src?iStatus->get_status_data(src):&dummy_status;
+ st = src ? iStatus->get_status_data(src) : &dummy_status;
if (src && src->type != BL_PC && iStatus->isdead(src))
return 0;
if (!skill_id) { //Normal attack checks.
- if (!(status->mode&MD_CANATTACK))
+ if (!(st->mode&MD_CANATTACK))
return 0; //This mode is only needed for melee attacking.
//Dead state is not checked for skills as some skills can be used
//on dead characters, said checks are left to skill.c [Skotlex]
@@ -1575,7 +1569,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
if( src->type == BL_PC )
clif->msg((TBL_PC*)src, SKILL_CANT_USE_AREA); // This skill cannot be used within this area
else if( src->type == BL_MOB && map[src->m].zone->disabled_skills[i]->subtype != MZS_NONE ) {
- if( (status->mode&MD_BOSS) && !(map[src->m].zone->disabled_skills[i]->subtype&MZS_BOSS) )
+ if( (st->mode&MD_BOSS) && !(map[src->m].zone->disabled_skills[i]->subtype&MZS_BOSS) )
break;
}
return 0;
@@ -1599,7 +1593,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
case AL_TELEPORT:
//Should fail when used on top of Land Protector [Skotlex]
if (src && iMap->getcell(src->m, src->x, src->y, CELL_CHKLANDPROTECTOR)
- && !(status->mode&MD_BOSS)
+ && !(st->mode&MD_BOSS)
&& (src->type != BL_PC || ((TBL_PC*)src)->skillitem != skill_id))
return 0;
break;
@@ -1774,8 +1768,8 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
switch( target->type ) {
case BL_PC: {
struct map_session_data *sd = (TBL_PC*) target;
- bool is_boss = (status->mode&MD_BOSS);
- bool is_detect = ((status->mode&MD_DETECTOR)?true:false);//god-knows-why gcc doesn't shut up until this happens
+ bool is_boss = (st->mode&MD_BOSS);
+ bool is_detect = ((st->mode&MD_DETECTOR)?true:false);//god-knows-why gcc doesn't shut up until this happens
if (pc_isinvisible(sd))
return 0;
if (tsc->option&hide_flag && !is_boss &&
@@ -1790,7 +1784,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
break;
case BL_ITEM: //Allow targetting of items to pick'em up (or in the case of mobs, to loot them).
//TODO: Would be nice if this could be used to judge whether the player can or not pick up the item it targets. [Skotlex]
- if (status->mode&MD_LOOTER)
+ if (st->mode&MD_LOOTER)
return 1;
return 0;
case BL_HOM:
@@ -1805,9 +1799,9 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
default:
//Check for chase-walk/hiding/cloaking opponents.
if( tsc ) {
- if( tsc->option&hide_flag && !(status->mode&(MD_BOSS|MD_DETECTOR)))
+ if( tsc->option&hide_flag && !(st->mode&(MD_BOSS|MD_DETECTOR)))
return 0;
- if( tsc->data[SC_STEALTHFIELD] && !(status->mode&MD_BOSS) )
+ if( tsc->data[SC_STEALTHFIELD] && !(st->mode&MD_BOSS) )
return 0;
}
}
@@ -1816,11 +1810,10 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
}
//Checks whether the source can see and chase target.
-int status_check_visibility(struct block_list *src, struct block_list *target)
-{
+int status_check_visibility(struct block_list *src, struct block_list *target) {
int view_range;
- struct status_data* status = iStatus->get_status_data(src);
- struct status_change* tsc = iStatus->get_sc(target);
+ struct status_data *st = iStatus->get_status_data(src);
+ struct status_change *tsc = iStatus->get_sc(target);
switch (src->type) {
case BL_MOB:
view_range = ((TBL_MOB*)src)->min_chase;
@@ -1841,14 +1834,14 @@ int status_check_visibility(struct block_list *src, struct block_list *target)
switch (target->type)
{ //Check for chase-walk/hiding/cloaking opponents.
case BL_PC:
- if ( tsc->data[SC_CLOAKINGEXCEED] && !(status->mode&MD_BOSS) )
+ if ( tsc->data[SC_CLOAKINGEXCEED] && !(st->mode&MD_BOSS) )
return 0;
- if( (tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK) || tsc->data[SC__INVISIBILITY] || tsc->data[SC_CAMOUFLAGE]) && !(status->mode&MD_BOSS) &&
- ( ((TBL_PC*)target)->special_state.perfect_hiding || !(status->mode&MD_DETECTOR) ) )
+ if( (tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK) || tsc->data[SC__INVISIBILITY] || tsc->data[SC_CAMOUFLAGE]) && !(st->mode&MD_BOSS) &&
+ ( ((TBL_PC*)target)->special_state.perfect_hiding || !(st->mode&MD_DETECTOR) ) )
return 0;
break;
default:
- if( tsc && (tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK) || tsc->data[SC__INVISIBILITY] || tsc->data[SC_CAMOUFLAGE]) && !(status->mode&(MD_BOSS|MD_DETECTOR)) )
+ if( tsc && (tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK) || tsc->data[SC__INVISIBILITY] || tsc->data[SC_CAMOUFLAGE]) && !(st->mode&(MD_BOSS|MD_DETECTOR)) )
return 0;
}
@@ -1857,8 +1850,7 @@ int status_check_visibility(struct block_list *src, struct block_list *target)
}
// Basic ASPD value
-int status_base_amotion_pc(struct map_session_data* sd, struct status_data* status)
-{
+int status_base_amotion_pc(struct map_session_data *sd, struct status_data *st) {
int amotion;
#ifdef RENEWAL_ASPD
short mod = -1;
@@ -1889,7 +1881,7 @@ int status_base_amotion_pc(struct map_session_data* sd, struct status_data* stat
: (aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype1] + aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2])*7/10; // dual-wield
// percentual delay reduction from stats
- amotion -= amotion * (4*status->agi + status->dex)/1000;
+ amotion -= amotion * (4*st->agi + st->dex)/1000;
#endif
// raw delay adjustment from bAspd bonus
amotion += sd->bonus.aspd_add;
@@ -1897,8 +1889,7 @@ int status_base_amotion_pc(struct map_session_data* sd, struct status_data* stat
return amotion;
}
-static unsigned short status_base_atk(const struct block_list *bl, const struct status_data *status)
-{
+static unsigned short status_base_atk(const struct block_list *bl, const struct status_data *st) {
int flag = 0, str, dex,
#ifdef RENEWAL
rstr,
@@ -1925,14 +1916,14 @@ static unsigned short status_base_atk(const struct block_list *bl, const struct
#ifdef RENEWAL
rstr =
#endif
- str = status->dex;
- dex = status->str;
+ str = st->dex;
+ dex = st->str;
} else {
#ifdef RENEWAL
rstr =
#endif
- str = status->str;
- dex = status->dex;
+ str = st->str;
+ dex = st->dex;
}
//Normally only players have base-atk, but homunc have a different batk
// equation, hinting that perhaps non-players should use this for batk.
@@ -1941,94 +1932,92 @@ static unsigned short status_base_atk(const struct block_list *bl, const struct
str += dstr*dstr;
if (bl->type == BL_PC)
#ifdef RENEWAL
- str = (int)(rstr + (float)dex/5 + (float)status->luk/3 + (float)((TBL_PC*)bl)->status.base_level/4);
+ str = (int)(rstr + (float)dex/5 + (float)st->luk/3 + (float)((TBL_PC*)bl)->status.base_level/4);
else if(bl->type == BL_MOB)
str = rstr + ((TBL_MOB*)bl)->level;
#else
- str+= dex/5 + status->luk/5;
+ str+= dex/5 + st->luk/5;
#endif
return cap_value(str, 0, USHRT_MAX);
}
-static inline unsigned short status_base_matk_min(const struct status_data* status){ return status->int_+(status->int_/7)*(status->int_/7); }
-static inline unsigned short status_base_matk_max(const struct status_data* status){ return status->int_+(status->int_/5)*(status->int_/5); }
+static inline unsigned short status_base_matk_min(const struct status_data *st){ return st->int_+(st->int_/7)*(st->int_/7); }
+static inline unsigned short status_base_matk_max(const struct status_data *st){ return st->int_+(st->int_/5)*(st->int_/5); }
#ifdef RENEWAL
-unsigned short status_base_matk(const struct status_data* status, int level){ return status->int_+(status->int_/2)+(status->dex/5)+(status->luk/3)+(level/4); }
+unsigned short status_base_matk(const struct status_data *st, int level){ return st->int_+(st->int_/2)+(st->dex/5)+(st->luk/3)+(level/4); }
#endif
//Fills in the misc data that can be calculated from the other status info (except for level)
-void status_calc_misc(struct block_list *bl, struct status_data *status, int level)
-{
+void status_calc_misc(struct block_list *bl, struct status_data *st, int level) {
//Non players get the value set, players need to stack with previous bonuses.
if( bl->type != BL_PC )
- status->batk =
- status->hit = status->flee =
- status->def2 = status->mdef2 =
- status->cri = status->flee2 = 0;
+ st->batk =
+ st->hit = st->flee =
+ st->def2 = st->mdef2 =
+ st->cri = st->flee2 = 0;
#ifdef RENEWAL // renewal formulas
- status->matk_min = status->matk_max = bl->type == BL_PC ? iStatus->base_matk(status, level) : level + status->int_;
- status->hit += level + status->dex + (bl->type == BL_PC ? status->luk/3 + 175 : 150); //base level + ( every 1 dex = +1 hit ) + (every 3 luk = +1 hit) + 175
- status->flee += level + status->agi + (bl->type == BL_PC ? status->luk/5 : 0) + 100; //base level + ( every 1 agi = +1 flee ) + (every 5 luk = +1 flee) + 100
- status->def2 += (int)(((float)level + status->vit)/2 + ( bl->type == BL_PC ? ((float)status->agi/5) : 0 )); //base level + (every 2 vit = +1 def) + (every 5 agi = +1 def)
- status->mdef2 += (int)( bl->type == BL_PC ?(status->int_ + ((float)level/4) + ((float)(status->dex+status->vit)/5)):((float)(status->int_ + level)/4)); //(every 4 base level = +1 mdef) + (every 1 int = +1 mdef) + (every 5 dex = +1 mdef) + (every 5 vit = +1 mdef)
+ st->matk_min = st->matk_max = bl->type == BL_PC ? iStatus->base_matk(st, level) : level + st->int_;
+ st->hit += level + st->dex + (bl->type == BL_PC ? st->luk/3 + 175 : 150); //base level + ( every 1 dex = +1 hit ) + (every 3 luk = +1 hit) + 175
+ st->flee += level + st->agi + (bl->type == BL_PC ? st->luk/5 : 0) + 100; //base level + ( every 1 agi = +1 flee ) + (every 5 luk = +1 flee) + 100
+ st->def2 += (int)(((float)level + st->vit)/2 + ( bl->type == BL_PC ? ((float)st->agi/5) : 0 )); //base level + (every 2 vit = +1 def) + (every 5 agi = +1 def)
+ st->mdef2 += (int)( bl->type == BL_PC ?(st->int_ + ((float)level/4) + ((float)(st->dex+st->vit)/5)):((float)(st->int_ + level)/4)); //(every 4 base level = +1 mdef) + (every 1 int = +1 mdef) + (every 5 dex = +1 mdef) + (every 5 vit = +1 mdef)
#else
- status->matk_min = status_base_matk_min(status);
- status->matk_max = status_base_matk_max(status);
- status->hit += level + status->dex;
- status->flee += level + status->agi;
- status->def2 += status->vit;
- status->mdef2 += status->int_ + (status->vit>>1);
+ st->matk_min = status_base_matk_min(st);
+ st->matk_max = status_base_matk_max(st);
+ st->hit += level + st->dex;
+ st->flee += level + st->agi;
+ st->def2 += st->vit;
+ st->mdef2 += st->int_ + (st->vit>>1);
#endif
if( bl->type&battle_config.enable_critical )
- status->cri += 10 + (status->luk*10/3); //(every 1 luk = +0.3 critical)
+ st->cri += 10 + (st->luk*10/3); //(every 1 luk = +0.3 critical)
else
- status->cri = 0;
+ st->cri = 0;
if (bl->type&battle_config.enable_perfect_flee)
- status->flee2 += status->luk + 10; //(every 10 luk = +1 perfect flee)
+ st->flee2 += st->luk + 10; //(every 10 luk = +1 perfect flee)
else
- status->flee2 = 0;
+ st->flee2 = 0;
- if (status->batk) {
- int temp = status->batk + status_base_atk(bl, status);
- status->batk = cap_value(temp, 0, USHRT_MAX);
+ if (st->batk) {
+ int temp = st->batk + status_base_atk(bl, st);
+ st->batk = cap_value(temp, 0, USHRT_MAX);
} else
- status->batk = status_base_atk(bl, status);
- if (status->cri)
+ st->batk = status_base_atk(bl, st);
+ if (st->cri)
switch (bl->type) {
case BL_MOB:
if(battle_config.mob_critical_rate != 100)
- status->cri = status->cri*battle_config.mob_critical_rate/100;
- if(!status->cri && battle_config.mob_critical_rate)
- status->cri = 10;
+ st->cri = st->cri*battle_config.mob_critical_rate/100;
+ if(!st->cri && battle_config.mob_critical_rate)
+ st->cri = 10;
break;
case BL_PC:
//Players don't have a critical adjustment setting as of yet.
break;
case BL_MER:
#ifdef RENEWAL
- status->matk_min = status->matk_max = status_base_matk_max(status);
- status->def2 = status->vit + level / 10 + status->vit / 5;
- status->mdef2 = level / 10 + status->int_ / 5;
+ st->matk_min = st->matk_max = status_base_matk_max(st);
+ st->def2 = st->vit + level / 10 + st->vit / 5;
+ st->mdef2 = level / 10 + st->int_ / 5;
#endif
break;
default:
if(battle_config.critical_rate != 100)
- status->cri = status->cri*battle_config.critical_rate/100;
- if (!status->cri && battle_config.critical_rate)
- status->cri = 10;
+ st->cri = st->cri*battle_config.critical_rate/100;
+ if (!st->cri && battle_config.critical_rate)
+ st->cri = 10;
}
if(bl->type&BL_REGEN)
- iStatus->calc_regen(bl, status, iStatus->get_regen_data(bl));
+ iStatus->calc_regen(bl, st, iStatus->get_regen_data(bl));
}
//Skotlex: Calculates the initial status for the given mob
//first will only be false when the mob leveled up or got a GuardUp level.
-int status_calc_mob_(struct mob_data* md, bool first)
-{
- struct status_data *status;
+int status_calc_mob_(struct mob_data* md, bool first) {
+ struct status_data *mstatus;
struct block_list *mbl = NULL;
int flag=0;
@@ -2071,8 +2060,8 @@ int status_calc_mob_(struct mob_data* md, bool first)
if (!md->base_status)
md->base_status = (struct status_data*)aCalloc(1, sizeof(struct status_data));
- status = md->base_status;
- memcpy(status, &md->db->status, sizeof(struct status_data));
+ mstatus = md->base_status;
+ memcpy(mstatus, &md->db->status, sizeof(struct status_data));
if (flag&(8|16))
mbl = iMap->id2bl(md->master_id);
@@ -2081,84 +2070,84 @@ int status_calc_mob_(struct mob_data* md, bool first)
struct status_data *mstatus = iStatus->get_base_status(mbl);
if (mstatus &&
battle_config.slaves_inherit_speed&(mstatus->mode&MD_CANMOVE?1:2))
- status->speed = mstatus->speed;
- if( status->speed < 2 ) /* minimum for the unit to function properly */
- status->speed = 2;
+ mstatus->speed = mstatus->speed;
+ if( mstatus->speed < 2 ) /* minimum for the unit to function properly */
+ mstatus->speed = 2;
}
- if (flag&16 && mbl)
- { //Max HP setting from Summon Flora/marine Sphere
+ if (flag&16 && mbl) {
+ //Max HP setting from Summon Flora/marine Sphere
struct unit_data *ud = unit->bl2ud(mbl);
//Remove special AI when this is used by regular mobs.
if (mbl->type == BL_MOB && !((TBL_MOB*)mbl)->special_state.ai)
md->special_state.ai = 0;
- if (ud)
- { // different levels of HP according to skill level
+ if (ud) {
+ // different levels of HP according to skill level
if (ud->skill_id == AM_SPHEREMINE) {
- status->max_hp = 2000 + 400*ud->skill_lv;
- } else if(ud->skill_id == KO_ZANZOU){
- status->max_hp = 3000 + 3000 * ud->skill_lv + status_get_max_sp(battle->get_master(mbl));
+ mstatus->max_hp = 2000 + 400*ud->skill_lv;
+ } else if(ud->skill_id == KO_ZANZOU) {
+ mstatus->max_hp = 3000 + 3000 * ud->skill_lv + status_get_max_sp(battle->get_master(mbl));
} else { //AM_CANNIBALIZE
- status->max_hp = 1500 + 200*ud->skill_lv + 10*iStatus->get_lv(mbl);
- status->mode|= MD_CANATTACK|MD_AGGRESSIVE;
+ mstatus->max_hp = 1500 + 200*ud->skill_lv + 10*iStatus->get_lv(mbl);
+ mstatus->mode|= MD_CANATTACK|MD_AGGRESSIVE;
}
- status->hp = status->max_hp;
+ mstatus->hp = mstatus->max_hp;
}
}
- if (flag&1)
- { // increase from mobs leveling up [Valaris]
+ if (flag&1) {
+ // increase from mobs leveling up [Valaris]
int diff = md->level - md->db->lv;
- status->str+= diff;
- status->agi+= diff;
- status->vit+= diff;
- status->int_+= diff;
- status->dex+= diff;
- status->luk+= diff;
- status->max_hp += diff*status->vit;
- status->max_sp += diff*status->int_;
- status->hp = status->max_hp;
- status->sp = status->max_sp;
- status->speed -= cap_value(diff, 0, status->speed - 10);
- }
-
-
- if (flag&2 && battle_config.mob_size_influence)
- { // change for sized monsters [Valaris]
+ mstatus->str+= diff;
+ mstatus->agi+= diff;
+ mstatus->vit+= diff;
+ mstatus->int_+= diff;
+ mstatus->dex+= diff;
+ mstatus->luk+= diff;
+ mstatus->max_hp += diff*mstatus->vit;
+ mstatus->max_sp += diff*mstatus->int_;
+ mstatus->hp = mstatus->max_hp;
+ mstatus->sp = mstatus->max_sp;
+ mstatus->speed -= cap_value(diff, 0, mstatus->speed - 10);
+ }
+
+
+ if (flag&2 && battle_config.mob_size_influence) {
+ // change for sized monsters [Valaris]
if (md->special_state.size==SZ_MEDIUM) {
- status->max_hp>>=1;
- status->max_sp>>=1;
- if (!status->max_hp) status->max_hp = 1;
- if (!status->max_sp) status->max_sp = 1;
- status->hp=status->max_hp;
- status->sp=status->max_sp;
- status->str>>=1;
- status->agi>>=1;
- status->vit>>=1;
- status->int_>>=1;
- status->dex>>=1;
- status->luk>>=1;
- if (!status->str) status->str = 1;
- if (!status->agi) status->agi = 1;
- if (!status->vit) status->vit = 1;
- if (!status->int_) status->int_ = 1;
- if (!status->dex) status->dex = 1;
- if (!status->luk) status->luk = 1;
+ mstatus->max_hp>>=1;
+ mstatus->max_sp>>=1;
+ if (!mstatus->max_hp) mstatus->max_hp = 1;
+ if (!mstatus->max_sp) mstatus->max_sp = 1;
+ mstatus->hp=mstatus->max_hp;
+ mstatus->sp=mstatus->max_sp;
+ mstatus->str>>=1;
+ mstatus->agi>>=1;
+ mstatus->vit>>=1;
+ mstatus->int_>>=1;
+ mstatus->dex>>=1;
+ mstatus->luk>>=1;
+ if (!mstatus->str) mstatus->str = 1;
+ if (!mstatus->agi) mstatus->agi = 1;
+ if (!mstatus->vit) mstatus->vit = 1;
+ if (!mstatus->int_) mstatus->int_ = 1;
+ if (!mstatus->dex) mstatus->dex = 1;
+ if (!mstatus->luk) mstatus->luk = 1;
} else if (md->special_state.size==SZ_BIG) {
- status->max_hp<<=1;
- status->max_sp<<=1;
- status->hp=status->max_hp;
- status->sp=status->max_sp;
- status->str<<=1;
- status->agi<<=1;
- status->vit<<=1;
- status->int_<<=1;
- status->dex<<=1;
- status->luk<<=1;
+ mstatus->max_hp<<=1;
+ mstatus->max_sp<<=1;
+ mstatus->hp=mstatus->max_hp;
+ mstatus->sp=mstatus->max_sp;
+ mstatus->str<<=1;
+ mstatus->agi<<=1;
+ mstatus->vit<<=1;
+ mstatus->int_<<=1;
+ mstatus->dex<<=1;
+ mstatus->luk<<=1;
}
}
- iStatus->calc_misc(&md->bl, status, md->level);
+ iStatus->calc_misc(&md->bl, mstatus, md->level);
if(flag&4)
{ // Strengthen Guardians - custom value +10% / lv
@@ -2169,27 +2158,27 @@ int status_calc_mob_(struct mob_data* md, bool first)
else
if(gc->castle_id < 24 || md->class_ == MOBID_EMPERIUM) {
#ifdef RENEWAL
- status->max_hp += 50 * gc->defense;
- status->max_sp += 70 * gc->defense;
+ mstatus->max_hp += 50 * gc->defense;
+ mstatus->max_sp += 70 * gc->defense;
#else
- status->max_hp += 1000 * gc->defense;
- status->max_sp += 200 * gc->defense;
+ mstatus->max_hp += 1000 * gc->defense;
+ mstatus->max_sp += 200 * gc->defense;
#endif
- status->hp = status->max_hp;
- status->sp = status->max_sp;
- status->def += (gc->defense+2)/3;
- status->mdef += (gc->defense+2)/3;
+ mstatus->hp = mstatus->max_hp;
+ mstatus->sp = mstatus->max_sp;
+ mstatus->def += (gc->defense+2)/3;
+ mstatus->mdef += (gc->defense+2)/3;
}
if(md->class_ != MOBID_EMPERIUM) {
- status->batk += status->batk * 10*md->guardian_data->guardup_lv/100;
- status->rhw.atk += status->rhw.atk * 10*md->guardian_data->guardup_lv/100;
- status->rhw.atk2 += status->rhw.atk2 * 10*md->guardian_data->guardup_lv/100;
- status->aspd_rate -= 100*md->guardian_data->guardup_lv;
+ mstatus->batk += mstatus->batk * 10*md->guardian_data->guardup_lv/100;
+ mstatus->rhw.atk += mstatus->rhw.atk * 10*md->guardian_data->guardup_lv/100;
+ mstatus->rhw.atk2 += mstatus->rhw.atk2 * 10*md->guardian_data->guardup_lv/100;
+ mstatus->aspd_rate -= 100*md->guardian_data->guardup_lv;
}
}
if( first ) //Initial battle status
- memcpy(&md->status, status, sizeof(struct status_data));
+ memcpy(&md->status, mstatus, sizeof(struct status_data));
return 1;
}
@@ -2210,37 +2199,35 @@ int status_calc_pet_(struct pet_data *pd, bool first)
}
}
- if (battle_config.pet_lv_rate && pd->msd)
- {
+ if (battle_config.pet_lv_rate && pd->msd) {
struct map_session_data *sd = pd->msd;
int lv;
lv =sd->status.base_level*battle_config.pet_lv_rate/100;
if (lv < 0)
lv = 1;
- if (lv != pd->pet.level || first)
- {
- struct status_data *bstat = &pd->db->status, *status = &pd->status;
+ if (lv != pd->pet.level || first) {
+ struct status_data *bstat = &pd->db->status, *pstatus = &pd->status;
pd->pet.level = lv;
if (!first) //Lv Up animation
clif->misceffect(&pd->bl, 0);
- status->rhw.atk = (bstat->rhw.atk*lv)/pd->db->lv;
- status->rhw.atk2 = (bstat->rhw.atk2*lv)/pd->db->lv;
- status->str = (bstat->str*lv)/pd->db->lv;
- status->agi = (bstat->agi*lv)/pd->db->lv;
- status->vit = (bstat->vit*lv)/pd->db->lv;
- status->int_ = (bstat->int_*lv)/pd->db->lv;
- status->dex = (bstat->dex*lv)/pd->db->lv;
- status->luk = (bstat->luk*lv)/pd->db->lv;
-
- status->rhw.atk = cap_value(status->rhw.atk, 1, battle_config.pet_max_atk1);
- status->rhw.atk2 = cap_value(status->rhw.atk2, 2, battle_config.pet_max_atk2);
- status->str = cap_value(status->str,1,battle_config.pet_max_stats);
- status->agi = cap_value(status->agi,1,battle_config.pet_max_stats);
- status->vit = cap_value(status->vit,1,battle_config.pet_max_stats);
- status->int_= cap_value(status->int_,1,battle_config.pet_max_stats);
- status->dex = cap_value(status->dex,1,battle_config.pet_max_stats);
- status->luk = cap_value(status->luk,1,battle_config.pet_max_stats);
+ pstatus->rhw.atk = (bstat->rhw.atk*lv)/pd->db->lv;
+ pstatus->rhw.atk2 = (bstat->rhw.atk2*lv)/pd->db->lv;
+ pstatus->str = (bstat->str*lv)/pd->db->lv;
+ pstatus->agi = (bstat->agi*lv)/pd->db->lv;
+ pstatus->vit = (bstat->vit*lv)/pd->db->lv;
+ pstatus->int_ = (bstat->int_*lv)/pd->db->lv;
+ pstatus->dex = (bstat->dex*lv)/pd->db->lv;
+ pstatus->luk = (bstat->luk*lv)/pd->db->lv;
+
+ pstatus->rhw.atk = cap_value(pstatus->rhw.atk, 1, battle_config.pet_max_atk1);
+ pstatus->rhw.atk2 = cap_value(pstatus->rhw.atk2, 2, battle_config.pet_max_atk2);
+ pstatus->str = cap_value(pstatus->str,1,battle_config.pet_max_stats);
+ pstatus->agi = cap_value(pstatus->agi,1,battle_config.pet_max_stats);
+ pstatus->vit = cap_value(pstatus->vit,1,battle_config.pet_max_stats);
+ pstatus->int_= cap_value(pstatus->int_,1,battle_config.pet_max_stats);
+ pstatus->dex = cap_value(pstatus->dex,1,battle_config.pet_max_stats);
+ pstatus->luk = cap_value(pstatus->luk,1,battle_config.pet_max_stats);
iStatus->calc_misc(&pd->bl, &pd->status, lv);
@@ -2287,8 +2274,7 @@ static void status_calc_sigma(void)
/// f(0) = 35 | f(x+1) = f(x) + A + (x + B)*C/D
/// which reduces to something close to
/// f(x) = 35 + x*(A + B*C/D) + sum(i=2..x){ i*C/D }
-static unsigned int status_base_pc_maxhp(struct map_session_data* sd, struct status_data* status)
-{
+static unsigned int status_base_pc_maxhp(struct map_session_data *sd, struct status_data *st) {
uint64 val = pc->class2idx(sd->status.class_);
val = 35 + sd->status.base_level*(int64)hp_coefficient2[val]/100 + hp_sigma_val[val][sd->status.base_level];
@@ -2299,7 +2285,7 @@ static unsigned int status_base_pc_maxhp(struct map_session_data* sd, struct sta
if((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.base_level >= 99)
val += 2000; //Supernovice lvl99 hp bonus.
- val += val * status->vit/100; // +1% per each point of VIT
+ val += val * st->vit/100; // +1% per each point of VIT
if (sd->class_&JOBL_UPPER)
val += val * 25/100; //Trans classes get a 25% hp bonus
@@ -2308,12 +2294,11 @@ static unsigned int status_base_pc_maxhp(struct map_session_data* sd, struct sta
return (unsigned int)val;
}
-static unsigned int status_base_pc_maxsp(struct map_session_data* sd, struct status_data *status)
-{
+static unsigned int status_base_pc_maxsp(struct map_session_data* sd, struct status_data *st) {
uint64 val;
val = 10 + sd->status.base_level*(int64)sp_coefficient[pc->class2idx(sd->status.class_)]/100;
- val += val * status->int_/100;
+ val += val * st->int_/100;
if (sd->class_&JOBL_UPPER)
val += val * 25/100;
@@ -2327,10 +2312,9 @@ static unsigned int status_base_pc_maxsp(struct map_session_data* sd, struct sta
//Calculates player data from scratch without counting SC adjustments.
//Should be invoked whenever players raise stats, learn passive skills or change equipment.
-int status_calc_pc_(struct map_session_data* sd, bool first)
-{
+int status_calc_pc_(struct map_session_data* sd, bool first) {
static int calculating = 0; //Check for recursive call preemption. [Skotlex]
- struct status_data *status; // pointer to the player's base status
+ struct status_data *bstatus; // pointer to the player's base status
const struct status_change *sc = &sd->sc;
struct s_skill b_skill[MAX_SKILL]; // previous skill tree
int b_weight, b_max_weight, b_cart_weight_max, // previous weight
@@ -2372,7 +2356,7 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
}
}
- status = &sd->base_status;
+ bstatus = &sd->base_status;
// these are not zeroed. [zzo]
sd->hprate=100;
sd->sprate=100;
@@ -2422,26 +2406,26 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
clif->sc_end(&sd->bl,sd->bl.id,SELF,SI_CLAIRVOYANCE);
memset(&sd->special_state,0,sizeof(sd->special_state));
- memset(&status->max_hp, 0, sizeof(struct status_data)-(sizeof(status->hp)+sizeof(status->sp)));
+ memset(&bstatus->max_hp, 0, sizeof(struct status_data)-(sizeof(bstatus->hp)+sizeof(bstatus->sp)));
//FIXME: Most of these stuff should be calculated once, but how do I fix the memset above to do that? [Skotlex]
if (!sd->state.permanent_speed)
- status->speed = DEFAULT_WALK_SPEED;
+ bstatus->speed = DEFAULT_WALK_SPEED;
//Give them all modes except these (useful for clones)
- status->mode = MD_MASK&~(MD_BOSS|MD_PLANT|MD_DETECTOR|MD_ANGRY|MD_TARGETWEAK);
+ bstatus->mode = MD_MASK&~(MD_BOSS|MD_PLANT|MD_DETECTOR|MD_ANGRY|MD_TARGETWEAK);
- status->size = (sd->class_&JOBL_BABY)?SZ_SMALL:SZ_MEDIUM;
+ bstatus->size = (sd->class_&JOBL_BABY)?SZ_SMALL:SZ_MEDIUM;
if (battle_config.character_size && (pc_isriding(sd) || pc_isridingdragon(sd)) ) { //[Lupus]
if (sd->class_&JOBL_BABY) {
if (battle_config.character_size&SZ_BIG)
- status->size++;
+ bstatus->size++;
} else
if(battle_config.character_size&SZ_MEDIUM)
- status->size++;
+ bstatus->size++;
}
- status->aspd_rate = 1000;
- status->ele_lv = 1;
- status->race = RC_DEMIHUMAN;
+ bstatus->aspd_rate = 1000;
+ bstatus->ele_lv = 1;
+ bstatus->race = RC_DEMIHUMAN;
//zero up structures...
memset(&sd->autospell,0,sizeof(sd->autospell)
@@ -2507,7 +2491,7 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
if( k < map[sd->bl.m].zone->disabled_items_count )
continue;
- status->def += sd->inventory_data[index]->def;
+ bstatus->def += sd->inventory_data[index]->def;
if(first && sd->inventory_data[index]->equip_script)
{ //Execute equip-script on login
@@ -2528,10 +2512,10 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
wlv = REFINE_TYPE_MAX - 1;
if(i == EQI_HAND_L && sd->status.inventory[index].equip == EQP_HAND_L) {
wd = &sd->left_weapon; // Left-hand weapon
- wa = &status->lhw;
+ wa = &bstatus->lhw;
} else {
wd = &sd->right_weapon;
- wa = &status->rhw;
+ wa = &bstatus->rhw;
}
wa->atk += sd->inventory_data[index]->atk;
if ( (r = sd->status.inventory[index].refine) )
@@ -2613,7 +2597,7 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
memcpy(sd->param_equip,sd->param_bonus,sizeof(sd->param_equip));
memset(sd->param_bonus, 0, sizeof(sd->param_bonus));
- status->def += (refinedef+50)/100;
+ bstatus->def += (refinedef+50)/100;
//Parse Cards
for(i=0;i<EQI_MAX-1;i++) {
@@ -2687,10 +2671,10 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
}
//param_bonus now holds card bonuses.
- if(status->rhw.range < 1) status->rhw.range = 1;
- if(status->lhw.range < 1) status->lhw.range = 1;
- if(status->rhw.range < status->lhw.range)
- status->rhw.range = status->lhw.range;
+ if(bstatus->rhw.range < 1) bstatus->rhw.range = 1;
+ if(bstatus->lhw.range < 1) bstatus->lhw.range = 1;
+ if(bstatus->rhw.range < bstatus->lhw.range)
+ bstatus->rhw.range = bstatus->lhw.range;
sd->bonus.double_rate += sd->bonus.double_add_rate;
sd->bonus.perfect_hit += sd->bonus.perfect_hit_add;
@@ -2720,205 +2704,205 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
if(!job_bonus[index][i])
continue;
switch(job_bonus[index][i]) {
- case 1: status->str++; break;
- case 2: status->agi++; break;
- case 3: status->vit++; break;
- case 4: status->int_++; break;
- case 5: status->dex++; break;
- case 6: status->luk++; break;
+ case 1: bstatus->str++; break;
+ case 2: bstatus->agi++; break;
+ case 3: bstatus->vit++; break;
+ case 4: bstatus->int_++; break;
+ case 5: bstatus->dex++; break;
+ case 6: bstatus->luk++; break;
}
}
// If a Super Novice has never died and is at least joblv 70, he gets all stats +10
- if((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->die_counter == 0 && sd->status.job_level >= 70){
- status->str += 10;
- status->agi += 10;
- status->vit += 10;
- status->int_+= 10;
- status->dex += 10;
- status->luk += 10;
+ if((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->die_counter == 0 && sd->status.job_level >= 70) {
+ bstatus->str += 10;
+ bstatus->agi += 10;
+ bstatus->vit += 10;
+ bstatus->int_+= 10;
+ bstatus->dex += 10;
+ bstatus->luk += 10;
}
// Absolute modifiers from passive skills
if(pc->checkskill(sd,BS_HILTBINDING)>0)
- status->str++;
+ bstatus->str++;
if((skill_lv=pc->checkskill(sd,SA_DRAGONOLOGY))>0)
- status->int_ += (skill_lv+1)/2; // +1 INT / 2 lv
+ bstatus->int_ += (skill_lv+1)/2; // +1 INT / 2 lv
if((skill_lv=pc->checkskill(sd,AC_OWL))>0)
- status->dex += skill_lv;
+ bstatus->dex += skill_lv;
if((skill_lv = pc->checkskill(sd,RA_RESEARCHTRAP))>0)
- status->int_ += skill_lv;
+ bstatus->int_ += skill_lv;
// Bonuses from cards and equipment as well as base stat, remember to avoid overflows.
- i = status->str + sd->status.str + sd->param_bonus[0] + sd->param_equip[0];
- status->str = cap_value(i,0,USHRT_MAX);
- i = status->agi + sd->status.agi + sd->param_bonus[1] + sd->param_equip[1];
- status->agi = cap_value(i,0,USHRT_MAX);
- i = status->vit + sd->status.vit + sd->param_bonus[2] + sd->param_equip[2];
- status->vit = cap_value(i,0,USHRT_MAX);
- i = status->int_+ sd->status.int_+ sd->param_bonus[3] + sd->param_equip[3];
- status->int_ = cap_value(i,0,USHRT_MAX);
- i = status->dex + sd->status.dex + sd->param_bonus[4] + sd->param_equip[4];
- status->dex = cap_value(i,0,USHRT_MAX);
- i = status->luk + sd->status.luk + sd->param_bonus[5] + sd->param_equip[5];
- status->luk = cap_value(i,0,USHRT_MAX);
+ i = bstatus->str + sd->status.str + sd->param_bonus[0] + sd->param_equip[0];
+ bstatus->str = cap_value(i,0,USHRT_MAX);
+ i = bstatus->agi + sd->status.agi + sd->param_bonus[1] + sd->param_equip[1];
+ bstatus->agi = cap_value(i,0,USHRT_MAX);
+ i = bstatus->vit + sd->status.vit + sd->param_bonus[2] + sd->param_equip[2];
+ bstatus->vit = cap_value(i,0,USHRT_MAX);
+ i = bstatus->int_+ sd->status.int_+ sd->param_bonus[3] + sd->param_equip[3];
+ bstatus->int_ = cap_value(i,0,USHRT_MAX);
+ i = bstatus->dex + sd->status.dex + sd->param_bonus[4] + sd->param_equip[4];
+ bstatus->dex = cap_value(i,0,USHRT_MAX);
+ i = bstatus->luk + sd->status.luk + sd->param_bonus[5] + sd->param_equip[5];
+ bstatus->luk = cap_value(i,0,USHRT_MAX);
// ------ BASE ATTACK CALCULATION ------
// Base batk value is set on iStatus->calc_misc
// weapon-type bonus (FIXME: Why is the weapon_atk bonus applied to base attack?)
if (sd->status.weapon < MAX_WEAPON_TYPE && sd->weapon_atk[sd->status.weapon])
- status->batk += sd->weapon_atk[sd->status.weapon];
+ bstatus->batk += sd->weapon_atk[sd->status.weapon];
// Absolute modifiers from passive skills
#ifndef RENEWAL
if((skill_lv=pc->checkskill(sd,BS_HILTBINDING))>0) // it doesn't work in RE.
- status->batk += 4;
+ bstatus->batk += 4;
#endif
// ----- HP MAX CALCULATION -----
// Basic MaxHP value
//We hold the standard Max HP here to make it faster to recalculate on vit changes.
- sd->status.max_hp = status_base_pc_maxhp(sd,status);
+ sd->status.max_hp = status_base_pc_maxhp(sd,bstatus);
//This is done to handle underflows from negative Max HP bonuses
- i64 = sd->status.max_hp + (int)status->max_hp;
- status->max_hp = (unsigned int)cap_value(i64, 0, INT_MAX);
+ i64 = sd->status.max_hp + (int)bstatus->max_hp;
+ bstatus->max_hp = (unsigned int)cap_value(i64, 0, INT_MAX);
// Absolute modifiers from passive skills
if((skill_lv=pc->checkskill(sd,CR_TRUST))>0)
- status->max_hp += skill_lv*200;
+ bstatus->max_hp += skill_lv*200;
// Apply relative modifiers from equipment
if(sd->hprate < 0)
sd->hprate = 0;
if(sd->hprate!=100)
- status->max_hp = (int64)status->max_hp * sd->hprate/100;
+ bstatus->max_hp = (int64)bstatus->max_hp * sd->hprate/100;
if(battle_config.hp_rate != 100)
- status->max_hp = (int64)status->max_hp * battle_config.hp_rate/100;
+ bstatus->max_hp = (int64)bstatus->max_hp * battle_config.hp_rate/100;
- if(status->max_hp > (unsigned int)battle_config.max_hp)
- status->max_hp = battle_config.max_hp;
- else if(!status->max_hp)
- status->max_hp = 1;
+ if(bstatus->max_hp > (unsigned int)battle_config.max_hp)
+ bstatus->max_hp = battle_config.max_hp;
+ else if(!bstatus->max_hp)
+ bstatus->max_hp = 1;
// ----- SP MAX CALCULATION -----
// Basic MaxSP value
- sd->status.max_sp = status_base_pc_maxsp(sd,status);
+ sd->status.max_sp = status_base_pc_maxsp(sd,bstatus);
//This is done to handle underflows from negative Max SP bonuses
- i64 = sd->status.max_sp + (int)status->max_sp;
- status->max_sp = (unsigned int)cap_value(i64, 0, INT_MAX);
+ i64 = sd->status.max_sp + (int)bstatus->max_sp;
+ bstatus->max_sp = (unsigned int)cap_value(i64, 0, INT_MAX);
// Absolute modifiers from passive skills
if((skill_lv=pc->checkskill(sd,SL_KAINA))>0)
- status->max_sp += 30*skill_lv;
+ bstatus->max_sp += 30*skill_lv;
if((skill_lv=pc->checkskill(sd,HP_MEDITATIO))>0)
- status->max_sp += (int64)status->max_sp * skill_lv/100;
+ bstatus->max_sp += (int64)bstatus->max_sp * skill_lv/100;
if((skill_lv=pc->checkskill(sd,HW_SOULDRAIN))>0)
- status->max_sp += (int64)status->max_sp * 2*skill_lv/100;
+ bstatus->max_sp += (int64)bstatus->max_sp * 2*skill_lv/100;
if( (skill_lv = pc->checkskill(sd,RA_RESEARCHTRAP)) > 0 )
- status->max_sp += 200 + 20 * skill_lv;
+ bstatus->max_sp += 200 + 20 * skill_lv;
if( (skill_lv = pc->checkskill(sd,WM_LESSON)) > 0 )
- status->max_sp += 30 * skill_lv;
+ bstatus->max_sp += 30 * skill_lv;
// Apply relative modifiers from equipment
if(sd->sprate < 0)
sd->sprate = 0;
if(sd->sprate!=100)
- status->max_sp = (int64)status->max_sp * sd->sprate/100;
+ bstatus->max_sp = (int64)bstatus->max_sp * sd->sprate/100;
if(battle_config.sp_rate != 100)
- status->max_sp = (int64)status->max_sp * battle_config.sp_rate/100;
+ bstatus->max_sp = (int64)bstatus->max_sp * battle_config.sp_rate/100;
- if(status->max_sp > (unsigned int)battle_config.max_sp)
- status->max_sp = battle_config.max_sp;
- else if(!status->max_sp)
- status->max_sp = 1;
+ if(bstatus->max_sp > (unsigned int)battle_config.max_sp)
+ bstatus->max_sp = battle_config.max_sp;
+ else if(!bstatus->max_sp)
+ bstatus->max_sp = 1;
// ----- RESPAWN HP/SP -----
//
//Calc respawn hp and store it on base_status
if (sd->special_state.restart_full_recover)
{
- status->hp = status->max_hp;
- status->sp = status->max_sp;
+ bstatus->hp = bstatus->max_hp;
+ bstatus->sp = bstatus->max_sp;
} else {
if((sd->class_&MAPID_BASEMASK) == MAPID_NOVICE && !(sd->class_&JOBL_2)
&& battle_config.restart_hp_rate < 50)
- status->hp = status->max_hp>>1;
+ bstatus->hp = bstatus->max_hp>>1;
else
- status->hp = (int64)status->max_hp * battle_config.restart_hp_rate/100;
- if(!status->hp)
- status->hp = 1;
+ bstatus->hp = (int64)bstatus->max_hp * battle_config.restart_hp_rate/100;
+ if(!bstatus->hp)
+ bstatus->hp = 1;
- status->sp = (int64)status->max_sp * battle_config.restart_sp_rate /100;
+ bstatus->sp = (int64)bstatus->max_sp * battle_config.restart_sp_rate /100;
- if( !status->sp ) /* the minimum for the respawn setting is SP:1 */
- status->sp = 1;
+ if( !bstatus->sp ) /* the minimum for the respawn setting is SP:1 */
+ bstatus->sp = 1;
}
// ----- MISC CALCULATION -----
- iStatus->calc_misc(&sd->bl, status, sd->status.base_level);
+ iStatus->calc_misc(&sd->bl, bstatus, sd->status.base_level);
//Equipment modifiers for misc settings
if(sd->matk_rate < 0)
sd->matk_rate = 0;
if(sd->matk_rate != 100){
- status->matk_max = status->matk_max * sd->matk_rate/100;
- status->matk_min = status->matk_min * sd->matk_rate/100;
+ bstatus->matk_max = bstatus->matk_max * sd->matk_rate/100;
+ bstatus->matk_min = bstatus->matk_min * sd->matk_rate/100;
}
if(sd->hit_rate < 0)
sd->hit_rate = 0;
if(sd->hit_rate != 100)
- status->hit = status->hit * sd->hit_rate/100;
+ bstatus->hit = bstatus->hit * sd->hit_rate/100;
if(sd->flee_rate < 0)
sd->flee_rate = 0;
if(sd->flee_rate != 100)
- status->flee = status->flee * sd->flee_rate/100;
+ bstatus->flee = bstatus->flee * sd->flee_rate/100;
if(sd->def2_rate < 0)
sd->def2_rate = 0;
if(sd->def2_rate != 100)
- status->def2 = status->def2 * sd->def2_rate/100;
+ bstatus->def2 = bstatus->def2 * sd->def2_rate/100;
if(sd->mdef2_rate < 0)
sd->mdef2_rate = 0;
if(sd->mdef2_rate != 100)
- status->mdef2 = status->mdef2 * sd->mdef2_rate/100;
+ bstatus->mdef2 = bstatus->mdef2 * sd->mdef2_rate/100;
if(sd->critical_rate < 0)
sd->critical_rate = 0;
if(sd->critical_rate != 100)
- status->cri = status->cri * sd->critical_rate/100;
+ bstatus->cri = bstatus->cri * sd->critical_rate/100;
if(sd->flee2_rate < 0)
sd->flee2_rate = 0;
if(sd->flee2_rate != 100)
- status->flee2 = status->flee2 * sd->flee2_rate/100;
+ bstatus->flee2 = bstatus->flee2 * sd->flee2_rate/100;
// ----- HIT CALCULATION -----
// Absolute modifiers from passive skills
#ifndef RENEWAL
if((skill_lv=pc->checkskill(sd,BS_WEAPONRESEARCH))>0) // is this correct in pre? there is already hitrate bonus in battle.c
- status->hit += skill_lv*2;
+ bstatus->hit += skill_lv*2;
#endif
if((skill_lv=pc->checkskill(sd,AC_VULTURE))>0) {
#ifndef RENEWAL
- status->hit += skill_lv;
+ bstatus->hit += skill_lv;
#endif
if(sd->status.weapon == W_BOW)
- status->rhw.range += skill_lv;
+ bstatus->rhw.range += skill_lv;
}
if(sd->status.weapon >= W_REVOLVER && sd->status.weapon <= W_GRENADE) {
if((skill_lv=pc->checkskill(sd,GS_SINGLEACTION))>0)
- status->hit += 2*skill_lv;
+ bstatus->hit += 2*skill_lv;
if((skill_lv=pc->checkskill(sd,GS_SNAKEEYE))>0) {
- status->hit += skill_lv;
- status->rhw.range += skill_lv;
+ bstatus->hit += skill_lv;
+ bstatus->rhw.range += skill_lv;
}
}
@@ -2926,24 +2910,23 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
// Absolute modifiers from passive skills
if((skill_lv=pc->checkskill(sd,TF_MISS))>0)
- status->flee += skill_lv*(sd->class_&JOBL_2 && (sd->class_&MAPID_BASEMASK) == MAPID_THIEF? 4 : 3);
+ bstatus->flee += skill_lv*(sd->class_&JOBL_2 && (sd->class_&MAPID_BASEMASK) == MAPID_THIEF? 4 : 3);
if((skill_lv=pc->checkskill(sd,MO_DODGE))>0)
- status->flee += (skill_lv*3)>>1;
+ bstatus->flee += (skill_lv*3)>>1;
// ----- EQUIPMENT-DEF CALCULATION -----
// Apply relative modifiers from equipment
if(sd->def_rate < 0)
sd->def_rate = 0;
if(sd->def_rate != 100) {
- i = status->def * sd->def_rate/100;
- status->def = cap_value(i, DEFTYPE_MIN, DEFTYPE_MAX);
+ i = bstatus->def * sd->def_rate/100;
+ bstatus->def = cap_value(i, DEFTYPE_MIN, DEFTYPE_MAX);
}
#ifndef RENEWAL
- if (!battle_config.weapon_defense_type && status->def > battle_config.max_def)
- {
- status->def2 += battle_config.over_def_bonus*(status->def -battle_config.max_def);
- status->def = (unsigned char)battle_config.max_def;
+ if (!battle_config.weapon_defense_type && bstatus->def > battle_config.max_def) {
+ bstatus->def2 += battle_config.over_def_bonus*(bstatus->def -battle_config.max_def);
+ bstatus->def = (unsigned char)battle_config.max_def;
}
#endif
@@ -2953,15 +2936,14 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
if(sd->mdef_rate < 0)
sd->mdef_rate = 0;
if(sd->mdef_rate != 100) {
- i = status->mdef * sd->mdef_rate/100;
- status->mdef = cap_value(i, DEFTYPE_MIN, DEFTYPE_MAX);
+ i = bstatus->mdef * sd->mdef_rate/100;
+ bstatus->mdef = cap_value(i, DEFTYPE_MIN, DEFTYPE_MAX);
}
#ifndef RENEWAL
- if (!battle_config.magic_defense_type && status->mdef > battle_config.max_def)
- {
- status->mdef2 += battle_config.over_def_bonus*(status->mdef -battle_config.max_def);
- status->mdef = (signed char)battle_config.max_def;
+ if (!battle_config.magic_defense_type && bstatus->mdef > battle_config.max_def) {
+ bstatus->mdef2 += battle_config.over_def_bonus*(bstatus->mdef -battle_config.max_def);
+ bstatus->mdef = (signed char)battle_config.max_def;
}
#endif
@@ -2969,44 +2951,44 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
// Unlike other stats, ASPD rate modifiers from skills/SCs/items/etc are first all added together, then the final modifier is applied
// Basic ASPD value
- i = status_base_amotion_pc(sd,status);
- status->amotion = cap_value(i,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000);
+ i = status_base_amotion_pc(sd,bstatus);
+ bstatus->amotion = cap_value(i,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000);
// Relative modifiers from passive skills
#ifndef RENEWAL_ASPD
if((skill_lv=pc->checkskill(sd,SA_ADVANCEDBOOK))>0 && sd->status.weapon == W_BOOK)
- status->aspd_rate -= 5*skill_lv;
+ bstatus->aspd_rate -= 5*skill_lv;
if((skill_lv = pc->checkskill(sd,SG_DEVIL)) > 0 && !pc->nextjobexp(sd))
- status->aspd_rate -= 30*skill_lv;
+ bstatus->aspd_rate -= 30*skill_lv;
if((skill_lv=pc->checkskill(sd,GS_SINGLEACTION))>0 &&
(sd->status.weapon >= W_REVOLVER && sd->status.weapon <= W_GRENADE))
- status->aspd_rate -= ((skill_lv+1)/2) * 10;
+ bstatus->aspd_rate -= ((skill_lv+1)/2) * 10;
if(pc_isriding(sd))
- status->aspd_rate += 500-100*pc->checkskill(sd,KN_CAVALIERMASTERY);
+ bstatus->aspd_rate += 500-100*pc->checkskill(sd,KN_CAVALIERMASTERY);
else if(pc_isridingdragon(sd))
- status->aspd_rate += 250-50*pc->checkskill(sd,RK_DRAGONTRAINING);
+ bstatus->aspd_rate += 250-50*pc->checkskill(sd,RK_DRAGONTRAINING);
#else // needs more info
if((skill_lv=pc->checkskill(sd,SA_ADVANCEDBOOK))>0 && sd->status.weapon == W_BOOK)
- status->aspd_rate += 5*skill_lv;
+ bstatus->aspd_rate += 5*skill_lv;
if((skill_lv = pc->checkskill(sd,SG_DEVIL)) > 0 && !pc->nextjobexp(sd))
- status->aspd_rate += 30*skill_lv;
+ bstatus->aspd_rate += 30*skill_lv;
if((skill_lv=pc->checkskill(sd,GS_SINGLEACTION))>0 &&
(sd->status.weapon >= W_REVOLVER && sd->status.weapon <= W_GRENADE))
- status->aspd_rate += ((skill_lv+1)/2) * 10;
+ bstatus->aspd_rate += ((skill_lv+1)/2) * 10;
if(pc_isriding(sd))
- status->aspd_rate -= 500-100*pc->checkskill(sd,KN_CAVALIERMASTERY);
+ bstatus->aspd_rate -= 500-100*pc->checkskill(sd,KN_CAVALIERMASTERY);
else if(pc_isridingdragon(sd))
- status->aspd_rate -= 250-50*pc->checkskill(sd,RK_DRAGONTRAINING);
+ bstatus->aspd_rate -= 250-50*pc->checkskill(sd,RK_DRAGONTRAINING);
#endif
- status->adelay = 2*status->amotion;
+ bstatus->adelay = 2*bstatus->amotion;
// ----- DMOTION -----
//
- i = 800-status->agi*4;
- status->dmotion = cap_value(i, 400, 800);
+ i = 800-bstatus->agi*4;
+ bstatus->dmotion = cap_value(i, 400, 800);
if(battle_config.pc_damage_delay_rate != 100)
- status->dmotion = status->dmotion*battle_config.pc_damage_delay_rate/100;
+ bstatus->dmotion = bstatus->dmotion*battle_config.pc_damage_delay_rate/100;
// ----- MISC CALCULATIONS -----
@@ -3136,7 +3118,7 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
if( sc->data[SC_EARTH_INSIGNIA] && sc->data[SC_EARTH_INSIGNIA]->val1 == 3 )
sd->magic_addele[ELE_EARTH] += 25;
}
- status_cpy(&sd->battle_status, status);
+ status_cpy(&sd->battle_status, bstatus);
// ----- CLIENT-SIDE REFRESH -----
if(!sd->bl.prev) {
@@ -3161,106 +3143,104 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
return 0;
}
-int status_calc_mercenary_(struct mercenary_data *md, bool first)
-{
- struct status_data *status = &md->base_status;
+int status_calc_mercenary_(struct mercenary_data *md, bool first) {
+ struct status_data *mstatus = &md->base_status;
struct s_mercenary *merc = &md->mercenary;
- if( first )
- {
- memcpy(status, &md->db->status, sizeof(struct status_data));
- status->mode = MD_CANMOVE|MD_CANATTACK;
- status->hp = status->max_hp;
- status->sp = status->max_sp;
+ if( first ) {
+ memcpy(mstatus, &md->db->status, sizeof(struct status_data));
+ mstatus->mode = MD_CANMOVE|MD_CANATTACK;
+ mstatus->hp = mstatus->max_hp;
+ mstatus->sp = mstatus->max_sp;
md->battle_status.hp = merc->hp;
md->battle_status.sp = merc->sp;
}
- iStatus->calc_misc(&md->bl, status, md->db->lv);
- status_cpy(&md->battle_status, status);
+ iStatus->calc_misc(&md->bl, mstatus, md->db->lv);
+ status_cpy(&md->battle_status, mstatus);
return 0;
}
int status_calc_homunculus_(struct homun_data *hd, bool first) {
- struct status_data *status = &hd->base_status;
+ struct status_data *hstatus = &hd->base_status;
struct s_homunculus *hom = &hd->homunculus;
int skill_lv;
int amotion;
- status->str = hom->str / 10;
- status->agi = hom->agi / 10;
- status->vit = hom->vit / 10;
- status->dex = hom->dex / 10;
- status->int_ = hom->int_ / 10;
- status->luk = hom->luk / 10;
+ hstatus->str = hom->str / 10;
+ hstatus->agi = hom->agi / 10;
+ hstatus->vit = hom->vit / 10;
+ hstatus->dex = hom->dex / 10;
+ hstatus->int_ = hom->int_ / 10;
+ hstatus->luk = hom->luk / 10;
if (first) { //[orn]
const struct s_homunculus_db *db = hd->homunculusDB;
- status->def_ele = db->element;
- status->ele_lv = 1;
- status->race = db->race;
- status->size = (hom->class_ == db->evo_class)?db->evo_size:db->base_size;
- status->rhw.range = 1 + status->size;
- status->mode = MD_CANMOVE|MD_CANATTACK;
- status->speed = DEFAULT_WALK_SPEED;
+ hstatus->def_ele = db->element;
+ hstatus->ele_lv = 1;
+ hstatus->race = db->race;
+ hstatus->size = (hom->class_ == db->evo_class)?db->evo_size:db->base_size;
+ hstatus->rhw.range = 1 + hstatus->size;
+ hstatus->mode = MD_CANMOVE|MD_CANATTACK;
+ hstatus->speed = DEFAULT_WALK_SPEED;
if (battle_config.hom_setting&0x8 && hd->master)
- status->speed = iStatus->get_speed(&hd->master->bl);
+ hstatus->speed = iStatus->get_speed(&hd->master->bl);
- status->hp = 1;
- status->sp = 1;
+ hstatus->hp = 1;
+ hstatus->sp = 1;
}
- skill_lv = hom->level/10 + status->vit/5;
- status->def = cap_value(skill_lv, 0, 99);
+ skill_lv = hom->level/10 + hstatus->vit/5;
+ hstatus->def = cap_value(skill_lv, 0, 99);
- skill_lv = hom->level/10 + status->int_/5;
- status->mdef = cap_value(skill_lv, 0, 99);
+ skill_lv = hom->level/10 + hstatus->int_/5;
+ hstatus->mdef = cap_value(skill_lv, 0, 99);
- status->max_hp = hom->max_hp ;
- status->max_sp = hom->max_sp ;
+ hstatus->max_hp = hom->max_hp;
+ hstatus->max_sp = hom->max_sp;
homun->calc_skilltree(hd, 0);
if((skill_lv=homun->checkskill(hd,HAMI_SKIN)) > 0)
- status->def += skill_lv * 4;
+ hstatus->def += skill_lv * 4;
if((skill_lv = homun->checkskill(hd,HVAN_INSTRUCT)) > 0) {
- status->int_ += 1 +skill_lv/2 +skill_lv/4 +skill_lv/5;
- status->str += 1 +skill_lv/3 +skill_lv/3 +skill_lv/4;
+ hstatus->int_ += 1 +skill_lv/2 +skill_lv/4 +skill_lv/5;
+ hstatus->str += 1 +skill_lv/3 +skill_lv/3 +skill_lv/4;
}
if((skill_lv=homun->checkskill(hd,HAMI_SKIN)) > 0)
- status->max_hp += skill_lv * 2 * status->max_hp / 100;
+ hstatus->max_hp += skill_lv * 2 * hstatus->max_hp / 100;
if((skill_lv = homun->checkskill(hd,HLIF_BRAIN)) > 0)
- status->max_sp += (1 +skill_lv/2 -skill_lv/4 +skill_lv/5) * status->max_sp / 100 ;
+ hstatus->max_sp += (1 +skill_lv/2 -skill_lv/4 +skill_lv/5) * hstatus->max_sp / 100;
if (first) {
- hd->battle_status.hp = hom->hp ;
- hd->battle_status.sp = hom->sp ;
+ hd->battle_status.hp = hom->hp;
+ hd->battle_status.sp = hom->sp;
}
- status->rhw.atk = status->dex;
- status->rhw.atk2 = status->str + hom->level;
+ hstatus->rhw.atk = hstatus->dex;
+ hstatus->rhw.atk2 = hstatus->str + hom->level;
- status->aspd_rate = 1000;
+ hstatus->aspd_rate = 1000;
- amotion = (1000 -4*status->agi -status->dex) * hd->homunculusDB->baseASPD/1000;
- status->amotion = cap_value(amotion,battle_config.max_aspd,2000);
- status->adelay = status->amotion; //It seems adelay = amotion for Homunculus.
+ amotion = (1000 -4*hstatus->agi -hstatus->dex) * hd->homunculusDB->baseASPD/1000;
+ hstatus->amotion = cap_value(amotion,battle_config.max_aspd,2000);
+ hstatus->adelay = hstatus->amotion; //It seems adelay = amotion for Homunculus.
- iStatus->calc_misc(&hd->bl, status, hom->level);
+ iStatus->calc_misc(&hd->bl, hstatus, hom->level);
#ifdef RENEWAL
- status->matk_max = status->matk_min;
+ hstatus->matk_max = hstatus->matk_min;
#endif
- status_cpy(&hd->battle_status, status);
+ status_cpy(&hd->battle_status, hstatus);
return 1;
}
int status_calc_elemental_(struct elemental_data *ed, bool first) {
- struct status_data *status = &ed->base_status;
+ struct status_data *estatus = &ed->base_status;
struct s_elemental *ele = &ed->elemental;
struct map_session_data *sd = ed->master;
@@ -3268,66 +3248,66 @@ int status_calc_elemental_(struct elemental_data *ed, bool first) {
return 0;
if( first ) {
- memcpy(status, &ed->db->status, sizeof(struct status_data));
+ memcpy(estatus, &ed->db->status, sizeof(struct status_data));
if( !ele->mode )
- status->mode = EL_MODE_PASSIVE;
+ estatus->mode = EL_MODE_PASSIVE;
else
- status->mode = ele->mode;
+ estatus->mode = ele->mode;
- iStatus->calc_misc(&ed->bl, status, 0);
+ iStatus->calc_misc(&ed->bl, estatus, 0);
- status->max_hp = ele->max_hp;
- status->max_sp = ele->max_sp;
- status->hp = ele->hp;
- status->sp = ele->sp;
- status->rhw.atk = ele->atk;
- status->rhw.atk2 = ele->atk2;
+ estatus->max_hp = ele->max_hp;
+ estatus->max_sp = ele->max_sp;
+ estatus->hp = ele->hp;
+ estatus->sp = ele->sp;
+ estatus->rhw.atk = ele->atk;
+ estatus->rhw.atk2 = ele->atk2;
- status->matk_min += ele->matk;
- status->def += ele->def;
- status->mdef += ele->mdef;
- status->flee = ele->flee;
- status->hit = ele->hit;
+ estatus->matk_min += ele->matk;
+ estatus->def += ele->def;
+ estatus->mdef += ele->mdef;
+ estatus->flee = ele->flee;
+ estatus->hit = ele->hit;
- memcpy(&ed->battle_status,status,sizeof(struct status_data));
+ memcpy(&ed->battle_status,estatus,sizeof(struct status_data));
} else {
- iStatus->calc_misc(&ed->bl, status, 0);
- status_cpy(&ed->battle_status, status);
+ iStatus->calc_misc(&ed->bl, estatus, 0);
+ status_cpy(&ed->battle_status, estatus);
}
return 0;
}
int status_calc_npc_(struct npc_data *nd, bool first) {
- struct status_data *status = &nd->status;
+ struct status_data *nstatus = &nd->status;
if (!nd)
return 0;
if (first) {
- status->hp = 1;
- status->sp = 1;
- status->max_hp = 1;
- status->max_sp = 1;
-
- status->def_ele = ELE_NEUTRAL;
- status->ele_lv = 1;
- status->race = RC_DEMIHUMAN;
- status->size = nd->size;
- status->rhw.range = 1 + status->size;
- status->mode = (MD_CANMOVE|MD_CANATTACK);
- status->speed = nd->speed;
- }
-
- status->str = nd->stat_point;
- status->agi = nd->stat_point;
- status->vit = nd->stat_point;
- status->int_= nd->stat_point;
- status->dex = nd->stat_point;
- status->luk = nd->stat_point;
-
- iStatus->calc_misc(&nd->bl, status, nd->level);
- status_cpy(&nd->status, status);
+ nstatus->hp = 1;
+ nstatus->sp = 1;
+ nstatus->max_hp = 1;
+ nstatus->max_sp = 1;
+
+ nstatus->def_ele = ELE_NEUTRAL;
+ nstatus->ele_lv = 1;
+ nstatus->race = RC_DEMIHUMAN;
+ nstatus->size = nd->size;
+ nstatus->rhw.range = 1 + nstatus->size;
+ nstatus->mode = (MD_CANMOVE|MD_CANATTACK);
+ nstatus->speed = nd->speed;
+ }
+
+ nstatus->str = nd->stat_point;
+ nstatus->agi = nd->stat_point;
+ nstatus->vit = nd->stat_point;
+ nstatus->int_= nd->stat_point;
+ nstatus->dex = nd->stat_point;
+ nstatus->luk = nd->stat_point;
+
+ iStatus->calc_misc(&nd->bl, nstatus, nd->level);
+ status_cpy(&nd->status, nstatus);
return 0;
}
@@ -3363,7 +3343,7 @@ static unsigned short status_calc_batk(struct block_list *,struct status_change
#endif
//Calculates base regen values.
-void status_calc_regen(struct block_list *bl, struct status_data *status, struct regen_data *regen) {
+void status_calc_regen(struct block_list *bl, struct status_data *st, struct regen_data *regen) {
struct map_session_data *sd;
int val, skill_lv, reg_flag;
@@ -3371,7 +3351,7 @@ void status_calc_regen(struct block_list *bl, struct status_data *status, struct
return;
sd = BL_CAST(BL_PC,bl);
- val = 1 + (status->vit/5) + (status->max_hp/200);
+ val = 1 + (st->vit/5) + (st->max_hp/200);
if( sd && sd->hprecov_rate != 100 )
val = val*sd->hprecov_rate/100;
@@ -3380,9 +3360,9 @@ void status_calc_regen(struct block_list *bl, struct status_data *status, struct
regen->hp = cap_value(val, reg_flag, SHRT_MAX);
- val = 1 + (status->int_/6) + (status->max_sp/100);
- if( status->int_ >= 120 )
- val += ((status->int_-120)>>1) + 4;
+ val = 1 + (st->int_/6) + (st->max_sp/100);
+ if( st->int_ >= 120 )
+ val += ((st->int_-120)>>1) + 4;
if( sd && sd->sprecov_rate != 100 )
val = val*sd->sprecov_rate/100;
@@ -3400,14 +3380,14 @@ void status_calc_regen(struct block_list *bl, struct status_data *status, struct
val = 0;
if( (skill_lv=pc->checkskill(sd,SM_RECOVERY)) > 0 )
- val += skill_lv*5 + skill_lv*status->max_hp/500;
+ val += skill_lv*5 + skill_lv*st->max_hp/500;
sregen->hp = cap_value(val, 0, SHRT_MAX);
val = 0;
if( (skill_lv=pc->checkskill(sd,MG_SRECOVERY)) > 0 )
- val += skill_lv*3 + skill_lv*status->max_sp/500;
+ val += skill_lv*3 + skill_lv*st->max_sp/500;
if( (skill_lv=pc->checkskill(sd,NJ_NINPOU)) > 0 )
- val += skill_lv*3 + skill_lv*status->max_sp/500;
+ val += skill_lv*3 + skill_lv*st->max_sp/500;
if( (skill_lv=pc->checkskill(sd,WM_LESSON)) > 0 )
val += 3 + 3 * skill_lv;
@@ -3418,20 +3398,20 @@ void status_calc_regen(struct block_list *bl, struct status_data *status, struct
val = 0;
if( (skill_lv=pc->checkskill(sd,MO_SPIRITSRECOVERY)) > 0 )
- val += skill_lv*4 + skill_lv*status->max_hp/500;
+ val += skill_lv*4 + skill_lv*st->max_hp/500;
if( (skill_lv=pc->checkskill(sd,TK_HPTIME)) > 0 && sd->state.rest )
- val += skill_lv*30 + skill_lv*status->max_hp/500;
+ val += skill_lv*30 + skill_lv*st->max_hp/500;
sregen->hp = cap_value(val, 0, SHRT_MAX);
val = 0;
if( (skill_lv=pc->checkskill(sd,TK_SPTIME)) > 0 && sd->state.rest ) {
- val += skill_lv*3 + skill_lv*status->max_sp/500;
+ val += skill_lv*3 + skill_lv*st->max_sp/500;
if ((skill_lv=pc->checkskill(sd,SL_KAINA)) > 0) //Power up Enjoyable Rest
val += (30+10*skill_lv)*val/100;
}
if( (skill_lv=pc->checkskill(sd,MO_SPIRITSRECOVERY)) > 0 )
- val += skill_lv*2 + skill_lv*status->max_sp/500;
+ val += skill_lv*2 + skill_lv*st->max_sp/500;
sregen->sp = cap_value(val, 0, SHRT_MAX);
}
@@ -3446,16 +3426,16 @@ void status_calc_regen(struct block_list *bl, struct status_data *status, struct
regen->sp = cap_value(val, 1, SHRT_MAX);
}
} else if( bl->type == BL_MER ) {
- val = (status->max_hp * status->vit / 10000 + 1) * 6;
+ val = (st->max_hp * st->vit / 10000 + 1) * 6;
regen->hp = cap_value(val, 1, SHRT_MAX);
- val = (status->max_sp * (status->int_ + 10) / 750) + 1;
+ val = (st->max_sp * (st->int_ + 10) / 750) + 1;
regen->sp = cap_value(val, 1, SHRT_MAX);
} else if( bl->type == BL_ELEM ) {
- val = (status->max_hp * status->vit / 10000 + 1) * 6;
+ val = (st->max_hp * st->vit / 10000 + 1) * 6;
regen->hp = cap_value(val, 1, SHRT_MAX);
- val = (status->max_sp * (status->int_ + 10) / 750) + 1;
+ val = (st->max_sp * (st->int_ + 10) / 750) + 1;
regen->sp = cap_value(val, 1, SHRT_MAX);
}
}
@@ -3546,31 +3526,30 @@ void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, str
}
/// Recalculates parts of an object's battle status according to the specified flags.
/// @param flag bitfield of values from enum scb_flag
-void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
-{
- const struct status_data *b_status = iStatus->get_base_status(bl);
- struct status_data *status = iStatus->get_status_data(bl);
+void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) {
+ const struct status_data *bst = iStatus->get_base_status(bl);
+ struct status_data *st = iStatus->get_status_data(bl);
struct status_change *sc = iStatus->get_sc(bl);
TBL_PC *sd = BL_CAST(BL_PC,bl);
int temp;
- if (!b_status || !status)
+ if (!bst || !st)
return;
if((!(bl->type&BL_REGEN)) && (!sc || !sc->count)) { //No difference.
- status_cpy(status, b_status);
+ status_cpy(st, bst);
return;
}
if(flag&SCB_STR) {
- status->str = status_calc_str(bl, sc, b_status->str);
+ st->str = status_calc_str(bl, sc, bst->str);
flag|=SCB_BATK;
if( bl->type&BL_HOM )
flag |= SCB_WATK;
}
if(flag&SCB_AGI) {
- status->agi = status_calc_agi(bl, sc, b_status->agi);
+ st->agi = status_calc_agi(bl, sc, bst->agi);
flag|=SCB_FLEE
#ifdef RENEWAL
|SCB_DEF2
@@ -3581,7 +3560,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
}
if(flag&SCB_VIT) {
- status->vit = status_calc_vit(bl, sc, b_status->vit);
+ st->vit = status_calc_vit(bl, sc, bst->vit);
flag|=SCB_DEF2|SCB_MDEF2;
if( bl->type&(BL_PC|BL_HOM|BL_MER|BL_ELEM) )
flag |= SCB_MAXHP;
@@ -3590,7 +3569,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
}
if(flag&SCB_INT) {
- status->int_ = status_calc_int(bl, sc, b_status->int_);
+ st->int_ = status_calc_int(bl, sc, bst->int_);
flag|=SCB_MATK|SCB_MDEF2;
if( bl->type&(BL_PC|BL_HOM|BL_MER|BL_ELEM) )
flag |= SCB_MAXSP;
@@ -3599,7 +3578,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
}
if(flag&SCB_DEX) {
- status->dex = status_calc_dex(bl, sc, b_status->dex);
+ st->dex = status_calc_dex(bl, sc, bst->dex);
flag|=SCB_BATK|SCB_HIT
#ifdef RENEWAL
|SCB_MATK|SCB_MDEF2
@@ -3612,7 +3591,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
}
if(flag&SCB_LUK) {
- status->luk = status_calc_luk(bl, sc, b_status->luk);
+ st->luk = status_calc_luk(bl, sc, bst->luk);
flag|=SCB_BATK|SCB_CRI|SCB_FLEE2
#ifdef RENEWAL
|SCB_MATK|SCB_HIT|SCB_FLEE
@@ -3620,125 +3599,121 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
;
}
- if(flag&SCB_BATK && b_status->batk) {
- status->batk = status_base_atk(bl,status);
- temp = b_status->batk - status_base_atk(bl,b_status);
- if (temp)
- {
- temp += status->batk;
- status->batk = cap_value(temp, 0, USHRT_MAX);
+ if(flag&SCB_BATK && bst->batk) {
+ st->batk = status_base_atk(bl,st);
+ temp = bst->batk - status_base_atk(bl,bst);
+ if (temp) {
+ temp += st->batk;
+ st->batk = cap_value(temp, 0, USHRT_MAX);
}
- status->batk = iStatus->calc_batk(bl, sc, status->batk, true);
+ st->batk = iStatus->calc_batk(bl, sc, st->batk, true);
}
if(flag&SCB_WATK) {
- status->rhw.atk = status_calc_watk(bl, sc, b_status->rhw.atk, true);
+ st->rhw.atk = status_calc_watk(bl, sc, bst->rhw.atk, true);
if (!sd) //Should not affect weapon refine bonus
- status->rhw.atk2 = status_calc_watk(bl, sc, b_status->rhw.atk2, true);
+ st->rhw.atk2 = status_calc_watk(bl, sc, bst->rhw.atk2, true);
- if(b_status->lhw.atk) {
+ if(bst->lhw.atk) {
if (sd) {
sd->state.lr_flag = 1;
- status->lhw.atk = status_calc_watk(bl, sc, b_status->lhw.atk, true);
+ st->lhw.atk = status_calc_watk(bl, sc, bst->lhw.atk, true);
sd->state.lr_flag = 0;
} else {
- status->lhw.atk = status_calc_watk(bl, sc, b_status->lhw.atk, true);
- status->lhw.atk2 = status_calc_watk(bl, sc, b_status->lhw.atk2, true);
+ st->lhw.atk = status_calc_watk(bl, sc, bst->lhw.atk, true);
+ st->lhw.atk2 = status_calc_watk(bl, sc, bst->lhw.atk2, true);
}
}
- if( bl->type&BL_HOM )
- {
- status->rhw.atk += (status->dex - b_status->dex);
- status->rhw.atk2 += (status->str - b_status->str);
- if( status->rhw.atk2 < status->rhw.atk )
- status->rhw.atk2 = status->rhw.atk;
+ if( bl->type&BL_HOM ) {
+ st->rhw.atk += (st->dex - bst->dex);
+ st->rhw.atk2 += (st->str - bst->str);
+ if( st->rhw.atk2 < st->rhw.atk )
+ st->rhw.atk2 = st->rhw.atk;
}
}
if(flag&SCB_HIT) {
- if (status->dex == b_status->dex
+ if (st->dex == bst->dex
#ifdef RENEWAL
- && status->luk == b_status->luk
+ && st->luk == bst->luk
#endif
)
- status->hit = status_calc_hit(bl, sc, b_status->hit, true);
+ st->hit = status_calc_hit(bl, sc, bst->hit, true);
else
- status->hit = status_calc_hit(bl, sc, b_status->hit + (status->dex - b_status->dex)
+ st->hit = status_calc_hit(bl, sc, bst->hit + (st->dex - bst->dex)
#ifdef RENEWAL
- + (status->luk/3 - b_status->luk/3)
+ + (st->luk/3 - bst->luk/3)
#endif
, true);
}
if(flag&SCB_FLEE) {
- if (status->agi == b_status->agi
+ if (st->agi == bst->agi
#ifdef RENEWAL
- && status->luk == b_status->luk
+ && st->luk == bst->luk
#endif
)
- status->flee = status_calc_flee(bl, sc, b_status->flee, true);
+ st->flee = status_calc_flee(bl, sc, bst->flee, true);
else
- status->flee = status_calc_flee(bl, sc, b_status->flee +(status->agi - b_status->agi)
+ st->flee = status_calc_flee(bl, sc, bst->flee +(st->agi - bst->agi)
#ifdef RENEWAL
- + (status->luk/5 - b_status->luk/5)
+ + (st->luk/5 - bst->luk/5)
#endif
, true);
}
- if(flag&SCB_DEF)
- {
- status->def = iStatus->calc_def(bl, sc, b_status->def, true);
+ if(flag&SCB_DEF) {
+ st->def = iStatus->calc_def(bl, sc, bst->def, true);
if( bl->type&BL_HOM )
- status->def += (status->vit/5 - b_status->vit/5);
+ st->def += (st->vit/5 - bst->vit/5);
}
if(flag&SCB_DEF2) {
- if (status->vit == b_status->vit
+ if (st->vit == bst->vit
#ifdef RENEWAL
- && status->agi == b_status->agi
+ && st->agi == bst->agi
#endif
)
- status->def2 = iStatus->calc_def2(bl, sc, b_status->def2, true);
+ st->def2 = iStatus->calc_def2(bl, sc, bst->def2, true);
else
- status->def2 = iStatus->calc_def2(bl, sc, b_status->def2
+ st->def2 = iStatus->calc_def2(bl, sc, bst->def2
#ifdef RENEWAL
- + (int)( ((float)status->vit/2 - (float)b_status->vit/2) + ((float)status->agi/5 - (float)b_status->agi/5) )
+ + (int)( ((float)st->vit/2 - (float)bst->vit/2) + ((float)st->agi/5 - (float)bst->agi/5) )
#else
- + (status->vit - b_status->vit)
+ + (st->vit - bst->vit)
#endif
, true);
}
- if(flag&SCB_MDEF)
- {
- status->mdef = iStatus->calc_mdef(bl, sc, b_status->mdef, true);
+ if(flag&SCB_MDEF) {
+ st->mdef = iStatus->calc_mdef(bl, sc, bst->mdef, true);
if( bl->type&BL_HOM )
- status->mdef += (status->int_/5 - b_status->int_/5);
+ st->mdef += (st->int_/5 - bst->int_/5);
}
if(flag&SCB_MDEF2) {
- if (status->int_ == b_status->int_ && status->vit == b_status->vit
+ if (st->int_ == bst->int_ && st->vit == bst->vit
#ifdef RENEWAL
- && status->dex == b_status->dex
+ && st->dex == bst->dex
#endif
)
- status->mdef2 = iStatus->calc_mdef2(bl, sc, b_status->mdef2, true);
+ st->mdef2 = iStatus->calc_mdef2(bl, sc, bst->mdef2, true);
else
- status->mdef2 = iStatus->calc_mdef2(bl, sc, b_status->mdef2 +(status->int_ - b_status->int_)
+ st->mdef2 = iStatus->calc_mdef2(bl, sc, bst->mdef2 +(st->int_ - bst->int_)
#ifdef RENEWAL
- + (int)( ((float)status->dex/5 - (float)b_status->dex/5) + ((float)status->vit/5 - (float)b_status->vit/5) )
+ + (int)( ((float)st->dex/5 - (float)bst->dex/5) + ((float)st->vit/5 - (float)bst->vit/5) )
#else
- + ((status->vit - b_status->vit)>>1)
+ + ((st->vit - bst->vit)>>1)
#endif
, true);
}
if(flag&SCB_SPEED) {
struct unit_data *ud = unit->bl2ud(bl);
- status->speed = status_calc_speed(bl, sc, b_status->speed);
+ st->speed = status_calc_speed(bl, sc, bst->speed);
//Re-walk to adjust speed (we do not check if walktimer != INVALID_TIMER
//because if you step on something while walking, the moment this
@@ -3746,54 +3721,53 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
if (ud)
ud->state.change_walk_target = ud->state.speed_changed = 1;
- if( bl->type&BL_PC && status->speed < battle_config.max_walk_speed )
- status->speed = battle_config.max_walk_speed;
+ if( bl->type&BL_PC && st->speed < battle_config.max_walk_speed )
+ st->speed = battle_config.max_walk_speed;
if( bl->type&BL_HOM && battle_config.hom_setting&0x8 && ((TBL_HOM*)bl)->master)
- status->speed = iStatus->get_speed(&((TBL_HOM*)bl)->master->bl);
+ st->speed = iStatus->get_speed(&((TBL_HOM*)bl)->master->bl);
}
- if(flag&SCB_CRI && b_status->cri) {
- if (status->luk == b_status->luk)
- status->cri = status_calc_critical(bl, sc, b_status->cri, true);
+ if(flag&SCB_CRI && bst->cri) {
+ if (st->luk == bst->luk)
+ st->cri = status_calc_critical(bl, sc, bst->cri, true);
else
- status->cri = status_calc_critical(bl, sc, b_status->cri + 3*(status->luk - b_status->luk), true);
+ st->cri = status_calc_critical(bl, sc, bst->cri + 3*(st->luk - bst->luk), true);
/**
* after status_calc_critical so the bonus is applied despite if you have or not a sc bugreport:5240
**/
if( bl->type == BL_PC && ((TBL_PC*)bl)->status.weapon == W_KATAR )
- status->cri <<= 1;
+ st->cri <<= 1;
}
- if(flag&SCB_FLEE2 && b_status->flee2) {
- if (status->luk == b_status->luk)
- status->flee2 = status_calc_flee2(bl, sc, b_status->flee2, true);
+ if(flag&SCB_FLEE2 && bst->flee2) {
+ if (st->luk == bst->luk)
+ st->flee2 = status_calc_flee2(bl, sc, bst->flee2, true);
else
- status->flee2 = status_calc_flee2(bl, sc, b_status->flee2 +(status->luk - b_status->luk), true);
+ st->flee2 = status_calc_flee2(bl, sc, bst->flee2 +(st->luk - bst->luk), true);
}
if(flag&SCB_ATK_ELE) {
- status->rhw.ele = iStatus->calc_attack_element(bl, sc, b_status->rhw.ele);
+ st->rhw.ele = iStatus->calc_attack_element(bl, sc, bst->rhw.ele);
if (sd) sd->state.lr_flag = 1;
- status->lhw.ele = iStatus->calc_attack_element(bl, sc, b_status->lhw.ele);
+ st->lhw.ele = iStatus->calc_attack_element(bl, sc, bst->lhw.ele);
if (sd) sd->state.lr_flag = 0;
}
if(flag&SCB_DEF_ELE) {
- status->def_ele = status_calc_element(bl, sc, b_status->def_ele);
- status->ele_lv = status_calc_element_lv(bl, sc, b_status->ele_lv);
+ st->def_ele = status_calc_element(bl, sc, bst->def_ele);
+ st->ele_lv = status_calc_element_lv(bl, sc, bst->ele_lv);
}
- if(flag&SCB_MODE)
- {
- status->mode = status_calc_mode(bl, sc, b_status->mode);
+ if(flag&SCB_MODE) {
+ st->mode = status_calc_mode(bl, sc, bst->mode);
//Since mode changed, reset their state.
- if (!(status->mode&MD_CANATTACK))
+ if (!(st->mode&MD_CANATTACK))
unit->stop_attack(bl);
- if (!(status->mode&MD_CANMOVE))
+ if (!(st->mode&MD_CANMOVE))
unit->stop_walking(bl,1);
}
@@ -3803,47 +3777,40 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
// if(flag&SCB_RANGE)
if(flag&SCB_MAXHP) {
- if( bl->type&BL_PC )
- {
- status->max_hp = status_base_pc_maxhp(sd,status);
- status->max_hp += b_status->max_hp - sd->status.max_hp;
+ if( bl->type&BL_PC ) {
+ st->max_hp = status_base_pc_maxhp(sd,st);
+ st->max_hp += bst->max_hp - sd->status.max_hp;
- status->max_hp = status_calc_maxhp(bl, sc, status->max_hp);
+ st->max_hp = status_calc_maxhp(bl, sc, st->max_hp);
- if( status->max_hp > (unsigned int)battle_config.max_hp )
- status->max_hp = (unsigned int)battle_config.max_hp;
- }
- else
- {
- status->max_hp = status_calc_maxhp(bl, sc, b_status->max_hp);
+ if( st->max_hp > (unsigned int)battle_config.max_hp )
+ st->max_hp = (unsigned int)battle_config.max_hp;
+ } else {
+ st->max_hp = status_calc_maxhp(bl, sc, bst->max_hp);
}
- if( status->hp > status->max_hp ) //FIXME: Should perhaps a status_zap should be issued?
- {
- status->hp = status->max_hp;
+ if( st->hp > st->max_hp ) {
+ //FIXME: Should perhaps a status_zap should be issued?
+ st->hp = st->max_hp;
if( sd ) clif->updatestatus(sd,SP_HP);
}
}
if(flag&SCB_MAXSP) {
- if( bl->type&BL_PC )
- {
- status->max_sp = status_base_pc_maxsp(sd,status);
- status->max_sp += b_status->max_sp - sd->status.max_sp;
+ if( bl->type&BL_PC ) {
+ st->max_sp = status_base_pc_maxsp(sd,st);
+ st->max_sp += bst->max_sp - sd->status.max_sp;
- status->max_sp = status_calc_maxsp(&sd->bl, &sd->sc, status->max_sp);
+ st->max_sp = status_calc_maxsp(&sd->bl, &sd->sc, st->max_sp);
- if( status->max_sp > (unsigned int)battle_config.max_sp )
- status->max_sp = (unsigned int)battle_config.max_sp;
- }
- else
- {
- status->max_sp = status_calc_maxsp(bl, sc, b_status->max_sp);
+ if( st->max_sp > (unsigned int)battle_config.max_sp )
+ st->max_sp = (unsigned int)battle_config.max_sp;
+ } else {
+ st->max_sp = status_calc_maxsp(bl, sc, bst->max_sp);
}
- if( status->sp > status->max_sp )
- {
- status->sp = status->max_sp;
+ if( st->sp > st->max_sp ) {
+ st->sp = st->max_sp;
if( sd ) clif->updatestatus(sd,SP_SP);
}
}
@@ -3854,84 +3821,78 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
if(flag&SCB_ASPD) {
int amotion;
- if( bl->type&BL_PC )
- {
- amotion = status_base_amotion_pc(sd,status);
+ if( bl->type&BL_PC ) {
+ amotion = status_base_amotion_pc(sd,st);
#ifndef RENEWAL_ASPD
- status->aspd_rate = status_calc_aspd_rate(bl, sc, b_status->aspd_rate);
+ st->aspd_rate = status_calc_aspd_rate(bl, sc, bst->aspd_rate);
- if(status->aspd_rate != 1000)
- amotion = amotion*status->aspd_rate/1000;
+ if(st->aspd_rate != 1000)
+ amotion = amotion*st->aspd_rate/1000;
#else
// aspd = baseaspd + floor(sqrt((agi^2/2) + (dex^2/5))/4 + (potskillbonus*agi/200))
- amotion -= (int)(sqrt( (pow(status->agi, 2) / 2) + (pow(status->dex, 2) / 5) ) / 4 + ((float)status_calc_aspd(bl, sc, 1) * status->agi / 200)) * 10;
+ amotion -= (int)(sqrt( (pow(st->agi, 2) / 2) + (pow(st->dex, 2) / 5) ) / 4 + ((float)status_calc_aspd(bl, sc, 1) * st->agi / 200)) * 10;
- if( (status_calc_aspd(bl, sc, 2) + status->aspd_rate2) != 0 ) // RE ASPD percertage modifier
+ if( (status_calc_aspd(bl, sc, 2) + st->aspd_rate2) != 0 ) // RE ASPD percertage modifier
amotion -= (( amotion - ((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd) )
- * (status_calc_aspd(bl, sc, 2) + status->aspd_rate2) / 10 + 5) / 10;
+ * (status_calc_aspd(bl, sc, 2) + st->aspd_rate2) / 10 + 5) / 10;
- if(status->aspd_rate != 1000) // absolute percentage modifier
- amotion = ( 200 - (200-amotion/10) * status->aspd_rate / 1000 ) * 10;
+ if(st->aspd_rate != 1000) // absolute percentage modifier
+ amotion = ( 200 - (200-amotion/10) * st->aspd_rate / 1000 ) * 10;
#endif
amotion = status_calc_fix_aspd(bl, sc, amotion);
- status->amotion = cap_value(amotion,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000);
+ st->amotion = cap_value(amotion,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000);
- status->adelay = 2*status->amotion;
- }
- else
- if( bl->type&BL_HOM )
- {
- amotion = (1000 -4*status->agi -status->dex) * ((TBL_HOM*)bl)->homunculusDB->baseASPD/1000;
- status->aspd_rate = status_calc_aspd_rate(bl, sc, b_status->aspd_rate);
+ st->adelay = 2*st->amotion;
+ } else if( bl->type&BL_HOM ) {
+ amotion = (1000 - 4*st->agi - st->dex) * ((TBL_HOM*)bl)->homunculusDB->baseASPD/1000;
+ st->aspd_rate = status_calc_aspd_rate(bl, sc, bst->aspd_rate);
- if(status->aspd_rate != 1000)
- amotion = amotion*status->aspd_rate/1000;
+ if(st->aspd_rate != 1000)
+ amotion = amotion*st->aspd_rate/1000;
- amotion = status_calc_fix_aspd(bl, sc, amotion);
- status->amotion = cap_value(amotion,battle_config.max_aspd,2000);
+ amotion = status_calc_fix_aspd(bl, sc, amotion);
+ st->amotion = cap_value(amotion,battle_config.max_aspd,2000);
- status->adelay = status->amotion;
- }
- else // mercenary and mobs
- {
- amotion = b_status->amotion;
- status->aspd_rate = status_calc_aspd_rate(bl, sc, b_status->aspd_rate);
+ st->adelay = st->amotion;
+ } else { // mercenary and mobs
+ amotion = bst->amotion;
+ st->aspd_rate = status_calc_aspd_rate(bl, sc, bst->aspd_rate);
- if(status->aspd_rate != 1000)
- amotion = amotion*status->aspd_rate/1000;
+ if(st->aspd_rate != 1000)
+ amotion = amotion*st->aspd_rate/1000;
- amotion = status_calc_fix_aspd(bl, sc, amotion);
- status->amotion = cap_value(amotion, battle_config.monster_max_aspd, 2000);
+ amotion = status_calc_fix_aspd(bl, sc, amotion);
+ st->amotion = cap_value(amotion, battle_config.monster_max_aspd, 2000);
- temp = b_status->adelay*status->aspd_rate/1000;
- status->adelay = cap_value(temp, battle_config.monster_max_aspd*2, 4000);
- }
+ temp = bst->adelay*st->aspd_rate/1000;
+ st->adelay = cap_value(temp, battle_config.monster_max_aspd*2, 4000);
+ }
}
if(flag&SCB_DSPD) {
int dmotion;
if( bl->type&BL_PC ) {
- if (b_status->agi == status->agi)
- status->dmotion = status_calc_dmotion(bl, sc, b_status->dmotion);
+ if (bst->agi == st->agi)
+ st->dmotion = status_calc_dmotion(bl, sc, bst->dmotion);
else {
- dmotion = 800-status->agi*4;
- status->dmotion = cap_value(dmotion, 400, 800);
+ dmotion = 800-st->agi*4;
+ st->dmotion = cap_value(dmotion, 400, 800);
if(battle_config.pc_damage_delay_rate != 100)
- status->dmotion = status->dmotion*battle_config.pc_damage_delay_rate/100;
- //It's safe to ignore b_status->dmotion since no bonus affects it.
- status->dmotion = status_calc_dmotion(bl, sc, status->dmotion);
+ st->dmotion = st->dmotion*battle_config.pc_damage_delay_rate/100;
+ //It's safe to ignore bst->dmotion since no bonus affects it.
+ st->dmotion = status_calc_dmotion(bl, sc, st->dmotion);
}
} else if( bl->type&BL_HOM ) {
- dmotion = 800-status->agi*4;
- status->dmotion = cap_value(dmotion, 400, 800);
- status->dmotion = status_calc_dmotion(bl, sc, b_status->dmotion);
+ dmotion = 800-st->agi*4;
+ st->dmotion = cap_value(dmotion, 400, 800);
+ st->dmotion = status_calc_dmotion(bl, sc, bst->dmotion);
} else { // mercenary and mobs
- status->dmotion = status_calc_dmotion(bl, sc, b_status->dmotion);
+ st->dmotion = status_calc_dmotion(bl, sc, bst->dmotion);
}
}
if(flag&(SCB_VIT|SCB_MAXHP|SCB_INT|SCB_MAXSP) && bl->type&BL_REGEN)
- iStatus->calc_regen(bl, status, iStatus->get_regen_data(bl));
+ iStatus->calc_regen(bl, st, iStatus->get_regen_data(bl));
if(flag&SCB_REGEN && bl->type&BL_REGEN)
iStatus->calc_regen_rate(bl, iStatus->get_regen_data(bl), sc);
@@ -3940,10 +3901,9 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
/// Also sends updates to the client wherever applicable.
/// @param flag bitfield of values from enum scb_flag
/// @param first if true, will cause status_calc_* functions to run their base status initialization code
-void status_calc_bl_(struct block_list* bl, enum scb_flag flag, bool first)
-{
- struct status_data b_status; // previous battle status
- struct status_data* status; // pointer to current battle status
+void status_calc_bl_(struct block_list *bl, enum scb_flag flag, bool first) {
+ struct status_data bst; // previous battle status
+ struct status_data *st; // pointer to current battle status
if( bl->type == BL_PC && ((TBL_PC*)bl)->delayed_damage != 0 ) {
((TBL_PC*)bl)->state.hold_recalc = 1;
@@ -3951,8 +3911,8 @@ void status_calc_bl_(struct block_list* bl, enum scb_flag flag, bool first)
}
// remember previous values
- status = iStatus->get_status_data(bl);
- memcpy(&b_status, status, sizeof(struct status_data));
+ st = iStatus->get_status_data(bl);
+ memcpy(&bst, st, sizeof(struct status_data));
if( flag&SCB_BASE ) {// calculate the object's base status too
switch( bl->type ) {
@@ -3978,137 +3938,136 @@ void status_calc_bl_(struct block_list* bl, enum scb_flag flag, bool first)
return; // client update handled by caller
// compare against new values and send client updates
- if( bl->type == BL_PC )
- {
+ if( bl->type == BL_PC ) {
TBL_PC* sd = BL_CAST(BL_PC, bl);
- if(b_status.str != status->str)
+ if(bst.str != st->str)
clif->updatestatus(sd,SP_STR);
- if(b_status.agi != status->agi)
+ if(bst.agi != st->agi)
clif->updatestatus(sd,SP_AGI);
- if(b_status.vit != status->vit)
+ if(bst.vit != st->vit)
clif->updatestatus(sd,SP_VIT);
- if(b_status.int_ != status->int_)
+ if(bst.int_ != st->int_)
clif->updatestatus(sd,SP_INT);
- if(b_status.dex != status->dex)
+ if(bst.dex != st->dex)
clif->updatestatus(sd,SP_DEX);
- if(b_status.luk != status->luk)
+ if(bst.luk != st->luk)
clif->updatestatus(sd,SP_LUK);
- if(b_status.hit != status->hit)
+ if(bst.hit != st->hit)
clif->updatestatus(sd,SP_HIT);
- if(b_status.flee != status->flee)
+ if(bst.flee != st->flee)
clif->updatestatus(sd,SP_FLEE1);
- if(b_status.amotion != status->amotion)
+ if(bst.amotion != st->amotion)
clif->updatestatus(sd,SP_ASPD);
- if(b_status.speed != status->speed)
+ if(bst.speed != st->speed)
clif->updatestatus(sd,SP_SPEED);
- if(b_status.batk != status->batk
+ if(bst.batk != st->batk
#ifndef RENEWAL
- || b_status.rhw.atk != status->rhw.atk || b_status.lhw.atk != status->lhw.atk
+ || bst.rhw.atk != st->rhw.atk || bst.lhw.atk != st->lhw.atk
#endif
- )
+ )
clif->updatestatus(sd,SP_ATK1);
- if(b_status.def != status->def){
+ if(bst.def != st->def) {
clif->updatestatus(sd,SP_DEF1);
#ifdef RENEWAL
clif->updatestatus(sd,SP_DEF2);
#endif
}
- if(b_status.rhw.atk2 != status->rhw.atk2 || b_status.lhw.atk2 != status->lhw.atk2
+ if(bst.rhw.atk2 != st->rhw.atk2 || bst.lhw.atk2 != st->lhw.atk2
#ifdef RENEWAL
- || b_status.rhw.atk != status->rhw.atk || b_status.lhw.atk != status->lhw.atk
+ || bst.rhw.atk != st->rhw.atk || bst.lhw.atk != st->lhw.atk
#endif
)
clif->updatestatus(sd,SP_ATK2);
- if(b_status.def2 != status->def2){
+ if(bst.def2 != st->def2){
clif->updatestatus(sd,SP_DEF2);
#ifdef RENEWAL
clif->updatestatus(sd,SP_DEF1);
#endif
}
- if(b_status.flee2 != status->flee2)
+ if(bst.flee2 != st->flee2)
clif->updatestatus(sd,SP_FLEE2);
- if(b_status.cri != status->cri)
+ if(bst.cri != st->cri)
clif->updatestatus(sd,SP_CRITICAL);
#ifndef RENEWAL
- if(b_status.matk_max != status->matk_max)
+ if(bst.matk_max != st->matk_max)
clif->updatestatus(sd,SP_MATK1);
- if(b_status.matk_min != status->matk_min)
+ if(bst.matk_min != st->matk_min)
clif->updatestatus(sd,SP_MATK2);
#else
- if(b_status.matk_max != status->matk_max || b_status.matk_min != status->matk_min){
+ if(bst.matk_max != st->matk_max || bst.matk_min != st->matk_min){
clif->updatestatus(sd,SP_MATK2);
clif->updatestatus(sd,SP_MATK1);
}
#endif
- if(b_status.mdef != status->mdef){
+ if(bst.mdef != st->mdef) {
clif->updatestatus(sd,SP_MDEF1);
#ifdef RENEWAL
clif->updatestatus(sd,SP_MDEF2);
#endif
}
- if(b_status.mdef2 != status->mdef2){
+ if(bst.mdef2 != st->mdef2) {
clif->updatestatus(sd,SP_MDEF2);
#ifdef RENEWAL
clif->updatestatus(sd,SP_MDEF1);
#endif
}
- if(b_status.rhw.range != status->rhw.range)
+ if(bst.rhw.range != st->rhw.range)
clif->updatestatus(sd,SP_ATTACKRANGE);
- if(b_status.max_hp != status->max_hp)
+ if(bst.max_hp != st->max_hp)
clif->updatestatus(sd,SP_MAXHP);
- if(b_status.max_sp != status->max_sp)
+ if(bst.max_sp != st->max_sp)
clif->updatestatus(sd,SP_MAXSP);
- if(b_status.hp != status->hp)
+ if(bst.hp != st->hp)
clif->updatestatus(sd,SP_HP);
- if(b_status.sp != status->sp)
+ if(bst.sp != st->sp)
clif->updatestatus(sd,SP_SP);
#ifdef RENEWAL
- if(b_status.equip_atk != status->equip_atk)
+ if(bst.equip_atk != st->equip_atk)
clif->updatestatus(sd,SP_ATK2);
#endif
} else if( bl->type == BL_HOM ) {
TBL_HOM* hd = BL_CAST(BL_HOM, bl);
- if( hd->master && memcmp(&b_status, status, sizeof(struct status_data)) != 0 )
+ if( hd->master && memcmp(&bst, st, sizeof(struct status_data)) != 0 )
clif->hominfo(hd->master,hd,0);
} else if( bl->type == BL_MER ) {
TBL_MER* md = BL_CAST(BL_MER, bl);
- if( b_status.rhw.atk != status->rhw.atk || b_status.rhw.atk2 != status->rhw.atk2 )
+ if( bst.rhw.atk != st->rhw.atk || bst.rhw.atk2 != st->rhw.atk2 )
clif->mercenary_updatestatus(md->master, SP_ATK1);
- if( b_status.matk_max != status->matk_max )
+ if( bst.matk_max != st->matk_max )
clif->mercenary_updatestatus(md->master, SP_MATK1);
- if( b_status.hit != status->hit )
+ if( bst.hit != st->hit )
clif->mercenary_updatestatus(md->master, SP_HIT);
- if( b_status.cri != status->cri )
+ if( bst.cri != st->cri )
clif->mercenary_updatestatus(md->master, SP_CRITICAL);
- if( b_status.def != status->def )
+ if( bst.def != st->def )
clif->mercenary_updatestatus(md->master, SP_DEF1);
- if( b_status.mdef != status->mdef )
+ if( bst.mdef != st->mdef )
clif->mercenary_updatestatus(md->master, SP_MDEF1);
- if( b_status.flee != status->flee )
+ if( bst.flee != st->flee )
clif->mercenary_updatestatus(md->master, SP_MERCFLEE);
- if( b_status.amotion != status->amotion )
+ if( bst.amotion != st->amotion )
clif->mercenary_updatestatus(md->master, SP_ASPD);
- if( b_status.max_hp != status->max_hp )
+ if( bst.max_hp != st->max_hp )
clif->mercenary_updatestatus(md->master, SP_MAXHP);
- if( b_status.max_sp != status->max_sp )
+ if( bst.max_sp != st->max_sp )
clif->mercenary_updatestatus(md->master, SP_MAXSP);
- if( b_status.hp != status->hp )
+ if( bst.hp != st->hp )
clif->mercenary_updatestatus(md->master, SP_HP);
- if( b_status.sp != status->sp )
+ if( bst.sp != st->sp )
clif->mercenary_updatestatus(md->master, SP_SP);
} else if( bl->type == BL_ELEM ) {
TBL_ELEM* ed = BL_CAST(BL_ELEM, bl);
- if( b_status.max_hp != status->max_hp )
+ if( bst.max_hp != st->max_hp )
clif->elemental_updatestatus(ed->master, SP_MAXHP);
- if( b_status.max_sp != status->max_sp )
+ if( bst.max_sp != st->max_sp )
clif->elemental_updatestatus(ed->master, SP_MAXSP);
- if( b_status.hp != status->hp )
+ if( bst.hp != st->hp )
clif->elemental_updatestatus(ed->master, SP_HP);
- if( b_status.sp != status->sp )
+ if( bst.sp != st->sp )
clif->mercenary_updatestatus(ed->master, SP_SP);
}
}
@@ -5875,8 +5834,8 @@ struct status_data *status_get_base_status(struct block_list *bl)
}
defType status_get_def(struct block_list *bl) {
struct unit_data *ud;
- struct status_data *status = iStatus->get_status_data(bl);
- int def = status?status->def:0;
+ struct status_data *st = iStatus->get_status_data(bl);
+ int def = st ? st->def : 0;
ud = unit->bl2ud(bl);
if (ud && ud->skilltimer != INVALID_TIMER)
def -= def * skill->get_castdef(ud->skill_id)/100;
@@ -6222,16 +6181,15 @@ void status_change_init(struct block_list *bl)
//Applies SC defense to a given status change.
//Returns the adjusted duration based on flag values.
//the flag values are the same as in iStatus->change_start.
-int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int tick, int flag)
-{
+int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int tick, int flag) {
//Percentual resistance: 10000 = 100% Resist
//Example: 50% -> sc_def=5000 -> 25%; 5000ms -> tick_def=5000 -> 2500ms
int sc_def = 0, tick_def = -1; //-1 = use sc_def
//Linear resistance substracted from rate and tick after percentual resistance was applied
//Example: 25% -> sc_def2=2000 -> 5%; 2500ms -> tick_def2=2000 -> 500ms
int sc_def2 = 0, tick_def2 = -1; //-1 = use sc_def2
- struct status_data* status;
- struct status_change* sc;
+ struct status_data *st;
+ struct status_change *sc;
struct map_session_data *sd;
nullpo_ret(bl);
@@ -6269,10 +6227,10 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti
case SC__UNLUCKY:
case SC__WEAKNESS:
return 0;
- }
+ }
sd = BL_CAST(BL_PC,bl);
- status = iStatus->get_status_data(bl);
+ st = iStatus->get_status_data(bl);
sc = iStatus->get_sc(bl);
if( sc && !sc->count )
sc = NULL;
@@ -6284,16 +6242,16 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti
case SC_DPOISON:
case SC_SILENCE:
case SC_BLOODING:
- sc_def = status->vit*100;
- sc_def2 = status->luk*10;
+ sc_def = st->vit*100;
+ sc_def2 = st->luk*10;
break;
case SC_SLEEP:
- sc_def = status->int_*100;
- sc_def2 = status->luk*10;
+ sc_def = st->int_*100;
+ sc_def2 = st->luk*10;
break;
case SC_DEEP_SLEEP:
- sc_def = status->int_*50;
- tick_def = status->int_*10 + iStatus->get_lv(bl) * 65 / 10; //Seems to be -1 sec every 10 int and -5% chance every 10 int.
+ sc_def = st->int_*50;
+ tick_def = st->int_*10 + iStatus->get_lv(bl) * 65 / 10; //Seems to be -1 sec every 10 int and -5% chance every 10 int.
break;
case SC_DEC_AGI:
case SC_ADORAMUS: //Arch Bishop
@@ -6303,87 +6261,87 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti
tick_def = 0;
tick_def2 = 0;
case SC_FREEZE:
- sc_def = status->mdef*100;
- sc_def2 = status->luk*10;
+ sc_def = st->mdef*100;
+ sc_def2 = st->luk*10;
break;
case SC_CURSE:
//Special property: inmunity when luk is greater than level or zero
- if (status->luk > iStatus->get_lv(bl) || status->luk == 0)
+ if (st->luk > iStatus->get_lv(bl) || st->luk == 0)
return 0;
- sc_def = status->luk*100;
- sc_def2 = status->luk*10;
- tick_def = status->vit*100;
+ sc_def = st->luk*100;
+ sc_def2 = st->luk*10;
+ tick_def = st->vit*100;
break;
case SC_BLIND:
if( sc && sc->data[SC__UNLUCKY] )
return tick;
- sc_def = (status->vit + status->int_)*50;
- sc_def2 = status->luk*10;
+ sc_def = (st->vit + st->int_)*50;
+ sc_def2 = st->luk*10;
break;
case SC_CONFUSION:
- sc_def = (status->str + status->int_)*50;
- sc_def2 = status->luk*10;
+ sc_def = (st->str + st->int_)*50;
+ sc_def2 = st->luk*10;
break;
case SC_ANKLESNARE:
- if(status->mode&MD_BOSS) // Lasts 5 times less on bosses
+ if(st->mode&MD_BOSS) // Lasts 5 times less on bosses
tick /= 5;
- sc_def = status->agi*50;
+ sc_def = st->agi*50;
break;
case SC_MAGICMIRROR:
case SC_STONESKIN:
if (sd) //Duration greatly reduced for players.
tick /= 15;
- sc_def2 = iStatus->get_lv(bl)*20 + status->vit*25 + status->agi*10; // Lineal Reduction of Rate
+ sc_def2 = iStatus->get_lv(bl)*20 + st->vit*25 + st->agi*10; // Lineal Reduction of Rate
tick_def2 = 0; //No duration reduction
break;
case SC_MARSHOFABYSS:
//5 second (Fixed) + 25 second - {( INT + LUK ) / 20 second }
- tick_def2 = (status->int_ + status->luk)*50;
+ tick_def2 = (st->int_ + st->luk)*50;
break;
case SC_STASIS:
//5 second (fixed) + { Stasis Skill level * 5 - (Target's VIT + DEX) / 20 }
- tick_def2 = (status->vit + status->dex)*50;
+ tick_def2 = (st->vit + st->dex)*50;
break;
if( bl->type == BL_PC )
- tick -= (iStatus->get_lv(bl) / 5 + status->vit / 4 + status->agi / 10)*100;
+ tick -= (iStatus->get_lv(bl) / 5 + st->vit / 4 + st->agi / 10)*100;
else
- tick -= (status->vit + status->luk) / 20 * 1000;
+ tick -= (st->vit + st->luk) / 20 * 1000;
break;
case SC_BURNING:
- tick -= 75 * status->luk + 125 * status->agi;
+ tick -= 75 * st->luk + 125 * st->agi;
tick = max(tick,5000); // Minimum Duration 5s.
break;
case SC_FROSTMISTY:
- tick -= 1000 * ((status->vit + status->dex) / 20);
+ tick -= 1000 * ((st->vit + st->dex) / 20);
tick = max(tick,6000); // Minimum Duration 6s.
break;
case SC_OBLIVIONCURSE: // 100% - (100 - 0.8 x INT)
- sc_def = 100 - ( 100 - status->int_* 8 / 10 );
+ sc_def = 100 - ( 100 - st->int_* 8 / 10 );
sc_def = max(sc_def, 5); // minimum of 5%
break;
case SC_WUGBITE: // {(Base Success chance) - (Target's AGI / 4)}
- rate -= status->agi*100/4;
+ rate -= st->agi*100/4;
rate = max(rate,5000); // minimum of 50%
break;
case SC_ELECTRICSHOCKER:
if( bl->type == BL_MOB )
- tick -= 1000 * (status->agi/10);
+ tick -= 1000 * (st->agi/10);
break;
case SC_COLD:
- tick -= (1000*(status->vit/10))+(iStatus->get_lv(bl)/50);
+ tick -= (1000*(st->vit/10))+(iStatus->get_lv(bl)/50);
break;
case SC_SIREN:
tick -= 1000 * ((iStatus->get_lv(bl) / 10) + ((sd?sd->status.job_level:0) / 5));
tick = max(tick,10000);
break;
case SC_MANDRAGORA:
- sc_def = (status->vit+status->luk)/5;
+ sc_def = (st->vit+st->luk)/5;
break;
case SC_KYOUGAKU:
tick -= 1000 * status_get_int(bl) / 20;
break;
case SC_NEEDLE_OF_PARALYZE:
- tick -= 50 * (status->vit + status->luk); //(1000/20);
+ tick -= 50 * (st->vit + st->luk); //(1000/20);
break;
default:
//Effect that cannot be reduced? Likely a buff.
@@ -6563,16 +6521,15 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
struct map_session_data *sd = NULL;
struct status_change* sc;
struct status_change_entry* sce;
- struct status_data *status;
+ struct status_data *st;
struct view_data *vd;
int opt_flag, calc_flag, undead_flag, val_flag = 0, tick_time = 0;
nullpo_ret(bl);
sc = iStatus->get_sc(bl);
- status = iStatus->get_status_data(bl);
+ st = iStatus->get_status_data(bl);
- if( type <= SC_NONE || type >= SC_MAX )
- {
+ if( type <= SC_NONE || type >= SC_MAX ) {
ShowError("status_change_start: invalid status change (%d)!\n", type);
return 0;
}
@@ -6642,13 +6599,12 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
sd = BL_CAST(BL_PC, bl);
//Adjust tick according to status resistances
- if( !(flag&(1|4)) )
- {
+ if( !(flag&(1|4)) ) {
tick = iStatus->get_sc_def(bl, type, rate, tick, flag);
if( !tick ) return 0;
}
- undead_flag = battle->check_undead(status->race,status->def_ele);
+ undead_flag = battle->check_undead(st->race,st->def_ele);
//Check for inmunities / sc fails
switch (type) {
case SC_DRUMBATTLE:
@@ -6697,7 +6653,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
case SC_CRUCIS:
//Only affects demons and undead element (but not players)
- if((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC)
+ if((!undead_flag && st->race!=RC_DEMON) || bl->type == BL_PC)
return 0;
break;
case SC_LEXAETERNA:
@@ -6765,18 +6721,18 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
case SC_MODECHANGE:
{
int mode;
- struct status_data *bstatus = iStatus->get_base_status(bl);
- if (!bstatus) return 0;
- if (sc->data[type])
- { //Pile up with previous values.
+ struct status_data *bst = iStatus->get_base_status(bl);
+ if (!bst) return 0;
+ if (sc->data[type]) {
+ //Pile up with previous values.
if(!val2) val2 = sc->data[type]->val2;
val3 |= sc->data[type]->val3;
val4 |= sc->data[type]->val4;
}
- mode = val2?val2:bstatus->mode; //Base mode
+ mode = val2 ? val2 : bst->mode; //Base mode
if (val4) mode&=~val4; //Del mode
if (val3) mode|= val3; //Add mode
- if (mode == bstatus->mode) { //No change.
+ if (mode == bst->mode) { //No change.
if (sc->data[type]) //Abort previous status
return status_change_end(bl, type, INVALID_TIMER);
return 0;
@@ -6940,7 +6896,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
}
//Check for BOSS resistances
- if(status->mode&MD_BOSS && !(flag&1)) {
+ if(st->mode&MD_BOSS && !(flag&1)) {
if (type>=SC_COMMON_MIN && type <= SC_COMMON_MAX)
return 0;
switch (type) {
@@ -6993,7 +6949,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
case SC_BLESSING:
//TO-DO Blessing and Agi up should do 1 damage against players on Undead Status, even on PvM
//but cannot be plagiarized (this requires aegis investigation on packets and official behavior) [Brainstorm]
- if ((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC) {
+ if ((!undead_flag && st->race!=RC_DEMON) || bl->type == BL_PC) {
status_change_end(bl, SC_CURSE, INVALID_TIMER);
if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE)
status_change_end(bl, SC_STONE, INVALID_TIMER);
@@ -7357,7 +7313,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
tick = -1;
break;
case SC_AUTOBERSERK:
- if (status->hp < status->max_hp>>2 &&
+ if (st->hp < st->max_hp>>2 &&
(!sc->data[SC_PROVOKE] || sc->data[SC_PROVOKE]->val2==0))
sc_start4(bl,SC_PROVOKE,100,10,1,0,0,60000);
tick = -1;
@@ -7388,7 +7344,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
val2 = val1*20; //SP gained
break;
case SC_KYRIE:
- val2 = (int64)status->max_hp * (val1 * 2 + 10) / 100; //%Max HP to absorb
+ val2 = (int64)st->max_hp * (val1 * 2 + 10) / 100; //%Max HP to absorb
val3 = (val1 / 2 + 5); //Hits
break;
case SC_MAGICPOWER:
@@ -7470,21 +7426,21 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
case SC_VOLCANO:
val2 = val1*10; //Watk increase
#ifndef RENEWAL
- if (status->def_ele != ELE_FIRE)
+ if (st->def_ele != ELE_FIRE)
val2 = 0;
#endif
break;
case SC_VIOLENTGALE:
val2 = val1*3; //Flee increase
#ifndef RENEWAL
- if (status->def_ele != ELE_WIND)
+ if (st->def_ele != ELE_WIND)
val2 = 0;
#endif
break;
case SC_DELUGE:
val2 = deluge_eff[val1-1]; //HP increase
#ifndef RENEWAL
- if(status->def_ele != ELE_WATER)
+ if(st->def_ele != ELE_WATER)
val2 = 0;
#endif
break;
@@ -7572,10 +7528,10 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
case SC_DPOISON:
//Lose 10/15% of your life as long as it doesn't brings life below 25%
- if (status->hp > status->max_hp>>2) {
- int diff = status->max_hp*(bl->type==BL_PC?10:15)/100;
- if (status->hp - diff < status->max_hp>>2)
- diff = status->hp - (status->max_hp>>2);
+ if (st->hp > st->max_hp>>2) {
+ int diff = st->max_hp*(bl->type==BL_PC?10:15)/100;
+ if (st->hp - diff < st->max_hp>>2)
+ diff = st->hp - (st->max_hp>>2);
if( val2 && bl->type == BL_MOB ) {
struct block_list* src = iMap->id2bl(val2);
if( src )
@@ -7590,9 +7546,9 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
tick_time = 1000; // [GodLesZ] tick time
//val4: HP damage
if (bl->type == BL_PC)
- val4 = (type == SC_DPOISON) ? 3 + status->max_hp/50 : 3 + status->max_hp*3/200;
+ val4 = (type == SC_DPOISON) ? 3 + st->max_hp/50 : 3 + st->max_hp*3/200;
else
- val4 = (type == SC_DPOISON) ? 3 + status->max_hp/100 : 3 + status->max_hp/200;
+ val4 = (type == SC_DPOISON) ? 3 + st->max_hp/100 : 3 + st->max_hp/200;
break;
case SC_CONFUSION:
@@ -7796,7 +7752,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
struct status_change *psc = pbl?iStatus->get_sc(pbl):NULL;
struct status_change_entry *psce = psc?psc->data[SC_MARIONETTE_MASTER]:NULL;
// fetch target's stats
- struct status_data* status = iStatus->get_status_data(bl); // battle status
+ struct status_data* tst = iStatus->get_status_data(bl); // battle status
if (!psce)
return 0;
@@ -7804,12 +7760,12 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
val3 = 0;
val4 = 0;
max_stat = battle_config.max_parameter; //Cap to 99 (default)
- stat = (psce->val3 >>16)&0xFF; stat = min(stat, max_stat - status->str ); val3 |= cap_value(stat,0,0xFF)<<16;
- stat = (psce->val3 >> 8)&0xFF; stat = min(stat, max_stat - status->agi ); val3 |= cap_value(stat,0,0xFF)<<8;
- stat = (psce->val3 >> 0)&0xFF; stat = min(stat, max_stat - status->vit ); val3 |= cap_value(stat,0,0xFF);
- stat = (psce->val4 >>16)&0xFF; stat = min(stat, max_stat - status->int_); val4 |= cap_value(stat,0,0xFF)<<16;
- stat = (psce->val4 >> 8)&0xFF; stat = min(stat, max_stat - status->dex ); val4 |= cap_value(stat,0,0xFF)<<8;
- stat = (psce->val4 >> 0)&0xFF; stat = min(stat, max_stat - status->luk ); val4 |= cap_value(stat,0,0xFF);
+ stat = (psce->val3 >>16)&0xFF; stat = min(stat, max_stat - tst->str ); val3 |= cap_value(stat,0,0xFF)<<16;
+ stat = (psce->val3 >> 8)&0xFF; stat = min(stat, max_stat - tst->agi ); val3 |= cap_value(stat,0,0xFF)<<8;
+ stat = (psce->val3 >> 0)&0xFF; stat = min(stat, max_stat - tst->vit ); val3 |= cap_value(stat,0,0xFF);
+ stat = (psce->val4 >>16)&0xFF; stat = min(stat, max_stat - tst->int_); val4 |= cap_value(stat,0,0xFF)<<16;
+ stat = (psce->val4 >> 8)&0xFF; stat = min(stat, max_stat - tst->dex ); val4 |= cap_value(stat,0,0xFF)<<8;
+ stat = (psce->val4 >> 0)&0xFF; stat = min(stat, max_stat - tst->luk ); val4 |= cap_value(stat,0,0xFF);
break;
}
case SC_SWORDREJECT:
@@ -7861,9 +7817,9 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
if( val3 && bl->type == BL_MOB ) {
struct block_list* src = iMap->id2bl(val3);
if( src )
- mob->log_damage((TBL_MOB*)bl,src,status->hp - 1);
+ mob->log_damage((TBL_MOB*)bl,src,st->hp - 1);
}
- status_zap(bl, status->hp-1, val2?0:status->sp);
+ status_zap(bl, st->hp-1, val2 ? 0 : st->sp);
return 1;
break;
case SC_RG_CCONFINE_S:
@@ -7931,7 +7887,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
val4 = INVALID_TIMER; //Kaahi Timer.
break;
case SC_BLESSING:
- if ((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC)
+ if ((!undead_flag && st->race!=RC_DEMON) || bl->type == BL_PC)
val2 = val1;
else
val2 = 0; //0 -> Half stat.
@@ -7986,13 +7942,13 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
val3 = 3*val1; //Hit increase
break;
case SC_SUN_COMFORT:
- val2 = (iStatus->get_lv(bl) + status->dex + status->luk)/2; //def increase
+ val2 = (iStatus->get_lv(bl) + st->dex + st->luk)/2; //def increase
break;
case SC_MOON_COMFORT:
- val2 = (iStatus->get_lv(bl) + status->dex + status->luk)/10; //flee increase
+ val2 = (iStatus->get_lv(bl) + st->dex + st->luk)/10; //flee increase
break;
case SC_STAR_COMFORT:
- val2 = (iStatus->get_lv(bl) + status->dex + status->luk); //Aspd increase
+ val2 = (iStatus->get_lv(bl) + st->dex + st->luk); //Aspd increase
break;
case SC_QUAGMIRE:
val2 = (sd?5:10)*val1; //Agi/Dex decrease.
@@ -8076,7 +8032,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
val3= 20*val1; //Int increase
break;
case SC_SWOO:
- if(status->mode&MD_BOSS)
+ if(st->mode&MD_BOSS)
tick /= 5; //TODO: Reduce skill's duration. But for how long?
break;
case SC_SPIDERWEB:
@@ -8411,7 +8367,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
}
break;
case SC_VACUUM_EXTREME:
- tick -= (status->str / 20) * 1000;
+ tick -= (st->str / 20) * 1000;
val4 = val3 = tick / 100;
tick_time = 100; // [GodLesZ] tick time
break;
@@ -8520,8 +8476,8 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
else // Mobs
val1 += (400 * iStatus->get_lv(bl) / 100) + (15 * (iStatus->get_lv(bl) / 2)); // About 1138% at mob_lvl 99. Is an aproximation to a standard weapon. [pakpil]
break;
- case SC_PRESTIGE: // Bassed on suggested formula in iRO Wiki and some test, still need more test. [pakpil]
- val2 = ((status->int_ + status->luk) / 6) + 5; // Chance to evade magic damage.
+ case SC_PRESTIGE: // Based on suggested formula in iRO Wiki and some test, still need more test. [pakpil]
+ val2 = ((st->int_ + st->luk) / 6) + 5; // Chance to evade magic damage.
val1 *= 15; // Defence added
if( sd )
val1 += 10 * pc->checkskill(sd,CR_DEFENDER);
@@ -8569,7 +8525,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
case SC_GENTLETOUCH_CHANGE:
{// take note there is no def increase as skill desc says. [malufett]
struct block_list * src;
- val3 = status->agi * val1 / 60; // ASPD increase: [(Target AGI x Skill Level) / 60] %
+ val3 = st->agi * val1 / 60; // ASPD increase: [(Target AGI x Skill Level) / 60] %
if( (src = iMap->id2bl(val2)) ){
val4 = ( 200/status_get_int(src) ) * val1;// MDEF decrease: MDEF [(200 / Caster INT) x Skill Level]
val2 = ( status_get_dex(src)/4 + status_get_str(src)/2 ) * val1 / 5; // ATK increase: ATK [{(Caster DEX / 4) + (Caster STR / 2)} x Skill Level / 5]
@@ -9132,10 +9088,10 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
switch (type) {
case SC_BERSERK:
if (!(sce->val2)) { //don't heal if already set
- iStatus->heal(bl, status->max_hp, 0, 1); //Do not use percent_heal as this healing must override BERSERK's block.
+ iStatus->heal(bl, st->max_hp, 0, 1); //Do not use percent_heal as this healing must override BERSERK's block.
iStatus->set_sp(bl, 0, 0); //Damage all SP
}
- sce->val2 = 5 * status->max_hp / 100;
+ sce->val2 = 5 * st->max_hp / 100;
break;
case SC_HLIF_CHANGE:
status_percent_heal(bl, 100, 100);
@@ -9203,7 +9159,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
}
break;
case SC_RAISINGDRAGON:
- sce->val2 = status->max_hp / 100;// Officially tested its 1%hp drain. [Jobbie]
+ sce->val2 = st->max_hp / 100;// Officially tested its 1%hp drain. [Jobbie]
break;
}
@@ -9291,14 +9247,14 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
struct map_session_data *sd;
struct status_change *sc;
struct status_change_entry *sce;
- struct status_data *status;
+ struct status_data *st;
struct view_data *vd;
int opt_flag=0, calc_flag;
nullpo_ret(bl);
sc = iStatus->get_sc(bl);
- status = iStatus->get_status_data(bl);
+ st = iStatus->get_status_data(bl);
if(type < 0 || type >= SC_MAX || !sc || !(sce = sc->data[type]))
return 0;
@@ -9346,13 +9302,14 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
vd = iStatus->get_viewdata(bl);
calc_flag = StatusChangeFlagTable[type];
switch(type) {
- case SC_GRANITIC_ARMOR:{
- int dammage = status->max_hp*sce->val3/100;
- if(status->hp < dammage) //to not kill him
- dammage = status->hp-1;
- iStatus->damage(NULL, bl, dammage,0,0,1);
+ case SC_GRANITIC_ARMOR:
+ {
+ int damage = st->max_hp*sce->val3/100;
+ if(st->hp < damage) //to not kill him
+ damage = st->hp-1;
+ iStatus->damage(NULL, bl, damage,0,0,1);
+ }
break;
- }
case SC_PYROCLASTIC:
if(bl->type == BL_PC)
skill->break_equip(bl,EQP_WEAPON,10000,BCT_SELF);
@@ -9573,15 +9530,12 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
case SC_BERSERK:
case SC_SATURDAY_NIGHT_FEVER:
- if(status->hp > 200 && sc && sc->data[SC__BLOODYLUST]){
+ if(st->hp > 200 && sc && sc->data[SC__BLOODYLUST]) {
status_percent_heal(bl, 100, 0);
status_change_end(bl, SC__BLOODYLUST, INVALID_TIMER);
- }else
- //If val2 is removed, no HP penalty (dispelled?) [Skotlex]
- if(status->hp > 100 && sce->val2)
+ } else if(st->hp > 100 && sce->val2) //If val2 is removed, no HP penalty (dispelled?) [Skotlex]
iStatus->set_hp(bl, 100, 0);
- if(sc->data[SC_ENDURE] && sc->data[SC_ENDURE]->val4 == 2)
- {
+ if(sc->data[SC_ENDURE] && sc->data[SC_ENDURE]->val4 == 2) {
sc->data[SC_ENDURE]->val4 = 0;
status_change_end(bl, SC_ENDURE, INVALID_TIMER);
}
@@ -9982,12 +9936,11 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
return 1;
}
-int kaahi_heal_timer(int tid, unsigned int tick, int id, intptr_t data)
-{
+int kaahi_heal_timer(int tid, unsigned int tick, int id, intptr_t data) {
struct block_list *bl;
struct status_change *sc;
struct status_change_entry *sce;
- struct status_data *status;
+ struct status_data *st;
int hp;
if(!((bl=iMap->id2bl(id))&&
@@ -10001,13 +9954,13 @@ int kaahi_heal_timer(int tid, unsigned int tick, int id, intptr_t data)
return 0;
}
- status=iStatus->get_status_data(bl);
+ st=iStatus->get_status_data(bl);
if(!iStatus->charge(bl, 0, sce->val3)) {
sce->val4 = INVALID_TIMER;
return 0;
}
- hp = status->max_hp - status->hp;
+ hp = st->max_hp - st->hp;
if (hp > sce->val2)
hp = sce->val2;
if (hp)
@@ -10020,12 +9973,11 @@ int kaahi_heal_timer(int tid, unsigned int tick, int id, intptr_t data)
* For recusive status, like for each 5s we drop sp etc.
* Reseting the end timer.
*------------------------------------------*/
-int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
-{
+int status_change_timer(int tid, unsigned int tick, int id, intptr_t data) {
enum sc_type type = (sc_type)data;
struct block_list *bl;
struct map_session_data *sd;
- struct status_data *status;
+ struct status_data *st;
struct status_change *sc;
struct status_change_entry *sce;
@@ -10036,7 +9988,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
return 0;
}
sc = iStatus->get_sc(bl);
- status = iStatus->get_status_data(bl);
+ st = iStatus->get_status_data(bl);
if(!(sc && (sce = sc->data[type])))
{
@@ -10134,7 +10086,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
return 0;
}
if(--(sce->val3) > 0) {
- if(++(sce->val4)%5 == 0 && status->hp > status->max_hp/4)
+ if(++(sce->val4)%5 == 0 && st->hp > st->max_hp/4)
status_percent_damage(NULL, bl, 1, 0, false);
sc_timer_next(1000+tick,iStatus->change_timer, bl->id, data );
return 0;
@@ -10142,7 +10094,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
break;
case SC_POISON:
- if(status->hp <= max(status->max_hp>>2, sce->val4)) //Stop damaging after 25% HP left.
+ if(st->hp <= max(st->max_hp>>2, sce->val4)) //Stop damaging after 25% HP left.
break;
case SC_DPOISON:
if (--(sce->val3) > 0) {
@@ -10164,7 +10116,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
break;
case SC_TENSIONRELAX:
- if(status->max_hp > status->hp && --(sce->val3) > 0){
+ if(st->max_hp > st->hp && --(sce->val3) > 0){
sc_timer_next(sce->val4+tick, iStatus->change_timer, bl->id, data);
return 0;
}
@@ -10186,12 +10138,12 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
int hp = rnd()%600 + 200;
struct block_list* src = iMap->id2bl(sce->val2);
if( src && bl && bl->type == BL_MOB ) {
- mob->log_damage((TBL_MOB*)bl,src,sd||hp<status->hp?hp:status->hp-1);
+ mob->log_damage((TBL_MOB*)bl,src,sd||hp<st->hp?hp:st->hp-1);
}
iMap->freeblock_lock();
- status_fix_damage(src, bl, sd||hp<status->hp?hp:status->hp-1, 1);
+ status_fix_damage(src, bl, sd||hp<st->hp?hp:st->hp-1, 1);
if( sc->data[type] ) {
- if( status->hp == 1 ) {
+ if( st->hp == 1 ) {
iMap->freeblock_unlock();
break;
}
@@ -10208,7 +10160,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
{
// val1 < 0 = per max% | val1 > 0 = exact amount
int hp = 0;
- if( status->hp < status->max_hp )
+ if( st->hp < st->max_hp )
hp = (sce->val1 < 0) ? (int)(sd->status.max_hp * -1 * sce->val1 / 100.) : sce->val1 ;
iStatus->heal(bl, hp, 0, 2);
sc_timer_next((sce->val2 * 1000) + tick, iStatus->change_timer, bl->id, data);
@@ -10289,7 +10241,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
break;
case SC_BERSERK:
// 5% every 10 seconds [DracoRPG]
- if( --( sce->val3 ) > 0 && iStatus->charge(bl, sce->val2, 0) && status->hp > 100 )
+ if( --( sce->val3 ) > 0 && iStatus->charge(bl, sce->val2, 0) && st->hp > 100 )
{
sc_timer_next(sce->val4+tick, iStatus->change_timer, bl->id, data);
return 0;
@@ -10384,8 +10336,8 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
case SC_LEECHESEND:
if( --(sce->val4) > 0 ) {
- int damage = status->max_hp/100; // {Target VIT x (New Poison Research Skill Level - 3)} + (Target HP/100)
- damage += status->vit * (sce->val1 - 3);
+ int damage = st->max_hp/100; // {Target VIT x (New Poison Research Skill Level - 3)} + (Target HP/100)
+ damage += st->vit * (sce->val1 - 3);
unit->skillcastcancel(bl,2);
iMap->freeblock_lock();
iStatus->damage(bl, bl, damage, 0, clif->damage(bl,bl,tick,status_get_amotion(bl),status_get_dmotion(bl)+500,damage,1,0,0), 1);
@@ -10400,9 +10352,9 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
case SC_MAGICMUSHROOM:
if( --(sce->val4) > 0 ) {
bool flag = 0;
- int damage = status->max_hp * 3 / 100;
- if( status->hp <= damage )
- damage = status->hp - 1; // Cannot Kill
+ int damage = st->max_hp * 3 / 100;
+ if( st->hp <= damage )
+ damage = st->hp - 1; // Cannot Kill
if( damage > 0 ) { // 3% Damage each 4 seconds
iMap->freeblock_lock();
@@ -10447,7 +10399,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
{ //Damage is every 10 seconds including 3%sp drain.
iMap->freeblock_lock();
clif->damage(bl,bl,tick,status_get_amotion(bl),1,1,0,0,0);
- iStatus->damage(NULL, bl, 1, status->max_sp * 3 / 100, 0, 0); //cancel dmg only if cancelable
+ iStatus->damage(NULL, bl, 1, st->max_sp * 3 / 100, 0, 0); //cancel dmg only if cancelable
if( sc->data[type] ) {
sc_timer_next(10000 + tick, iStatus->change_timer, bl->id, data );
}
@@ -10482,9 +10434,8 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
return 0;
case SC_RENOVATIO:
- if( --(sce->val4) > 0 )
- {
- int heal = status->max_hp * 3 / 100;
+ if( --(sce->val4) > 0 ) {
+ int heal = st->max_hp * 3 / 100;
if( sc && sc->data[SC_AKAITSUKI] && heal )
heal = ~heal + 1;
iStatus->heal(bl, heal, 0, 2);
@@ -10546,9 +10497,8 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
return 0;
case SC_ELECTRICSHOCKER:
- if( --(sce->val4) > 0 )
- {
- iStatus->charge(bl, 0, status->max_sp / 100 * sce->val1 );
+ if( --(sce->val4) > 0 ) {
+ iStatus->charge(bl, 0, st->max_sp / 100 * sce->val1 );
sc_timer_next(1000 + tick, iStatus->change_timer, bl->id, data);
return 0;
}
@@ -10579,9 +10529,8 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
break;
case SC__INVISIBILITY:
- if( --(sce->val4) > 0 )
- {
- if( !iStatus->charge(bl, 0, (status->sp * 6 - sce->val1) / 100) )// 6% - skill_lv.
+ if( --(sce->val4) > 0 ) {
+ if( !iStatus->charge(bl, 0, (st->sp * 6 - sce->val1) / 100) )// 6% - skill_lv.
break;
sc_timer_next(1000 + tick, iStatus->change_timer, bl->id, data);
return 0;
@@ -10611,7 +10560,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
break;
iMap->freeblock_lock();
damage = sce->val3;
- iStatus->damage(src, bl, damage, 0, clif->damage(bl,bl,tick,status->amotion,status->dmotion+200,damage,1,0,0), 1);
+ iStatus->damage(src, bl, damage, 0, clif->damage(bl,bl,tick,st->amotion,st->dmotion+200,damage,1,0,0), 1);
unit->skillcastcancel(bl,1);
if ( sc->data[type] ) {
sc_timer_next(1000 + tick, iStatus->change_timer, bl->id, data);
@@ -10632,9 +10581,9 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
break;
case SC_DEEP_SLEEP:
- if( --(sce->val4) > 0 )
- { // Recovers 1% HP/SP every 2 seconds.
- iStatus->heal(bl, status->max_hp / 100, status->max_sp / 100, 2);
+ if( --(sce->val4) > 0 ) {
+ // Recovers 1% HP/SP every 2 seconds.
+ iStatus->heal(bl, st->max_hp / 100, st->max_sp / 100, 2);
sc_timer_next(2000 + tick, iStatus->change_timer, bl->id, data);
return 0;
}
@@ -10663,10 +10612,9 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
case SC_SATURDAY_NIGHT_FEVER:
// 1% HP/SP drain every val4 seconds [Jobbie]
- if( --(sce->val3) > 0 )
- {
- int hp = status->hp / 100;
- int sp = status->sp / 100;
+ if( --(sce->val3) > 0 ) {
+ int hp = st->hp / 100;
+ int sp = st->sp / 100;
if( !iStatus->charge(bl, hp, sp) )
break;
sc_timer_next(sce->val4+tick, iStatus->change_timer, bl->id, data);
@@ -10675,10 +10623,10 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
break;
case SC_COLD:
- if( --(sce->val4) > 0 )
- { // Drains 2% of HP and 1% of SP every seconds.
+ if( --(sce->val4) > 0 ) {
+ // Drains 2% of HP and 1% of SP every seconds.
if( bl->type != BL_MOB) // doesn't work on mobs
- iStatus->charge(bl, status->max_hp * 2 / 100, status->max_sp / 100);
+ iStatus->charge(bl, st->max_hp * 2 / 100, st->max_sp / 100);
sc_timer_next(1000 + tick, iStatus->change_timer, bl->id, data);
return 0;
}
@@ -10716,8 +10664,8 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
case SC_OVERHEAT:
{
- int damage = status->max_hp / 100; // Suggestion 1% each second
- if( damage >= status->hp ) damage = status->hp - 1; // Do not kill, just keep you with 1 hp minimum
+ int damage = st->max_hp / 100; // Suggestion 1% each second
+ if( damage >= st->hp ) damage = st->hp - 1; // Do not kill, just keep you with 1 hp minimum
iMap->freeblock_lock();
status_fix_damage(NULL,bl,damage,clif->damage(bl,bl,tick,0,0,damage,0,0,0));
if( sc->data[type] ) {
@@ -10748,10 +10696,9 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
break;
case SC_INSPIRATION:
- if(--(sce->val4) > 0)
- {
- int hp = status->max_hp * (7-sce->val1) / 100;
- int sp = status->max_sp * (9-sce->val1) / 100;
+ if(--(sce->val4) > 0) {
+ int hp = st->max_hp * (7-sce->val1) / 100;
+ int sp = st->max_sp * (9-sce->val1) / 100;
if( !iStatus->charge(bl,hp,sp) ) break;
@@ -10810,8 +10757,8 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
sc_timer_next(600000 + tick, iStatus->change_timer, bl->id, data);
return 0;
case SC_MEIKYOUSISUI:
- if( --(sce->val4) > 0 ){
- iStatus->heal(bl, status->max_hp * (sce->val1+1) / 100, status->max_sp * sce->val1 / 100, 0);
+ if( --(sce->val4) > 0 ) {
+ iStatus->heal(bl, st->max_hp * (sce->val1+1) / 100, st->max_sp * sce->val1 / 100, 0);
sc_timer_next(1000 + tick, iStatus->change_timer, bl->id, data);
return 0;
}
@@ -10974,12 +10921,12 @@ int status_get_weapon_atk(struct block_list *bl, struct weapon_atk *watk, int fl
}
#endif
-#define GETRANDMATK(){\
- if( status->matk_max > status->matk_min )\
- return status->matk_min + rnd()%(status->matk_max - status->matk_min);\
-else\
- return status->matk_min;\
-}
+#define GETRANDMATK(st) do {\
+ if( (st)->matk_max > (st)->matk_min ) \
+ return (st)->matk_min + rnd()%((st)->matk_max - (st)->matk_min); \
+ else \
+ return (st)->matk_min; \
+ } while(0)
/*==========================================
* flag [malufett]
@@ -10988,72 +10935,72 @@ else\
* 2 - get modified matk
* 3 - get matk w/o eatk & SC bonuses
*------------------------------------------*/
-int status_get_matk(struct block_list *bl, int flag){
- struct status_data *status;
+int status_get_matk(struct block_list *bl, int flag) {
+ struct status_data *st;
struct status_change *sc;
struct map_session_data *sd;
if( bl == NULL )
return 1;
- status = iStatus->get_status_data(bl);
+ st = iStatus->get_status_data(bl);
sc = iStatus->get_sc(bl);
sd = BL_CAST(BL_PC, bl);
if( flag == 2 ) // just get matk
- GETRANDMATK();
+ GETRANDMATK(st);
#ifndef RENEWAL
- status->matk_min = status_base_matk_min(status) + (sd?sd->bonus.ematk:0);
- status->matk_max = status_base_matk_max(status) + (sd?sd->bonus.ematk:0);
+ st->matk_min = status_base_matk_min(st) + (sd?sd->bonus.ematk:0);
+ st->matk_max = status_base_matk_max(st) + (sd?sd->bonus.ematk:0);
#else
/**
* RE MATK Formula (from irowiki:http://irowiki.org/wiki/MATK)
* MATK = (sMATK + wMATK + eMATK) * Multiplicative Modifiers
**/
- status->matk_min = iStatus->base_matk(status, iStatus->get_lv(bl));
+ st->matk_min = iStatus->base_matk(st, iStatus->get_lv(bl));
// Any +MATK you get from skills and cards, including cards in weapon, is added here.
if( sd && sd->bonus.ematk > 0 && flag != 3 )
- status->matk_min += sd->bonus.ematk;
+ st->matk_min += sd->bonus.ematk;
if( flag != 3 )
- status->matk_min = status_calc_ematk(bl, sc, status->matk_min);
+ st->matk_min = status_calc_ematk(bl, sc, st->matk_min);
- status->matk_max = status->matk_min;
+ st->matk_max = st->matk_min;
//This is the only portion in MATK that varies depending on the weapon level and refinement rate.
- if( bl->type&BL_PC && (status->rhw.matk + status->lhw.matk) > 0 ){
- int wMatk = status->rhw.matk + status->lhw.matk; // Left and right matk stacks
- int variance = wMatk * status->rhw.wlv / 10; // Only use right hand weapon level
- status->matk_min += wMatk - variance;
- status->matk_max += wMatk + variance;
+ if( bl->type&BL_PC && (st->rhw.matk + st->lhw.matk) > 0 ){
+ int wMatk = st->rhw.matk + st->lhw.matk; // Left and right matk stacks
+ int variance = wMatk * st->rhw.wlv / 10; // Only use right hand weapon level
+ st->matk_min += wMatk - variance;
+ st->matk_max += wMatk + variance;
}else if( bl->type&BL_MOB ){
- status->matk_min = status->matk_max = status_get_int(bl) + iStatus->get_lv(bl);
- status->matk_min += 70 * ((TBL_MOB*)bl)->status.rhw.atk2 / 100;
- status->matk_max += 130 * ((TBL_MOB*)bl)->status.rhw.atk2 / 100;
+ st->matk_min = st->matk_max = status_get_int(bl) + iStatus->get_lv(bl);
+ st->matk_min += 70 * ((TBL_MOB*)bl)->status.rhw.atk2 / 100;
+ st->matk_max += 130 * ((TBL_MOB*)bl)->status.rhw.atk2 / 100;
}
#endif
if (bl->type&BL_PC && sd->matk_rate != 100) {
- status->matk_max = status->matk_max * sd->matk_rate/100;
- status->matk_min = status->matk_min * sd->matk_rate/100;
+ st->matk_max = st->matk_max * sd->matk_rate/100;
+ st->matk_min = st->matk_min * sd->matk_rate/100;
}
if ((bl->type&BL_HOM && battle_config.hom_setting&0x20) //Hom Min Matk is always the same as Max Matk
|| (sc && sc->data[SC_RECOGNIZEDSPELL]))
- status->matk_min = status->matk_max;
+ st->matk_min = st->matk_max;
#ifdef RENEWAL
if( sd && sd->right_weapon.overrefine > 0){
- status->matk_min++;
- status->matk_max += sd->right_weapon.overrefine - 1;
+ st->matk_min++;
+ st->matk_max += sd->right_weapon.overrefine - 1;
}
#endif
if( flag ) // get unmodified from sc matk
- GETRANDMATK();
+ GETRANDMATK(st);
- status->matk_min = status_calc_matk(bl, sc, status->matk_min, true);
- status->matk_max = status_calc_matk(bl, sc, status->matk_max, true);
+ st->matk_min = status_calc_matk(bl, sc, st->matk_min, true);
+ st->matk_max = status_calc_matk(bl, sc, st->matk_max, true);
return 0;
}
@@ -11213,10 +11160,9 @@ int status_change_spread( struct block_list *src, struct block_list *bl ) {
//Natural regen related stuff.
static unsigned int natural_heal_prev_tick,natural_heal_diff_tick;
-static int status_natural_heal(struct block_list* bl, va_list args)
-{
+static int status_natural_heal(struct block_list* bl, va_list args) {
struct regen_data *regen;
- struct status_data *status;
+ struct status_data *st;
struct status_change *sc;
struct unit_data *ud;
struct view_data *vd = NULL;
@@ -11226,16 +11172,16 @@ static int status_natural_heal(struct block_list* bl, va_list args)
regen = iStatus->get_regen_data(bl);
if (!regen) return 0;
- status = iStatus->get_status_data(bl);
+ st = iStatus->get_status_data(bl);
sc = iStatus->get_sc(bl);
if (sc && !sc->count)
sc = NULL;
sd = BL_CAST(BL_PC,bl);
flag = regen->flag;
- if (flag&RGN_HP && (status->hp >= status->max_hp || regen->state.block&1))
+ if (flag&RGN_HP && (st->hp >= st->max_hp || regen->state.block&1))
flag&=~(RGN_HP|RGN_SHP);
- if (flag&RGN_SP && (status->sp >= status->max_sp || regen->state.block&2))
+ if (flag&RGN_SP && (st->sp >= st->max_sp || regen->state.block&2))
flag&=~(RGN_SP|RGN_SSP);
if (flag && (
diff --git a/src/map/status.h b/src/map/status.h
index 9d49ff3af..c6da44d83 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -1854,7 +1854,7 @@ struct status_interface {
int (*calc_elemental_) (struct elemental_data *ed, bool first);
void (*calc_misc) (struct block_list *bl, struct status_data *status, int level);
- void (*calc_regen) (struct block_list *bl, struct status_data *status, struct regen_data *regen);
+ void (*calc_regen) (struct block_list *bl, struct status_data *st, struct regen_data *regen);
void (*calc_regen_rate) (struct block_list *bl, struct regen_data *regen, struct status_change *sc);
int (*check_skilluse) (struct block_list *src, struct block_list *target, uint16 skill_id, int flag); // [Skotlex]
@@ -1869,7 +1869,7 @@ struct status_interface {
unsigned short (*calc_batk) (struct block_list *, struct status_change *, int, bool);
#ifdef RENEWAL
- unsigned short (*base_matk) (const struct status_data* status, int level);
+ unsigned short (*base_matk) (const struct status_data *st, int level);
int (*get_weapon_atk) (struct block_list *src, struct weapon_atk *watk, int flag);
#endif
int (*get_total_mdef) (struct block_list *src);