summaryrefslogtreecommitdiff
path: root/src/map/battle.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-03 17:15:24 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-03 17:15:24 +0000
commit118828fdec8881c696c3fe70cf07c1115565638a (patch)
tree5cc6a306b4c807a97d21001c4a447b389e869288 /src/map/battle.c
parent5794cdd9927a30bb094a144f052dec4883b62412 (diff)
downloadhercules-118828fdec8881c696c3fe70cf07c1115565638a.tar.gz
hercules-118828fdec8881c696c3fe70cf07c1115565638a.tar.bz2
hercules-118828fdec8881c696c3fe70cf07c1115565638a.tar.xz
hercules-118828fdec8881c696c3fe70cf07c1115565638a.zip
- Added a damage cap to CR_ACIDDEMONSTRATION of INT_MAX/2 to prevent overflows. It is not capped to INT_MAX because damage increasing skills would cause it to still over flow afterwards.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8107 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/battle.c')
-rw-r--r--src/map/battle.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index 0e53bb9e8..7a7a1d58b 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -2620,6 +2620,10 @@ struct Damage battle_calc_misc_attack(
case CR_ACIDDEMONSTRATION: // updated the formula based on a Japanese formula found to be exact [Reddozen]
md.damage = 7*tstatus->vit*sstatus->int_*sstatus->int_ / (10*(tstatus->vit+sstatus->int_));
if (tsd) md.damage>>=1;
+ if (md.damage < 0 || md.damage > INT_MAX>>1)
+ //Overflow prevention, will anyone whine if I cap it to a few billion?
+ //Not capped to INT_MAX to give some room for further damage increase.
+ md.damage = INT_MAX>>1;
break;
case NJ_ZENYNAGE:
md.damage = skill_get_zeny(skill_num ,skill_lv);