diff --git a/src/map/battle.cpp b/src/map/battle.cpp index 6c6c81f4fd..ce13b0636d 100644 --- a/src/map/battle.cpp +++ b/src/map/battle.cpp @@ -1247,7 +1247,7 @@ bool battle_status_block_damage(struct block_list *src, struct block_list *targe (skill_id == 0 && (status_get_status_data(src))->rhw.ele == ELE_GHOST)) { if (skill_id == WL_SOULEXPANSION) - damage <<= 1; // If used against a player in White Imprison, the skill deals double damage. + damage *= 2; // If used against a player in White Imprison, the skill deals double damage. status_change_end(target, SC_WHITEIMPRISON); // Those skills do damage and removes effect } else { d->dmg_lv = ATK_BLOCK; @@ -1480,12 +1480,12 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam // Damage increasing effects #ifdef RENEWAL // Flat +400% damage from melee if (sc->getSCE(SC_KAITE) && (flag&(BF_SHORT|BF_MAGIC)) == BF_SHORT) - damage <<= 2; + damage *= 4; #endif if (sc->getSCE(SC_AETERNA) && skill_id != PF_SOULBURN) { if (src->type != BL_MER || !skill_id) - damage <<= 1; // Lex Aeterna only doubles damage of regular attacks from mercenaries + damage *= 2; // Lex Aeterna only doubles damage of regular attacks from mercenaries #ifndef RENEWAL if( skill_id != ASC_BREAKER || !(flag&BF_WEAPON) ) @@ -1537,7 +1537,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam } if (sc->getSCE(SC_SOUNDOFDESTRUCTION)) - damage <<= 1; + damage *= 2; if (sc->getSCE(SC_DARKCROW) && (flag&(BF_SHORT|BF_MAGIC)) == BF_SHORT) { int bonus = sc->getSCE(SC_DARKCROW)->val2; if( sc->getSCE(SC_BURNT) && status_get_element(src) == ELE_FIRE ) @@ -1560,7 +1560,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam if( map_flag_vs(bl->m) ) damage = (int64)damage*2/3; //Receive 66% damage else - damage >>= 1; //Receive 50% damage + damage /= 2; //Receive 50% damage } #endif @@ -1580,7 +1580,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam if(flag&BF_SKILL) //25% reduction damage -= damage * 25 / 100; else if ((flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON)) - damage >>= 2; //75% reduction + damage /= 4; //75% reduction } if (sc->getSCE(SC_SPORE_EXPLOSION) && (flag & BF_LONG) == BF_LONG) @@ -1768,7 +1768,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam break; case RC2_OGH_ATK_DEF: if (sc->getSCE(SC_GLASTHEIM_ATK)) - damage <<= 1; + damage *= 2; break; case RC2_BIO5_SWORDMAN_THIEF: if (sce = sc->getSCE(SC_LHZ_DUN_N1)) @@ -2795,7 +2795,7 @@ static bool is_attack_critical(struct Damage* wd, struct block_list *src, struct cri -= tstatus->luk * ((!sd && tsd) ? 3 : 2); if( tsc && tsc->getSCE(SC_SLEEP) ) - cri <<= 1; + cri *= 2; switch(skill_id) { case 0: @@ -2808,7 +2808,7 @@ static bool is_attack_critical(struct Damage* wd, struct block_list *src, struct (battle_config.auto_counter_type&src->type)) return true; else - cri <<= 1; + cri *= 2; break; case SN_SHARPSHOOTING: case MA_SHARPSHOOTING: @@ -4062,7 +4062,7 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list * case AS_SONICBLOW: #ifdef RENEWAL skillratio += 100 + 100 * skill_lv; - if (tstatus->hp < tstatus->max_hp >> 1) + if (tstatus->hp < (tstatus->max_hp / 2)) skillratio += skillratio / 2; #else skillratio += 300 + 40 * skill_lv; @@ -4245,7 +4245,7 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list * case LK_JOINTBEAT: skillratio += 10 * skill_lv - 50; if (wd->miscflag & BREAK_NECK || (tsc && tsc->getSCE(SC_JOINTBEAT) && tsc->getSCE(SC_JOINTBEAT)->val2 & BREAK_NECK)) // The 2x damage is only for the BREAK_NECK ailment. - skillratio <<= 1; + skillratio *= 2; break; #ifdef RENEWAL // Renewal: skill ratio applies to entire damage [helvetica] @@ -4839,7 +4839,7 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list * if (sd) { skillratio += pc_checkskill(sd, WM_LESSON) * 50; // !TODO: Confirm bonus if (skill_check_pc_partner(sd, skill_id, &skill_lv, AREA_SIZE, 0) > 0) - skillratio <<= 1; + skillratio *= 2; } RE_LVL_DMOD(100); break; @@ -5053,7 +5053,7 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list * case SU_PICKYPECK: case SU_PICKYPECK_DOUBLE_ATK: skillratio += 100 + 100 * skill_lv; - if (status_get_hp(target) < status_get_max_hp(target) >> 1) + if (status_get_hp(target) < (status_get_max_hp(target) / 2)) skillratio *= 2; if (sd && pc_checkskill(sd, SU_SPIRITOFLIFE)) skillratio += skillratio * status_get_hp(src) / status_get_max_hp(src); @@ -6192,7 +6192,7 @@ static struct Damage initialize_weapon_data(struct block_list *src, struct block wd.amotion = (skill_id && skill_get_inf(skill_id)&INF_GROUND_SKILL)?0:sstatus->amotion; //Amotion should be 0 for ground skills. // counter attack DOES obey ASPD delay on official, uncomment if you want the old (bad) behavior [helvetica] /*if(skill_id == KN_AUTOCOUNTER) - wd.amotion >>= 1; */ + wd.amotion /= 2; */ wd.dmotion = tstatus->dmotion; wd.blewcount =skill_get_blewcount(skill_id,skill_lv); wd.miscflag = wflag; @@ -8088,7 +8088,8 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list * md.damage = (int)((int64)7*tstatus->vit*sstatus->int_*sstatus->int_ / (10*(tstatus->vit+sstatus->int_))); else md.damage = 0; - if (tsd) md.damage>>=1; + if (tsd) + md.damage /= 2; #endif break; case NJ_ZENYNAGE: diff --git a/src/map/mob.cpp b/src/map/mob.cpp index 00624a213b..0716d42503 100644 --- a/src/map/mob.cpp +++ b/src/map/mob.cpp @@ -2618,7 +2618,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) //TODO: Determine if this should go before calculating the MVP player instead of after. if (UINT_MAX - md->dmglog[0].dmg > md->tdmg) { md->tdmg += md->dmglog[0].dmg; - md->dmglog[0].dmg<<=1; + md->dmglog[0].dmg *= 2; } else { md->dmglog[0].dmg+= UINT_MAX - md->tdmg; md->tdmg = UINT_MAX; diff --git a/src/map/pc.cpp b/src/map/pc.cpp index 7f08340594..c5223a71a3 100755 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -10389,7 +10389,7 @@ int pc_itemheal(map_session_data *sd, t_itemid itemid, int hp, int sp) int bonus, tmp, penalty = 0; if (hp) { - bonus = 100 + (sd->battle_status.vit << 1) + pc_checkskill(sd, SM_RECOVERY) * 10 + pc_checkskill(sd, AM_LEARNINGPOTION) * 5; + bonus = 100 + (sd->battle_status.vit * 2) + pc_checkskill(sd, SM_RECOVERY) * 10 + pc_checkskill(sd, AM_LEARNINGPOTION) * 5; // A potion produced by an Alchemist in the Fame Top 10 gets +50% effect [DracoRPG] if (potion_flag == 2) { bonus += bonus * 50 / 100; @@ -10425,7 +10425,7 @@ int pc_itemheal(map_session_data *sd, t_itemid itemid, int hp, int sp) hp = tmp; } if (sp) { - bonus = 100 + (sd->battle_status.int_ << 1) + pc_checkskill(sd, MG_SRECOVERY) * 10 + pc_checkskill(sd, AM_LEARNINGPOTION) * 5; + bonus = 100 + (sd->battle_status.int_ * 2) + pc_checkskill(sd, MG_SRECOVERY) * 10 + pc_checkskill(sd, AM_LEARNINGPOTION) * 5; // A potion produced by an Alchemist in the Fame Top 10 gets +50% effect [DracoRPG] if (potion_flag == 2) bonus += bonus * 50 / 100; diff --git a/src/map/pc.hpp b/src/map/pc.hpp index addb6d3553..b9a27bbe95 100644 --- a/src/map/pc.hpp +++ b/src/map/pc.hpp @@ -1234,7 +1234,7 @@ enum e_mado_type : uint16 { #define pc_leftside_def(sd) ((sd)->battle_status.def) #define pc_rightside_def(sd) ((sd)->battle_status.def2) #define pc_leftside_mdef(sd) ((sd)->battle_status.mdef) - #define pc_rightside_mdef(sd) ( (sd)->battle_status.mdef2 - ((sd)->battle_status.vit>>1) ) + #define pc_rightside_mdef(sd) ( (sd)->battle_status.mdef2 - ((sd)->battle_status.vit / 2) ) #define pc_leftside_matk(sd) \ (\ ((sd)->sc.getSCE(SC_MAGICPOWER) && (sd)->sc.getSCE(SC_MAGICPOWER)->val4) \ diff --git a/src/map/pet.cpp b/src/map/pet.cpp index 5861481185..f0da9f335a 100644 --- a/src/map/pet.cpp +++ b/src/map/pet.cpp @@ -1630,7 +1630,7 @@ int pet_food(map_session_data *sd, struct pet_data *pd) k = pet_db_ptr->r_hungry; if( pd->pet.hungry > PET_HUNGRY_NEUTRAL) { - k >>= 1; + k /= 2; k = max(k, 1); } @@ -1753,7 +1753,7 @@ static int pet_ai_sub_hard(struct pet_data *pd, map_session_data *sd, t_tick tic if (DIFF_TICK(tick, pd->ud.canmove_tick) < 0) return 0; // Can't move yet. - pd->status.speed = (sd->battle_status.speed>>1); + pd->status.speed = (sd->battle_status.speed / 2); if(pd->status.speed == 0) pd->status.speed = 1; diff --git a/src/map/skill.cpp b/src/map/skill.cpp index 059c8bf483..e7646ddbc5 100755 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -601,7 +601,7 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk } if( (!heal || (target && target->type == BL_MER)) && skill_id != NPC_EVILLAND ) - hp >>= 1; + hp /= 2; if (sd) { if (pc_checkskill(sd, SU_POWEROFSEA) > 0) { @@ -2704,7 +2704,7 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list * //Physical range attacks only trigger autospells half of the time if ((attack_type&(BF_WEAPON|BF_LONG)) == (BF_WEAPON|BF_LONG)) - autospl_rate>>=1; + autospl_rate /= 2; dstsd->state.autocast = 1; if ( skill_isNotOk(autospl_skill_id, dstsd) ) { @@ -9224,13 +9224,13 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui } else { if( potion_hp > 0 ) { hp = potion_hp * (100 + pc_checkskill(sd,AM_POTIONPITCHER)*10 + pc_checkskill(sd,AM_LEARNINGPOTION)*5)*bonus/10000; - hp = hp * (100 + (tstatus->vit<<1)) / 100; + hp = hp * (100 + (tstatus->vit * 2)) / 100; if( dstsd ) hp = hp * (100 + pc_checkskill(dstsd,SM_RECOVERY)*10) / 100; } if( potion_sp > 0 ) { sp = potion_sp * (100 + pc_checkskill(sd,AM_POTIONPITCHER)*10 + pc_checkskill(sd,AM_LEARNINGPOTION)*5)*bonus/10000; - sp = sp * (100 + (tstatus->int_<<1)) / 100; + sp = sp * (100 + (tstatus->int_ * 2)) / 100; if( dstsd ) sp = sp * (100 + pc_checkskill(dstsd,MG_SRECOVERY)*10) / 100; } @@ -9257,7 +9257,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui default: hp = 325; break; } hp = (hp + rnd()%(skill_lv*20+1)) * (150 + skill_lv*10) / 100; - hp = hp * (100 + (tstatus->vit<<1)) / 100; + hp = hp * (100 + (tstatus->vit * 2)) / 100; if( dstsd ) hp = hp * (100 + pc_checkskill(dstsd,SM_RECOVERY)*10) / 100; } @@ -9520,7 +9520,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui status_zap(bl, hp, sp); if (hp && skill_lv >= 5) - hp>>=1; //Recover half damaged HP at level 5 [Skotlex] + hp /= 2; //Recover half damaged HP at level 5 [Skotlex] else hp = 0; @@ -10058,8 +10058,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui break; if (potion_hp || potion_sp) { int hp = potion_hp, sp = potion_sp; - hp = hp * (100 + (tstatus->vit<<1))/100; - sp = sp * (100 + (tstatus->int_<<1))/100; + hp = hp * (100 + (tstatus->vit * 2))/100; + sp = sp * (100 + (tstatus->int_ * 2))/100; if (dstsd) { if (hp) hp = hp * (100 + pc_checkskill(dstsd,SM_RECOVERY)*10 + pc_skillheal2_bonus(dstsd, skill_id))/100; @@ -21979,6 +21979,7 @@ bool skill_produce_mix(map_session_data *sd, uint16 skill_id, t_itemid nameid, i default: if (skill_produce_db[idx].itemlv > 10 && skill_produce_db[idx].itemlv <= 20 ) { //Cooking items. clif_specialeffect(&sd->bl, EF_COOKING_FAIL, AREA); + // todo: What in the world is this calculation pc_setparam(sd, SP_COOKMASTERY, sd->cook_mastery - ( 1 << ((skill_produce_db[idx].itemlv - 11) / 2) ) - ( ( ( 1 << ((skill_produce_db[idx].itemlv - 11) / 2) ) >> 1 ) * 3 )); } break; diff --git a/src/map/status.cpp b/src/map/status.cpp index 8b0a7daa87..43960b3da6 100644 --- a/src/map/status.cpp +++ b/src/map/status.cpp @@ -1513,7 +1513,7 @@ int status_damage(struct block_list *src,struct block_list *target,int64 dhp, in } } #endif - if(sc->getSCE(SC_DANCING) && (unsigned int)hp > status->max_hp>>2) + if(sc->getSCE(SC_DANCING) && hp > (status->max_hp / 4)) status_change_end(target, SC_DANCING); if(sc->getSCE(SC_CLOAKINGEXCEED) && --(sc->getSCE(SC_CLOAKINGEXCEED)->val2) <= 0) status_change_end(target, SC_CLOAKINGEXCEED); @@ -1533,7 +1533,7 @@ int status_damage(struct block_list *src,struct block_list *target,int64 dhp, in if (sc && hp && status->hp) { if (sc->getSCE(SC_AUTOBERSERK) && (!sc->getSCE(SC_PROVOKE) || !sc->getSCE(SC_PROVOKE)->val4) && - status->hp < status->max_hp>>2) + status->hp < status->max_hp / 4) sc_start4(src,target,SC_PROVOKE,100,10,0,0,1,0); if (sc->getSCE(SC_BERSERK) && status->hp <= 100) status_change_end(target, SC_BERSERK); @@ -1751,7 +1751,7 @@ int status_heal(struct block_list *bl,int64 hhp,int64 hsp, int64 hap, int flag) sc->getSCE(SC_AUTOBERSERK) && sc->getSCE(SC_PROVOKE) && sc->getSCE(SC_PROVOKE)->val4==1 && - status->hp>=status->max_hp>>2 + status->hp >= status->max_hp / 4 ) // End auto berserk. status_change_end(bl, SC_PROVOKE); @@ -2598,7 +2598,7 @@ void status_calc_misc(struct block_list *bl, struct status_data *status, int lev status->def2 = cap_value(stat, 0, SHRT_MAX); // Mdef2 stat = status->mdef2; - stat += status->int_ + (status->vit>>1); + stat += status->int_ + (status->vit / 2); status->mdef2 = cap_value(stat, 0, SHRT_MAX); #endif @@ -2738,18 +2738,18 @@ int status_calc_mob_(struct mob_data* md, uint8 opt) 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; + status->max_hp /= 2; + status->max_sp /= 2; 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; + status->str /= 2; + status->agi /= 2; + status->vit /= 2; + status->int_ /= 2; + status->dex /= 2; + status->luk /= 2; if (!status->str) status->str = 1; if (!status->agi) status->agi = 1; if (!status->vit) status->vit = 1; @@ -2757,16 +2757,16 @@ int status_calc_mob_(struct mob_data* md, uint8 opt) if (!status->dex) status->dex = 1; if (!status->luk) status->luk = 1; } else if (md->special_state.size == SZ_BIG) { - status->max_hp <<= 1; - status->max_sp <<= 1; + status->max_hp *= 2; + status->max_sp *= 2; 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; + status->str *= 2; + status->agi *= 2; + status->vit *= 2; + status->int_ *= 2; + status->dex *= 2; + status->luk *= 2; } } @@ -4208,7 +4208,7 @@ int status_calc_pc_sub(map_session_data* sd, uint8 opt) } else { if((sd->class_&MAPID_BASEMASK) == MAPID_NOVICE && !(sd->class_&JOBL_2) && battle_config.restart_hp_rate < 50) - base_status->hp = base_status->max_hp>>1; + base_status->hp = base_status->max_hp / 2; else base_status->hp = (int64)base_status->max_hp * battle_config.restart_hp_rate/100; if(!base_status->hp) @@ -4336,7 +4336,7 @@ int status_calc_pc_sub(map_session_data* sd, uint8 opt) if((skill=pc_checkskill(sd,TF_MISS))>0) base_status->flee += skill*(sd->class_&JOBL_2 && (sd->class_&MAPID_BASEMASK) == MAPID_THIEF? 4 : 3); if((skill=pc_checkskill(sd,MO_DODGE))>0) - base_status->flee += (skill*3)>>1; + base_status->flee += (skill*3) / 2; if (pc_checkskill(sd, SU_POWEROFLIFE) > 0) base_status->flee += 20; if ((skill = pc_checkskill(sd, SHC_SHADOW_SENSE)) > 0) @@ -5105,7 +5105,7 @@ void status_calc_regen(struct block_list *bl, struct status_data *status, struct val = 1 + (status->int_/6) + (status->max_sp/100); if( status->int_ >= 120 ) - val += ((status->int_-120)>>1) + 4; + val += ((status->int_-120) / 2) + 4; if( sd && sd->sprecov_rate != 100 ) val = val*sd->sprecov_rate/100; @@ -5724,7 +5724,7 @@ void status_calc_bl_main(struct block_list *bl, std::bitset flag) #ifdef RENEWAL + (int)( ((float)status->dex/5 - (float)b_status->dex/5) + ((float)status->vit/5 - (float)b_status->vit/5) ) #else - + ((status->vit - b_status->vit)>>1) + + ((status->vit - b_status->vit) / 2) #endif ); } @@ -5754,7 +5754,7 @@ void status_calc_bl_main(struct block_list *bl, std::bitset flag) /// After status_calc_critical so the bonus is applied despite if you have or not a sc bugreport:5240 if (sd) { if (sd->status.weapon == W_KATAR) - status->cri <<= 1; + status->cri *= 2; } } @@ -7558,7 +7558,7 @@ static defType status_calc_def(struct block_list *bl, status_change *sc, int def if (bl->type == BL_PC) return 0; else - return def >>= 1; + return def /= 2; } if(sc->getSCE(SC_DEFSET)) return sc->getSCE(SC_DEFSET)->val1; @@ -7583,15 +7583,15 @@ static defType status_calc_def(struct block_list *bl, status_change *sc, int def if(sc->getSCE(SC_STONEHARDSKIN)) def += sc->getSCE(SC_STONEHARDSKIN)->val1; if(sc->getSCE(SC_STONE)) - def >>=1; + def /= 2; if(sc->getSCE(SC_FREEZE)) - def >>=1; + def /= 2; if(sc->getSCE(SC_SIGNUMCRUCIS)) def -= def * sc->getSCE(SC_SIGNUMCRUCIS)->val2/100; if(sc->getSCE(SC_CONCENTRATION)) def -= def * sc->getSCE(SC_CONCENTRATION)->val4/100; if(sc->getSCE(SC_SKE)) - def >>=1; + def /= 2; if(sc->getSCE(SC_PROVOKE) && bl->type != BL_PC) // Provoke doesn't alter player defense-> def -= def * sc->getSCE(SC_PROVOKE)->val3/100; if(sc->getSCE(SC_STRIPSHIELD) && bl->type != BL_PC) // Player doesn't have def reduction only equip removed @@ -7737,7 +7737,7 @@ static defType status_calc_mdef(struct block_list *bl, status_change *sc, int md if (bl->type == BL_PC) return 0; else - return mdef >>= 1; + return mdef / 2; } if(sc->getSCE(SC_MDEFSET)) return sc->getSCE(SC_MDEFSET)->val1; @@ -9408,7 +9408,7 @@ t_tick status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_ tick_def2 = status->luk*100; } else { // For monsters: 30000 - 200*vit - tick>>=1; + tick /= 2; tick_def = (status->vit*200)/3; } #else @@ -9512,7 +9512,7 @@ t_tick status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_ break; case SC_DECREASEAGI: if (sd) - tick >>= 1; // Half duration for players. + tick /= 2; // Half duration for players. sc_def2 = status->mdef*100; break; case SC_ANKLE: @@ -10496,7 +10496,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty tick = INFINITE_TICK; break; case SC_AUTOBERSERK: - if (status->hp < status->max_hp>>2 && + if (status->hp < status->max_hp / 4 && (!sc->getSCE(SC_PROVOKE) || sc->getSCE(SC_PROVOKE)->val4==0)) sc_start4(src,bl,SC_PROVOKE,100,10,0,0,1,60000); tick = INFINITE_TICK; @@ -10785,10 +10785,10 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty 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) { + if (status->hp > status->max_hp / 4) { 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 (status->hp - diff < status->max_hp / 4) + diff = status->hp - (status->max_hp / 4); status_zap(bl, diff, 0); } // Fall through @@ -10909,7 +10909,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty map_session_data *tsd; int i; for( i = val2 = 0; i < val1; i++) { - int t = 5-(i>>1); + int t = 5-(i / 2); val2 += (t < 0)? 1:t; } @@ -12255,7 +12255,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty case SC_TUNAPARTY: val2 = (status->max_hp * (val1 * 10) / 100); // Max HP% to absorb if (sd && pc_checkskill(sd, SU_SPIRITOFSEA)) - val2 <<= 1; // Double the shield life + val2 *= 2; // Double the shield life break; case SC_HISS: val2 = 50; // Perfect Dodge @@ -14967,7 +14967,7 @@ static int status_natural_heal(struct block_list* bl, va_list args) if(flag&(RGN_SHP)) { // Sitting HP regen rate = (int)(natural_heal_diff_tick * (sregen->rate.hp / 100.)); if (regen->state.overweight) - rate >>= 1; // Half as fast when overweight. + rate /= 2; // Half as fast when overweight. sregen->tick.hp += rate; while(sregen->tick.hp >= (unsigned int)battle_config.natural_heal_skill_interval) { sregen->tick.hp -= battle_config.natural_heal_skill_interval; @@ -14980,7 +14980,7 @@ static int status_natural_heal(struct block_list* bl, va_list args) if(flag&(RGN_SSP)) { // Sitting SP regen rate = (int)(natural_heal_diff_tick * (sregen->rate.sp / 100.)); if (regen->state.overweight) - rate >>= 1; // Half as fast when overweight. + rate /= 2; // Half as fast when overweight. sregen->tick.sp += rate; while(sregen->tick.sp >= (unsigned int)battle_config.natural_heal_skill_interval) { sregen->tick.sp -= battle_config.natural_heal_skill_interval;