From 4bb6aa13a057d20159028634e65ef0219e9a6472 Mon Sep 17 00:00:00 2001 From: aleos89 Date: Thu, 4 May 2017 10:25:44 -0400 Subject: [PATCH] Revert "Status Change display in status window (#1481)" This reverts commit a75133eb4d8976c1c890d5420665e7a76349e226. --- conf/battle/player.conf | 4 - src/map/battle.c | 117 +++++++-------- src/map/battle.h | 1 - src/map/status.c | 318 +++++++++++++++++----------------------- src/map/status.h | 36 ----- 5 files changed, 189 insertions(+), 287 deletions(-) diff --git a/conf/battle/player.conf b/conf/battle/player.conf index 8a4722efac..faec134cce 100644 --- a/conf/battle/player.conf +++ b/conf/battle/player.conf @@ -172,10 +172,6 @@ min_npc_vendchat_distance: 3 // Default is 25. 100 = 100% Increase. rental_mount_speed_boost: 25 -// Display Katar critical bonus in the status window? (Note 1) -// Default (official): no -show_status_katar_crit: no - //=================================== // VIP system //=================================== diff --git a/src/map/battle.c b/src/map/battle.c index 7c5a9b5822..ffa6285bb2 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -15,7 +15,6 @@ #include "map.h" #include "path.h" #include "pc.h" -#include "status.h" #include "homunculus.h" #include "mercenary.h" #include "elemental.h" @@ -2338,8 +2337,6 @@ static bool is_attack_critical(struct Damage wd, struct block_list *src, struct short cri = sstatus->cri; if (sd) { - if (!battle_config.show_status_katar_crit && sd->status.weapon == W_KATAR) - cri <<= 1; // Double critical bonus from Katars aren't shown in the status display cri += sd->critaddrace[tstatus->race] + sd->critaddrace[RC_ALL]; if(is_skill_using_arrow(src, skill_id)) { cri += sd->bonus.arrow_cri; @@ -4537,15 +4534,15 @@ struct Damage battle_attack_sc_bonus(struct Damage wd, struct block_list *src, s return wd; } -/** - * Calculates defense based on src and target - * @param src: Source object - * @param target: Target object - * @param skill_id: Skill used - * @param flag: 0 - Return armor defense, 1 - Return status defense - * @return defense +/*==================================== + * Calc defense damage reduction + *------------------------------------ + * Credits: + * Original coder Skotlex + * Initial refactoring by Baalberith + * Refined and optimized by helvetica */ -static short battle_get_defense(struct block_list *src, struct block_list *target, uint16 skill_id, uint8 flag) +struct Damage battle_calc_defense_reduction(struct Damage wd, struct block_list *src,struct block_list *target, uint16 skill_id, uint16 skill_lv) { struct map_session_data *sd = BL_CAST(BL_PC, src); struct map_session_data *tsd = BL_CAST(BL_PC, target); @@ -4554,30 +4551,29 @@ static short battle_get_defense(struct block_list *src, struct block_list *targe struct status_data *sstatus = status_get_status_data(src); struct status_data *tstatus = status_get_status_data(target); - // Don't use tstatus->def1 due to skill timer reductions. - defType def1 = status_get_def(target); // eDEF - short def2 = tstatus->def2, vit_def; // sDEF + //Defense reduction + short vit_def; + defType def1 = status_get_def(target); //Don't use tstatus->def1 due to skill timer reductions. + short def2 = tstatus->def2; - def1 = status_calc_def(target, tsc, def1, false); - def2 = status_calc_def2(target, tsc, def2, false); +#ifdef RENEWAL + if( tsc && tsc->data[SC_ASSUMPTIO] ) + def1 <<= 1; // only eDEF is doubled +#endif if (sd) { int i = sd->ignore_def_by_race[tstatus->race] + sd->ignore_def_by_race[RC_ALL]; + i += sd->ignore_def_by_class[tstatus->class_] + sd->ignore_def_by_class[CLASS_ALL]; + if (i) { + i = min(i,100); //cap it to 100 for 0 def min + def1 -= def1 * i / 100; + def2 -= def2 * i / 100; + } //Kagerou/Oboro Earth Charm effect +10% eDEF if(sd->spiritcharm_type == CHARM_TYPE_LAND && sd->spiritcharm > 0) { short si = 10 * sd->spiritcharm; - - def1 = def1 * (100 + si) / 100; - } - - i += sd->ignore_def_by_class[tstatus->class_] + sd->ignore_def_by_class[CLASS_ALL]; - if (i) { - i = min(i, 100); //cap it to 100 for 0 def min - def1 -= def1 * i / 100; -#ifndef RENEWAL - def2 -= def2 * i / 100; -#endif + def1 = (def1 * (100 + si)) / 100; } } @@ -4586,9 +4582,29 @@ static short battle_get_defense(struct block_list *src, struct block_list *targe i = min(i,100); //cap it to 100 for 0 def min def1 = (def1*(100-i))/100; -#ifndef RENEWAL def2 = (def2*(100-i))/100; -#endif + } + + if (tsc) { + if (tsc->data[SC_FORCEOFVANGUARD]) { + short i = 2 * tsc->data[SC_FORCEOFVANGUARD]->val1; + + def1 = (def1 * (100 + i)) / 100; + } + + if( tsc->data[SC_CAMOUFLAGE] ){ + short i = 5 * tsc->data[SC_CAMOUFLAGE]->val3; //5% per second + + i = min(i,100); //cap it to 100 for 0 def min + def1 = (def1*(100-i))/100; + def2 = (def2*(100-i))/100; + } + + if (tsc->data[SC_GT_REVITALIZE]) + def2 += tsc->data[SC_GT_REVITALIZE]->val4; + + if (tsc->data[SC_OVERED_BOOST] && target->type == BL_PC) + def1 = (def1 * tsc->data[SC_OVERED_BOOST]->val4) / 100; } if( battle_config.vit_penalty_type && battle_config.vit_penalty_target&target->type ) { @@ -4607,8 +4623,10 @@ static short battle_get_defense(struct block_list *src, struct block_list *targe def2 -= (target_count - (battle_config.vit_penalty_count - 1))*battle_config.vit_penalty_num; } } -#ifndef RENEWAL if (skill_id == AM_ACIDTERROR) +#ifdef RENEWAL + def2 = 0; //Ignore only status defense. [FatalEror] +#else def1 = 0; //Ignores only armor defense. [Skotlex] #endif if(def2 < 1) @@ -4656,30 +4674,6 @@ static short battle_get_defense(struct block_list *src, struct block_list *targe def1 = 0; } - if (!flag) - return (short)def1; - else - return vit_def; -} - -/** - * Calculate defense damage reduction - * @param wd: Weapon data - * @param src: Source object - * @param target: Target object - * @param skill_id: Skill used - * @param skill_lv: Skill level used - * @return weapon data - * Credits: - * Original coder Skotlex - * Initial refactoring by Baalberith - * Refined and optimized by helvetica - */ -struct Damage battle_calc_defense_reduction(struct Damage wd, struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv) -{ - short def1 = battle_get_defense(src, target, skill_id, 0); - short vit_def = battle_get_defense(src, target, skill_id, 1); - #ifdef RENEWAL /** * RE DEF Reduction @@ -6162,12 +6156,12 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list ad.damage -= (int64)ad.damage*i/100; if(!flag.imdef){ - defType mdef = tstatus->mdef; // eMDEF - short mdef2 = tstatus->mdef2; // sMDEF - - mdef = status_calc_mdef(target, tsc, mdef, false); - mdef2 = status_calc_mdef2(target, tsc, mdef2, false); - + defType mdef = tstatus->mdef; + int mdef2= tstatus->mdef2; +#ifdef RENEWAL + if(tsc && tsc->data[SC_ASSUMPTIO]) + mdef <<= 1; // only eMDEF is doubled +#endif if(sd) { i = sd->ignore_mdef_by_race[tstatus->race] + sd->ignore_mdef_by_race[RC_ALL]; i += sd->ignore_mdef_by_class[tstatus->class_] + sd->ignore_mdef_by_class[CLASS_ALL]; @@ -6176,7 +6170,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list { if (i > 100) i = 100; mdef -= mdef * i/100; - mdef2-= mdef2* i/100; + //mdef2-= mdef2* i/100; } } #ifdef RENEWAL @@ -8396,7 +8390,6 @@ static const struct _battle_data { { "exp_cost_inspiration", &battle_config.exp_cost_inspiration, 1, 0, 100, }, { "mvp_exp_reward_message", &battle_config.mvp_exp_reward_message, 0, 0, 1, }, { "can_damage_skill", &battle_config.can_damage_skill, 1, 0, BL_ALL, }, - { "show_status_katar_crit", &battle_config.show_status_katar_crit, 0, 0, 1, }, { "atcommand_levelup_events", &battle_config.atcommand_levelup_events, 0, 0, 1, }, { "block_account_in_same_party", &battle_config.block_account_in_same_party, 1, 0, 1, }, { "tarotcard_equal_chance", &battle_config.tarotcard_equal_chance, 0, 0, 1, }, diff --git a/src/map/battle.h b/src/map/battle.h index 2cb02d95e6..b4b88a9976 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -611,7 +611,6 @@ extern struct Battle_Config int exp_cost_inspiration; int mvp_exp_reward_message; int can_damage_skill; //Which BL types can damage traps - int show_status_katar_crit; int atcommand_levelup_events; int block_account_in_same_party; int tarotcard_equal_chance; //Official or equal chance for each card diff --git a/src/map/status.c b/src/map/status.c index 559bc2df70..1091793dda 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -55,6 +55,43 @@ short current_equip_opt_index; /// Contains random option index of an equipped i unsigned int SCDisabled[SC_MAX]; ///< List of disabled SC on map zones. [Cydh] +static unsigned short status_calc_str(struct block_list *,struct status_change *,int); +static unsigned short status_calc_agi(struct block_list *,struct status_change *,int); +static unsigned short status_calc_vit(struct block_list *,struct status_change *,int); +static unsigned short status_calc_int(struct block_list *,struct status_change *,int); +static unsigned short status_calc_dex(struct block_list *,struct status_change *,int); +static unsigned short status_calc_luk(struct block_list *,struct status_change *,int); +static unsigned short status_calc_batk(struct block_list *,struct status_change *,int); +static unsigned short status_calc_watk(struct block_list *,struct status_change *,int); +static unsigned short status_calc_matk(struct block_list *,struct status_change *,int); +static signed short status_calc_hit(struct block_list *,struct status_change *,int); +static signed short status_calc_critical(struct block_list *,struct status_change *,int); +static signed short status_calc_flee(struct block_list *,struct status_change *,int); +static signed short status_calc_flee2(struct block_list *,struct status_change *,int); +static defType status_calc_def(struct block_list *bl, struct status_change *sc, int); +static signed short status_calc_def2(struct block_list *,struct status_change *,int); +static defType status_calc_mdef(struct block_list *bl, struct status_change *sc, int); +static signed short status_calc_mdef2(struct block_list *,struct status_change *,int); +static unsigned short status_calc_speed(struct block_list *,struct status_change *,int); +static short status_calc_aspd_rate(struct block_list *,struct status_change *,int); +static unsigned short status_calc_dmotion(struct block_list *bl, struct status_change *sc, int dmotion); +#ifdef RENEWAL_ASPD +static short status_calc_aspd(struct block_list *bl, struct status_change *sc, bool fixed); +#endif +static short status_calc_fix_aspd(struct block_list *bl, struct status_change *sc, int); +static unsigned int status_calc_maxhp(struct block_list *bl, uint64 maxhp); +static unsigned int status_calc_maxsp(struct block_list *bl, uint64 maxsp); +static unsigned char status_calc_element(struct block_list *bl, struct status_change *sc, int element); +static unsigned char status_calc_element_lv(struct block_list *bl, struct status_change *sc, int lv); +static enum e_mode status_calc_mode(struct block_list *bl, struct status_change *sc, enum e_mode mode); +#ifdef RENEWAL +static unsigned short status_calc_ematk(struct block_list *,struct status_change *,int); +#endif +static int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type); +static int status_get_spbonus(struct block_list *bl, enum e_status_bonus type); +static unsigned int status_calc_maxhpsp_pc(struct map_session_data* sd, unsigned int stat, bool isHP); +static int status_get_sc_interval(enum sc_type type); + static bool status_change_isDisabledOnMap_(sc_type type, bool mapIsVS, bool mapIsPVP, bool mapIsGVG, bool mapIsBG, unsigned int mapZone, bool mapIsTE); #define status_change_isDisabledOnMap(type, m) ( status_change_isDisabledOnMap_((type), map_flag_vs2((m)), map[(m)].flag.pvp, map_flag_gvg2_no_te((m)), map[(m)].flag.battleground, map[(m)].zone << 3, map_flag_gvg2_te((m))) ) @@ -369,11 +406,10 @@ void initChangeTables(void) set_sc( LK_BERSERK , SC_BERSERK , SI_BERSERK , SCB_DEF|SCB_DEF2|SCB_MDEF|SCB_MDEF2|SCB_FLEE|SCB_SPEED|SCB_ASPD|SCB_MAXHP|SCB_REGEN ); set_sc( HP_ASSUMPTIO , SC_ASSUMPTIO , #ifndef RENEWAL - SI_ASSUMPTIO , + SI_ASSUMPTIO , SCB_NONE ); #else - SI_ASSUMPTIO2 , + SI_ASSUMPTIO2 , SCB_NONE ); #endif - SCB_NONE ); add_sc( HP_BASILICA , SC_BASILICA ); set_sc( HW_MAGICPOWER , SC_MAGICPOWER , SI_MAGICPOWER , SCB_MATK ); add_sc( PA_SACRIFICE , SC_SACRIFICE ); @@ -494,13 +530,7 @@ void initChangeTables(void) set_sc( CASH_BLESSING , SC_BLESSING , SI_BLESSING , SCB_STR|SCB_INT|SCB_DEX ); set_sc( CASH_INCAGI , SC_INCREASEAGI , SI_INCREASEAGI , SCB_AGI|SCB_SPEED ); - set_sc( CASH_ASSUMPTIO , SC_ASSUMPTIO , -#ifndef RENEWAL - SI_ASSUMPTIO , -#else - SI_ASSUMPTIO2 , -#endif - SCB_NONE ); + set_sc( CASH_ASSUMPTIO , SC_ASSUMPTIO , SI_ASSUMPTIO , SCB_NONE ); set_sc( ALL_PARTYFLEE , SC_PARTYFLEE , SI_PARTYFLEE , SCB_NONE ); set_sc( ALL_ODINS_POWER , SC_ODINS_POWER , SI_ODINS_POWER , SCB_WATK|SCB_MATK|SCB_MDEF|SCB_DEF ); @@ -1194,13 +1224,13 @@ void initChangeTables(void) StatusChangeFlagTable[SC_WEDDING] |= SCB_SPEED; StatusChangeFlagTable[SC_ALL_RIDING] |= SCB_SPEED; StatusChangeFlagTable[SC_PUSH_CART] |= SCB_SPEED; - StatusChangeFlagTable[SC_MTF_ASPD] |= SCB_ASPD; + StatusChangeFlagTable[SC_MTF_ASPD] |= SCB_ASPD|SCB_HIT; StatusChangeFlagTable[SC_MTF_MATK] |= SCB_MATK; StatusChangeFlagTable[SC_MTF_MLEATKED] |= SCB_ALL; StatusChangeFlagTable[SC_QUEST_BUFF1] |= SCB_BATK|SCB_MATK; StatusChangeFlagTable[SC_QUEST_BUFF2] |= SCB_BATK|SCB_MATK; StatusChangeFlagTable[SC_QUEST_BUFF3] |= SCB_BATK|SCB_MATK; - StatusChangeFlagTable[SC_MTF_ASPD2] |= SCB_ASPD; + StatusChangeFlagTable[SC_MTF_ASPD2] |= SCB_ASPD|SCB_HIT; StatusChangeFlagTable[SC_MTF_MATK2] |= SCB_MATK; StatusChangeFlagTable[SC_2011RWC_SCROLL] |= SCB_BATK|SCB_MATK|SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK; StatusChangeFlagTable[SC_MTF_HITFLEE] |= SCB_HIT|SCB_FLEE; @@ -2851,7 +2881,7 @@ void status_calc_pet_(struct pet_data *pd, enum e_status_calc_opt opt) * @return bonus: total bonus for HP * @author [Cydh] */ -int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type) { +static int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type) { int bonus = 0; if (type == STATUS_BONUS_FIX) { @@ -2983,7 +3013,7 @@ int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type) { * @return bonus: total bonus for SP * @author [Cydh] */ -int status_get_spbonus(struct block_list *bl, enum e_status_bonus type) { +static int status_get_spbonus(struct block_list *bl, enum e_status_bonus type) { int bonus = 0; if (type == STATUS_BONUS_FIX) { @@ -3076,7 +3106,7 @@ int status_get_spbonus(struct block_list *bl, enum e_status_bonus type) { * @param isHP true - calculates Max HP, false - calculated Max SP * @return max The max value of HP or SP */ -unsigned int status_calc_maxhpsp_pc(struct map_session_data* sd, unsigned int stat, bool isHP) { +static unsigned int status_calc_maxhpsp_pc(struct map_session_data* sd, unsigned int stat, bool isHP) { double dmax = 0; uint16 idx, level, job_id; @@ -4696,33 +4726,33 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) temp += status->batk; status->batk = cap_value(temp, 0, USHRT_MAX); } - status->batk = status_calc_batk(bl, sc, status->batk, true); + status->batk = status_calc_batk(bl, sc, status->batk); } if(flag&SCB_WATK) { #ifndef RENEWAL - status->rhw.atk = status_calc_watk(bl, sc, b_status->rhw.atk, true); + status->rhw.atk = status_calc_watk(bl, sc, b_status->rhw.atk); if (!sd) // Should not affect weapon refine bonus - status->rhw.atk2 = status_calc_watk(bl, sc, b_status->rhw.atk2, true); + status->rhw.atk2 = status_calc_watk(bl, sc, b_status->rhw.atk2); if (sd && sd->bonus.weapon_atk_rate) status->rhw.atk += status->rhw.atk * sd->bonus.weapon_atk_rate / 100; if(b_status->lhw.atk) { if (sd) { sd->state.lr_flag = 1; - status->lhw.atk = status_calc_watk(bl, sc, b_status->lhw.atk, true); + status->lhw.atk = status_calc_watk(bl, sc, b_status->lhw.atk); 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); + status->lhw.atk = status_calc_watk(bl, sc, b_status->lhw.atk); + status->lhw.atk2= status_calc_watk(bl, sc, b_status->lhw.atk2); } } #else if(!b_status->watk) { // We only have left-hand weapon status->watk = 0; - status->watk2 = status_calc_watk(bl, sc, b_status->watk2, false); - } else - status->watk = status_calc_watk(bl, sc, b_status->watk, false); + status->watk2 = status_calc_watk(bl, sc, b_status->watk2); + } + else status->watk = status_calc_watk(bl, sc, b_status->watk); #endif } @@ -4732,13 +4762,13 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) && status->luk == b_status->luk #endif ) - status->hit = status_calc_hit(bl, sc, b_status->hit, true); + status->hit = status_calc_hit(bl, sc, b_status->hit); else status->hit = status_calc_hit(bl, sc, b_status->hit + (status->dex - b_status->dex) #ifdef RENEWAL + (status->luk/3 - b_status->luk/3) #endif - , true); + ); } if(flag&SCB_FLEE) { @@ -4747,17 +4777,17 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) && status->luk == b_status->luk #endif ) - status->flee = status_calc_flee(bl, sc, b_status->flee, true); + status->flee = status_calc_flee(bl, sc, b_status->flee); else status->flee = status_calc_flee(bl, sc, b_status->flee +(status->agi - b_status->agi) #ifdef RENEWAL + (status->luk/5 - b_status->luk/5) #endif - , true); + ); } if(flag&SCB_DEF) { - status->def = status_calc_def(bl, sc, b_status->def, true); + status->def = status_calc_def(bl, sc, b_status->def); if( bl->type&BL_HOM ) status->def += (status->vit/5 - b_status->vit/5); @@ -4769,7 +4799,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) && status->agi == b_status->agi #endif ) - status->def2 = status_calc_def2(bl, sc, b_status->def2, true); + status->def2 = status_calc_def2(bl, sc, b_status->def2); else status->def2 = status_calc_def2(bl, sc, b_status->def2 #ifdef RENEWAL @@ -4777,11 +4807,11 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) #else + (status->vit - b_status->vit) #endif - , true); + ); } if(flag&SCB_MDEF) { - status->mdef = status_calc_mdef(bl, sc, b_status->mdef, true); + status->mdef = status_calc_mdef(bl, sc, b_status->mdef); if( bl->type&BL_HOM ) status->mdef += (status->int_/5 - b_status->int_/5); @@ -4793,7 +4823,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) && status->dex == b_status->dex #endif ) - status->mdef2 = status_calc_mdef2(bl, sc, b_status->mdef2, true); + status->mdef2 = status_calc_mdef2(bl, sc, b_status->mdef2); else status->mdef2 = status_calc_mdef2(bl, sc, b_status->mdef2 +(status->int_ - b_status->int_) #ifdef RENEWAL @@ -4801,7 +4831,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) #else + ((status->vit - b_status->vit)>>1) #endif - , true); + ); } if(flag&SCB_SPEED) { @@ -4820,20 +4850,20 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) if(flag&SCB_CRI && b_status->cri) { if (status->luk == b_status->luk) - status->cri = status_calc_critical(bl, sc, b_status->cri, true); + status->cri = status_calc_critical(bl, sc, b_status->cri); else - status->cri = status_calc_critical(bl, sc, b_status->cri + 3*(status->luk - b_status->luk), true); + status->cri = status_calc_critical(bl, sc, b_status->cri + 3*(status->luk - b_status->luk)); /// After status_calc_critical so the bonus is applied despite if you have or not a sc bugreport:5240 - if (battle_config.show_status_katar_crit && bl->type == BL_PC && ((TBL_PC*)bl)->status.weapon == W_KATAR) + if( bl->type == BL_PC && ((TBL_PC*)bl)->status.weapon == W_KATAR ) status->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); + status->flee2 = status_calc_flee2(bl, sc, b_status->flee2); else - status->flee2 = status_calc_flee2(bl, sc, b_status->flee2 +(status->luk - b_status->luk), true); + status->flee2 = status_calc_flee2(bl, sc, b_status->flee2 +(status->luk - b_status->luk)); } if(flag&SCB_ATK_ELE) { @@ -4984,8 +5014,8 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) } #endif - status->matk_max = status_calc_matk(bl, sc, status->matk_max, true); - status->matk_min = status_calc_matk(bl, sc, status->matk_min, true); + status->matk_max = status_calc_matk(bl, sc, status->matk_max); + status->matk_min = status_calc_matk(bl, sc, status->matk_min); } if(flag&SCB_ASPD) { @@ -5273,7 +5303,7 @@ void status_calc_bl_(struct block_list* bl, enum scb_flag flag, enum e_status_ca * @param str: Initial str * @return modified str with cap_value(str,0,USHRT_MAX) */ -unsigned short status_calc_str(struct block_list *bl, struct status_change *sc, int str) +static unsigned short status_calc_str(struct block_list *bl, struct status_change *sc, int str) { if(!sc || !sc->count) return cap_value(str,0,USHRT_MAX); @@ -5347,7 +5377,7 @@ unsigned short status_calc_str(struct block_list *bl, struct status_change *sc, * @param agi: Initial agi * @return modified agi with cap_value(agi,0,USHRT_MAX) */ -unsigned short status_calc_agi(struct block_list *bl, struct status_change *sc, int agi) +static unsigned short status_calc_agi(struct block_list *bl, struct status_change *sc, int agi) { if(!sc || !sc->count) return cap_value(agi,0,USHRT_MAX); @@ -5419,7 +5449,7 @@ unsigned short status_calc_agi(struct block_list *bl, struct status_change *sc, * @param vit: Initial vit * @return modified vit with cap_value(vit,0,USHRT_MAX) */ -unsigned short status_calc_vit(struct block_list *bl, struct status_change *sc, int vit) +static unsigned short status_calc_vit(struct block_list *bl, struct status_change *sc, int vit) { if(!sc || !sc->count) return cap_value(vit,0,USHRT_MAX); @@ -5483,7 +5513,7 @@ unsigned short status_calc_vit(struct block_list *bl, struct status_change *sc, * @param int_: Initial int * @return modified int with cap_value(int_,0,USHRT_MAX) */ -unsigned short status_calc_int(struct block_list *bl, struct status_change *sc, int int_) +static unsigned short status_calc_int(struct block_list *bl, struct status_change *sc, int int_) { if(!sc || !sc->count) return cap_value(int_,0,USHRT_MAX); @@ -5560,7 +5590,7 @@ unsigned short status_calc_int(struct block_list *bl, struct status_change *sc, * @param dex: Initial dex * @return modified dex with cap_value(dex,0,USHRT_MAX) */ -unsigned short status_calc_dex(struct block_list *bl, struct status_change *sc, int dex) +static unsigned short status_calc_dex(struct block_list *bl, struct status_change *sc, int dex) { if(!sc || !sc->count) return cap_value(dex,0,USHRT_MAX); @@ -5634,7 +5664,7 @@ unsigned short status_calc_dex(struct block_list *bl, struct status_change *sc, * @param luk: Initial luk * @return modified luk with cap_value(luk,0,USHRT_MAX) */ -unsigned short status_calc_luk(struct block_list *bl, struct status_change *sc, int luk) +static unsigned short status_calc_luk(struct block_list *bl, struct status_change *sc, int luk) { if(!sc || !sc->count) return cap_value(luk,0,USHRT_MAX); @@ -5694,20 +5724,15 @@ unsigned short status_calc_luk(struct block_list *bl, struct status_change *sc, * @param bl: Object to change batk [PC|MOB|HOM|MER|ELEM] * @param sc: Object's status change information * @param batk: Initial batk - * @param display: If the status change is displayed in the status window * @return modified batk with cap_value(batk,0,USHRT_MAX) */ -unsigned short status_calc_batk(struct block_list *bl, struct status_change *sc, int batk, bool display) +static unsigned short status_calc_batk(struct block_list *bl, struct status_change *sc, int batk) { if(!sc || !sc->count) return cap_value(batk,0,USHRT_MAX); - if(!display) { // Status Changes that are hidden in the status window. - if(sc->data[SC_ATKPOTION]) - batk += sc->data[SC_ATKPOTION]->val1; - return (unsigned short)cap_value(batk,0,USHRT_MAX); - } - + if(sc->data[SC_ATKPOTION]) + batk += sc->data[SC_ATKPOTION]->val1; if(sc->data[SC_BATKFOOD]) batk += sc->data[SC_BATKFOOD]->val1; #ifndef RENEWAL @@ -5779,21 +5804,12 @@ unsigned short status_calc_batk(struct block_list *bl, struct status_change *sc, * @param bl: Object to change watk [PC] * @param sc: Object's status change information * @param watk: Initial watk - * @param display: If the status change is displayed in the status window * @return modified watk with cap_value(watk,0,USHRT_MAX) */ -unsigned short status_calc_watk(struct block_list *bl, struct status_change *sc, int watk, bool display) +static unsigned short status_calc_watk(struct block_list *bl, struct status_change *sc, int watk) { if(!sc || !sc->count) - return (unsigned short)cap_value(watk,0,USHRT_MAX); - - if(!display) { // Status Changes that are hidden in the status window. - if(sc->data[SC_WATER_BARRIER]) - watk -= sc->data[SC_WATER_BARRIER]->val2; - if(sc->data[SC_GT_CHANGE]) - watk += sc->data[SC_GT_CHANGE]->val2; - return (unsigned short)cap_value(watk,0,USHRT_MAX); - } + return cap_value(watk,0,USHRT_MAX); #ifndef RENEWAL if(sc->data[SC_IMPOSITIO]) @@ -5807,6 +5823,8 @@ unsigned short status_calc_watk(struct block_list *bl, struct status_change *sc, watk += sc->data[SC_VOLCANO]->val2; if(sc->data[SC_MERC_ATKUP]) watk += sc->data[SC_MERC_ATKUP]->val2; + if(sc->data[SC_WATER_BARRIER]) + watk -= sc->data[SC_WATER_BARRIER]->val2; #ifndef RENEWAL if(sc->data[SC_NIBELUNGEN]) { if (bl->type != BL_PC) @@ -5842,6 +5860,8 @@ unsigned short status_calc_watk(struct block_list *bl, struct status_change *sc, watk += (10 + 10 * sc->data[SC_BANDING]->val1) * sc->data[SC_BANDING]->val2; if(sc->data[SC_INSPIRATION]) watk += 40 * sc->data[SC_INSPIRATION]->val1 + 3 * sc->data[SC_INSPIRATION]->val2; + if(sc->data[SC_GT_CHANGE]) + watk += sc->data[SC_GT_CHANGE]->val2; if(sc->data[SC__ENERVATION]) watk -= watk * sc->data[SC__ENERVATION]->val2 / 100; if(sc->data[SC_STRIKING]) @@ -5883,10 +5903,10 @@ unsigned short status_calc_watk(struct block_list *bl, struct status_change *sc, * @param matk: Initial matk * @return modified matk with cap_value(matk,0,USHRT_MAX) */ -unsigned short status_calc_ematk(struct block_list *bl, struct status_change *sc, int matk) +static unsigned short status_calc_ematk(struct block_list *bl, struct status_change *sc, int matk) { if (!sc || !sc->count) - return (unsigned short)cap_value(matk,0,USHRT_MAX); + return cap_value(matk,0,USHRT_MAX); if (sc->data[SC_MATKPOTION]) matk += sc->data[SC_MATKPOTION]->val1; @@ -5930,20 +5950,12 @@ unsigned short status_calc_ematk(struct block_list *bl, struct status_change *sc * @param bl: Object to change matk [PC|MOB|HOM|MER|ELEM] * @param sc: Object's status change information * @param matk: Initial matk - * @param display: If the status change is displayed in the status window * @return modified matk with cap_value(matk,0,USHRT_MAX) */ -unsigned short status_calc_matk(struct block_list *bl, struct status_change *sc, int matk, bool display) +static unsigned short status_calc_matk(struct block_list *bl, struct status_change *sc, int matk) { if(!sc || !sc->count) - return (unsigned short)cap_value(matk,0,USHRT_MAX); - - if(!display) { // Status Changes that are hidden in the status window. - if(sc->data[SC_MINDBREAKER]) - matk += matk * sc->data[SC_MINDBREAKER]->val2 / 100; - return (unsigned short)cap_value(matk,0,USHRT_MAX); - } - + return cap_value(matk,0,USHRT_MAX); #ifndef RENEWAL /// Take note fixed value first before % modifiers [PRE-RENEWAL] if (sc->data[SC_MATKPOTION]) @@ -5979,6 +5991,8 @@ unsigned short status_calc_matk(struct block_list *bl, struct status_change *sc, matk += sc->data[SC_QUEST_BUFF3]->val1; if (sc->data[SC_MAGICPOWER] && sc->data[SC_MAGICPOWER]->val4) matk += matk * sc->data[SC_MAGICPOWER]->val3/100; + if (sc->data[SC_MINDBREAKER]) + matk += matk * sc->data[SC_MINDBREAKER]->val2/100; if (sc->data[SC_INCMATKRATE]) matk += matk * sc->data[SC_INCMATKRATE]->val1/100; if (sc->data[SC_MOONLITSERENADE]) @@ -5998,23 +6012,15 @@ unsigned short status_calc_matk(struct block_list *bl, struct status_change *sc, * @param bl: Object to change critical [PC|MOB|HOM|MER|ELEM] * @param sc: Object's status change information * @param critical: Initial critical - * @param display: If the status change is displayed in the status window * @return modified critical with cap_value(critical,10,USHRT_MAX) */ -signed short status_calc_critical(struct block_list *bl, struct status_change *sc, int critical, bool display) +static signed short status_calc_critical(struct block_list *bl, struct status_change *sc, int critical) { if(!sc || !sc->count) - return (short)cap_value(critical,10,SHRT_MAX); - if(!display) { // Status Changes that are hidden in the status window. - if (sc->data[SC_INCCRI]) { - if (bl->type == BL_PC && ((TBL_PC*)bl)->status.weapon == W_KATAR) // Gives double critical rate when using Katar weapons [Limestone] - critical += sc->data[SC_INCCRI]->val2 * 2; - else - critical += sc->data[SC_INCCRI]->val2; - } - return (short)cap_value(critical,10,SHRT_MAX); - } + return cap_value(critical,10,SHRT_MAX); + if (sc->data[SC_INCCRI]) + critical += sc->data[SC_INCCRI]->val2; if (sc->data[SC_CRIFOOD]) critical += sc->data[SC_CRIFOOD]->val1; if (sc->data[SC_EXPLOSIONSPIRITS]) @@ -6046,17 +6052,12 @@ signed short status_calc_critical(struct block_list *bl, struct status_change *s * @param bl: Object to change hit [PC|MOB|HOM|MER|ELEM] * @param sc: Object's status change information * @param hit: Initial hit - * @param display: If the status change is displayed in the status window * @return modified hit with cap_value(hit,1,USHRT_MAX) */ -signed short status_calc_hit(struct block_list *bl, struct status_change *sc, int hit, bool display) +static signed short status_calc_hit(struct block_list *bl, struct status_change *sc, int hit) { if(!sc || !sc->count) - return (short)cap_value(hit,1,SHRT_MAX); - - if(!display) { // Status Changes that are hidden in the status window. - return (short)cap_value(hit,1,SHRT_MAX); - } + return cap_value(hit,1,SHRT_MAX); if(sc->data[SC_INCHIT]) hit += sc->data[SC_INCHIT]->val1; @@ -6092,6 +6093,8 @@ signed short status_calc_hit(struct block_list *bl, struct status_change *sc, in hit -= hit * 50 / 100; if(sc->data[SC_ILLUSIONDOPING]) hit -= sc->data[SC_ILLUSIONDOPING]->val2; + if (sc->data[SC_MTF_ASPD]) + hit += sc->data[SC_MTF_ASPD]->val2; return (short)cap_value(hit,1,SHRT_MAX); } @@ -6101,10 +6104,9 @@ signed short status_calc_hit(struct block_list *bl, struct status_change *sc, in * @param bl: Object to change flee [PC|MOB|HOM|MER|ELEM] * @param sc: Object's status change information * @param flee: Initial flee - * @param display: If the status change is displayed in the status window * @return modified flee with cap_value(flee,1,USHRT_MAX) */ -signed short status_calc_flee(struct block_list *bl, struct status_change *sc, int flee, bool display) +static signed short status_calc_flee(struct block_list *bl, struct status_change *sc, int flee) { if( bl->type == BL_PC ) { if( map_flag_gvg(bl->m) ) @@ -6114,12 +6116,7 @@ signed short status_calc_flee(struct block_list *bl, struct status_change *sc, i } if(!sc || !sc->count) - return (short)cap_value(flee,1,SHRT_MAX); - - if(!display) { // Status Changes that are hidden in the status window. - return (short)cap_value(flee,1,SHRT_MAX); - } - + return cap_value(flee,1,SHRT_MAX); if(sc->data[SC_OVERED_BOOST]) //Should be final and unmodifiable by any means return sc->data[SC_OVERED_BOOST]->val2; if(sc->data[SC_TINDER_BREAKER] || sc->data[SC_TINDER_BREAKER2]) @@ -6211,17 +6208,12 @@ signed short status_calc_flee(struct block_list *bl, struct status_change *sc, i * @param bl: Object to change flee2 [PC|MOB|HOM|MER|ELEM] * @param sc: Object's status change information * @param flee2: Initial flee2 - * @param display: If the status change is displayed in the status window * @return modified flee2 with cap_value(flee2,10,USHRT_MAX) */ -signed short status_calc_flee2(struct block_list *bl, struct status_change *sc, int flee2, bool display) +static signed short status_calc_flee2(struct block_list *bl, struct status_change *sc, int flee2) { if(!sc || !sc->count) - return (short)cap_value(flee2,10,SHRT_MAX); - - if(!display) { // Status Changes that are hidden in the status window. - return (short)cap_value(flee2,10,SHRT_MAX); - } + return cap_value(flee2,10,SHRT_MAX); if(sc->data[SC_INCFLEE2]) flee2 += sc->data[SC_INCFLEE2]->val2; @@ -6238,30 +6230,13 @@ signed short status_calc_flee2(struct block_list *bl, struct status_change *sc, * @param bl: Object to change def [PC|MOB|HOM|MER|ELEM] * @param sc: Object's status change information * @param def: Initial def - * @param display: If the status change is displayed in the status window * @return modified def with cap_value(def,DEFTYPE_MIN,DEFTYPE_MAX) */ -defType status_calc_def(struct block_list *bl, struct status_change *sc, int def, bool display) +static defType status_calc_def(struct block_list *bl, struct status_change *sc, int def) { if(!sc || !sc->count) return (defType)cap_value(def,DEFTYPE_MIN,DEFTYPE_MAX); - if(!display) { // Status Changes that are hidden in the status window. -#ifdef RENEWAL - if(sc->data[SC_ASSUMPTIO]) - def <<= 1; // only eDEF is doubled -#endif - if(sc->data[SC_NEUTRALBARRIER]) - def += def * sc->data[SC_NEUTRALBARRIER]->val2 / 100; - if(sc->data[SC_FORCEOFVANGUARD]) - def += def * 2 * sc->data[SC_FORCEOFVANGUARD]->val1 / 100; - if(sc->data[SC_CAMOUFLAGE]) - def -= def * 5 * sc->data[SC_CAMOUFLAGE]->val3 / 100; - if(sc->data[SC_OVERED_BOOST] && bl->type == BL_PC) - def -= def * sc->data[SC_OVERED_BOOST]->val4 / 100; - return (defType)cap_value(def,DEFTYPE_MIN,DEFTYPE_MAX); - } - if(sc->data[SC_BERSERK]) return 0; if(sc->data[SC_BARRIER]) @@ -6311,6 +6286,8 @@ defType status_calc_def(struct block_list *bl, struct status_change *sc, int def def -= def * 10 / 100; if( sc->data[SC_ANALYZE] ) def -= def * (14 * sc->data[SC_ANALYZE]->val1) / 100; + if( sc->data[SC_NEUTRALBARRIER] ) + def += def * sc->data[SC_NEUTRALBARRIER]->val2 / 100; if( sc->data[SC_SHIELDSPELL_REF] && sc->data[SC_SHIELDSPELL_REF]->val1 == 2 ) def += sc->data[SC_SHIELDSPELL_REF]->val2; if( sc->data[SC_PRESTIGE] ) @@ -6323,6 +6300,8 @@ defType status_calc_def(struct block_list *bl, struct status_change *sc, int def def -= def * (10 + 10 * sc->data[SC_SATURDAYNIGHTFEVER]->val1) / 100; if( sc->data[SC_EARTHDRIVE] ) def -= def * 25 / 100; + if( sc->data[SC_CAMOUFLAGE] ) + def -= def * 5 * sc->data[SC_CAMOUFLAGE]->val3 / 100; if( sc->data[SC_SOLID_SKIN_OPTION] ) def += def * sc->data[SC_SOLID_SKIN_OPTION]->val2 / 100; if( sc->data[SC_ROCK_CRUSHER] ) @@ -6331,8 +6310,10 @@ defType status_calc_def(struct block_list *bl, struct status_change *sc, int def def += def * sc->data[SC_POWER_OF_GAIA]->val2 / 100; if(sc->data[SC_ASH]) def -= def * sc->data[SC_ASH]->val3/100; + if( sc->data[SC_OVERED_BOOST] && bl->type == BL_HOM ) + def -= def * sc->data[SC_OVERED_BOOST]->val4 / 100; - return (defType)cap_value(def,DEFTYPE_MIN,DEFTYPE_MAX); + return (defType)cap_value(def,DEFTYPE_MIN,DEFTYPE_MAX);; } /** @@ -6340,30 +6321,16 @@ defType status_calc_def(struct block_list *bl, struct status_change *sc, int def * @param bl: Object to change def2 [PC|MOB|HOM|MER|ELEM] * @param sc: Object's status change information * @param def2: Initial def2 - * @param display: If the status change is displayed in the status window * @return modified def2 with cap_value(def2,SHRT_MIN,SHRT_MAX) */ -signed short status_calc_def2(struct block_list *bl, struct status_change *sc, int def2, bool display) +static signed short status_calc_def2(struct block_list *bl, struct status_change *sc, int def2) { - if(!sc || !sc->count) { + if(!sc || !sc->count) #ifdef RENEWAL return (short)cap_value(def2,SHRT_MIN,SHRT_MAX); #else return (short)cap_value(def2,1,SHRT_MAX); #endif - } - - if(!display) { // Status Changes that are hidden in the status window. - if(sc->data[SC_CAMOUFLAGE]) - def2 -= def2 * 5 * sc->data[SC_CAMOUFLAGE]->val3 / 100; - if(sc->data[SC_GT_REVITALIZE]) - def2 += sc->data[SC_GT_REVITALIZE]->val4; -#ifdef RENEWAL - return (short)cap_value(def2,SHRT_MIN,SHRT_MAX); -#else - return (short)cap_value(def2,1,SHRT_MAX); -#endif - } if(sc->data[SC_BERSERK]) return 0; @@ -6411,6 +6378,8 @@ signed short status_calc_def2(struct block_list *bl, struct status_change *sc, i def2 -= def2 * sc->data[SC_PARALYSIS]->val2 / 100; if(sc->data[SC_EQC]) def2 -= def2 * sc->data[SC_EQC]->val2 / 100; + if( sc->data[SC_CAMOUFLAGE] ) + def2 -= def2 * 5 * sc->data[SC_CAMOUFLAGE]->val3 / 100; #ifdef RENEWAL return (short)cap_value(def2,SHRT_MIN,SHRT_MAX); @@ -6424,24 +6393,13 @@ signed short status_calc_def2(struct block_list *bl, struct status_change *sc, i * @param bl: Object to change mdef [PC|MOB|HOM|MER|ELEM] * @param sc: Object's status change information * @param mdef: Initial mdef - * @param display: If the status change is displayed in the status window * @return modified mdef with cap_value(mdef,DEFTYPE_MIN,DEFTYPE_MAX) */ -defType status_calc_mdef(struct block_list *bl, struct status_change *sc, int mdef, bool display) +static defType status_calc_mdef(struct block_list *bl, struct status_change *sc, int mdef) { if(!sc || !sc->count) return (defType)cap_value(mdef,DEFTYPE_MIN,DEFTYPE_MAX); - if(!display) { // Status Changes that are hidden in the status window. -#ifdef RENEWAL - if(sc->data[SC_ASSUMPTIO]) - mdef <<= 1; // only eMDEF is doubled -#endif - if(sc->data[SC_NEUTRALBARRIER]) - mdef += mdef * sc->data[SC_NEUTRALBARRIER]->val2 / 100; - return (defType)cap_value(mdef,DEFTYPE_MIN,DEFTYPE_MAX); - } - if(sc->data[SC_BERSERK]) return 0; if(sc->data[SC_BARRIER]) @@ -6466,6 +6424,8 @@ defType status_calc_mdef(struct block_list *bl, struct status_change *sc, int md mdef += 25 * mdef / 100; if(sc->data[SC_BURNING]) mdef -= 25 * mdef / 100; + if( sc->data[SC_NEUTRALBARRIER] ) + mdef += mdef * sc->data[SC_NEUTRALBARRIER]->val2 / 100; if(sc->data[SC_ANALYZE]) mdef -= mdef * ( 14 * sc->data[SC_ANALYZE]->val1 ) / 100; if(sc->data[SC_SYMPHONYOFLOVER]) @@ -6486,28 +6446,16 @@ defType status_calc_mdef(struct block_list *bl, struct status_change *sc, int md * @param bl: Object to change mdef2 [PC|MOB|HOM|MER|ELEM] * @param sc: Object's status change information * @param mdef2: Initial mdef2 - * @param display: If the status change is displayed in the status window * @return modified mdef2 with cap_value(mdef2,SHRT_MIN,SHRT_MAX) */ -signed short status_calc_mdef2(struct block_list *bl, struct status_change *sc, int mdef2, bool display) +static signed short status_calc_mdef2(struct block_list *bl, struct status_change *sc, int mdef2) { - if(!sc || !sc->count) { + if(!sc || !sc->count) #ifdef RENEWAL return (short)cap_value(mdef2,SHRT_MIN,SHRT_MAX); #else return (short)cap_value(mdef2,1,SHRT_MAX); #endif - } - - if(!display) { // Status Changes that are hidden in the status window. - if(sc->data[SC_MINDBREAKER]) - mdef2 -= mdef2 * sc->data[SC_MINDBREAKER]->val3 / 100; -#ifdef RENEWAL - return (short)cap_value(mdef2,SHRT_MIN,SHRT_MAX); -#else - return (short)cap_value(mdef2,1,SHRT_MAX); -#endif - } if(sc->data[SC_BERSERK]) return 0; @@ -6516,6 +6464,8 @@ signed short status_calc_mdef2(struct block_list *bl, struct status_change *sc, if(sc->data[SC_MDEFSET]) return sc->data[SC_MDEFSET]->val1; + if(sc->data[SC_MINDBREAKER]) + mdef2 -= mdef2 * sc->data[SC_MINDBREAKER]->val3/100; if(sc->data[SC_BURNING]) mdef2 -= mdef2 * 25 / 100; if(sc->data[SC_ANALYZE]) @@ -6535,7 +6485,7 @@ signed short status_calc_mdef2(struct block_list *bl, struct status_change *sc, * @param speed: Initial speed * @return modified speed with cap_value(speed,10,USHRT_MAX) */ -unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc, int speed) +static unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc, int speed) { TBL_PC* sd = BL_CAST(BL_PC, bl); int speed_rate = 100; @@ -6720,7 +6670,7 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc * False - percentage value * @return modified aspd */ -short status_calc_aspd(struct block_list *bl, struct status_change *sc, bool fixed) +static short status_calc_aspd(struct block_list *bl, struct status_change *sc, bool fixed) { int bonus = 0; @@ -6843,7 +6793,7 @@ short status_calc_aspd(struct block_list *bl, struct status_change *sc, bool fix * @param aspd: Object's current ASPD * @return modified aspd */ -short status_calc_fix_aspd(struct block_list *bl, struct status_change *sc, int aspd) +static short status_calc_fix_aspd(struct block_list *bl, struct status_change *sc, int aspd) { if (!sc || !sc->count) return cap_value(aspd, 0, 2000); @@ -6871,7 +6821,7 @@ short status_calc_fix_aspd(struct block_list *bl, struct status_change *sc, int * @param aspd_rate: Object's current ASPD * @return modified aspd_rate */ -short status_calc_aspd_rate(struct block_list *bl, struct status_change *sc, int aspd_rate) +static short status_calc_aspd_rate(struct block_list *bl, struct status_change *sc, int aspd_rate) { int i; @@ -7016,7 +6966,7 @@ short status_calc_aspd_rate(struct block_list *bl, struct status_change *sc, int * @param dmotion: Object's current damage delay * @return modified delay rate */ -unsigned short status_calc_dmotion(struct block_list *bl, struct status_change *sc, int dmotion) +static unsigned short status_calc_dmotion(struct block_list *bl, struct status_change *sc, int dmotion) { if( !sc || !sc->count || map_flag_gvg(bl->m) || map[bl->m].flag.battleground ) return cap_value(dmotion,0,USHRT_MAX); @@ -7037,7 +6987,7 @@ unsigned short status_calc_dmotion(struct block_list *bl, struct status_change * * @param maxhp: Object's current max HP * @return modified maxhp */ -unsigned int status_calc_maxhp(struct block_list *bl, uint64 maxhp) +static unsigned int status_calc_maxhp(struct block_list *bl, uint64 maxhp) { int rate = 100; @@ -7056,7 +7006,7 @@ unsigned int status_calc_maxhp(struct block_list *bl, uint64 maxhp) * @param maxsp: Object's current max SP * @return modified maxsp */ -unsigned int status_calc_maxsp(struct block_list *bl, uint64 maxsp) +static unsigned int status_calc_maxsp(struct block_list *bl, uint64 maxsp) { int rate = 100; @@ -7075,7 +7025,7 @@ unsigned int status_calc_maxsp(struct block_list *bl, uint64 maxsp) * @param element: Object's current element * @return new element */ -unsigned char status_calc_element(struct block_list *bl, struct status_change *sc, int element) +static unsigned char status_calc_element(struct block_list *bl, struct status_change *sc, int element) { if(!sc || !sc->count) return cap_value(element, 0, UCHAR_MAX); @@ -7103,7 +7053,7 @@ unsigned char status_calc_element(struct block_list *bl, struct status_change *s * @param lv: Object's current element level * @return new element level */ -unsigned char status_calc_element_lv(struct block_list *bl, struct status_change *sc, int lv) +static unsigned char status_calc_element_lv(struct block_list *bl, struct status_change *sc, int lv) { if(!sc || !sc->count) return cap_value(lv, 1, 4); @@ -7173,7 +7123,7 @@ unsigned char status_calc_attack_element(struct block_list *bl, struct status_ch * @param mode: Original mode * @return mode with cap_value(mode, 0, INT_MAX) */ -enum e_mode status_calc_mode(struct block_list *bl, struct status_change *sc, enum e_mode mode) +static enum e_mode status_calc_mode(struct block_list *bl, struct status_change *sc, enum e_mode mode) { if(!sc || !sc->count) return cap_value(mode, 0, INT_MAX); @@ -7757,7 +7707,7 @@ void status_change_init(struct block_list *bl) * through the timer (e.g. those that deal damage in regular intervals) * @param type: Status change (SC_*) *------------------------------------------*/ -int status_get_sc_interval(enum sc_type type) +static int status_get_sc_interval(enum sc_type type) { switch (type) { case SC_POISON: diff --git a/src/map/status.h b/src/map/status.h index 994ab6b36a..f09e8e8bde 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -2329,42 +2329,6 @@ void status_calc_misc(struct block_list *bl, struct status_data *status, int lev void status_calc_regen(struct block_list *bl, struct status_data *status, struct regen_data *regen); void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, struct status_change *sc); -unsigned short status_calc_str(struct block_list *bl, struct status_change *sc, int str); -unsigned short status_calc_agi(struct block_list *bl, struct status_change *sc, int agi); -unsigned short status_calc_vit(struct block_list *bl, struct status_change *sc, int vit); -unsigned short status_calc_int(struct block_list *bl, struct status_change *sc, int int_); -unsigned short status_calc_dex(struct block_list *bl, struct status_change *sc, int dex); -unsigned short status_calc_luk(struct block_list *bl, struct status_change *sc, int luk); -unsigned short status_calc_batk(struct block_list *bl, struct status_change *sc, int batk, bool display); -unsigned short status_calc_watk(struct block_list *bl, struct status_change *sc, int watk, bool display); -unsigned short status_calc_matk(struct block_list *bl, struct status_change *sc, int matk, bool display); -#ifdef RENEWAL -unsigned short status_calc_ematk(struct block_list *bl, struct status_change *sc, int matk); -#endif -signed short status_calc_hit(struct block_list *bl, struct status_change *sc, int hit, bool display); -signed short status_calc_critical(struct block_list *bl, struct status_change *sc, int critical, bool display); -signed short status_calc_flee(struct block_list *bl, struct status_change *sc, int flee, bool display); -signed short status_calc_flee2(struct block_list *bl, struct status_change *sc, int flee2, bool display); -defType status_calc_def(struct block_list *bl, struct status_change *sc, int def, bool display); -signed short status_calc_def2(struct block_list *, struct status_change *, int def2, bool display); -defType status_calc_mdef(struct block_list *bl, struct status_change *sc, int mdef, bool display); -signed short status_calc_mdef2(struct block_list *, struct status_change *, int mdef2, bool display); -unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc, int speed); -#ifdef RENEWAL_ASPD -short status_calc_aspd(struct block_list *bl, struct status_change *sc, bool fixed); -#endif -short status_calc_fix_aspd(struct block_list *bl, struct status_change *sc, int aspd); -short status_calc_aspd_rate(struct block_list *bl, struct status_change *sc, int aspd_rate); -unsigned short status_calc_dmotion(struct block_list *bl, struct status_change *sc, int dmotion); -unsigned int status_calc_maxhp(struct block_list *bl, uint64 maxhp); -unsigned int status_calc_maxsp(struct block_list *bl, uint64 maxsp); -unsigned char status_calc_element(struct block_list *bl, struct status_change *sc, int element); -unsigned char status_calc_element_lv(struct block_list *bl, struct status_change *sc, int lv); -enum e_mode status_calc_mode(struct block_list *bl, struct status_change *sc, enum e_mode mode); -int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type); -int status_get_spbonus(struct block_list *bl, enum e_status_bonus type); -unsigned int status_calc_maxhpsp_pc(struct map_session_data* sd, unsigned int stat, bool isHP); -int status_get_sc_interval(enum sc_type type); void status_calc_slave_mode(struct mob_data *md, struct mob_data *mmd); bool status_check_skilluse(struct block_list *src, struct block_list *target, uint16 skill_id, int flag);