aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authorBlood-Asp <bloodasphendrik@gmail.com>2017-11-05 18:00:30 +0100
committerGitHub <noreply@github.com>2017-11-05 18:00:30 +0100
commitc7851042b92f87874163dfa0cf9ba8914cc0aff8 (patch)
tree5950c15767ef278acdfb490db3e45b63027a4044 /src/main/java/gregtech
parente9313b519816e78d1fe30f65469608f0804eb064 (diff)
parentb3e0abed70d89c775f31f0449ad50de40b55c6cc (diff)
downloadGT5-Unofficial-c7851042b92f87874163dfa0cf9ba8914cc0aff8.tar.gz
GT5-Unofficial-c7851042b92f87874163dfa0cf9ba8914cc0aff8.tar.bz2
GT5-Unofficial-c7851042b92f87874163dfa0cf9ba8914cc0aff8.zip
Merge pull request #1254 from Antifluxfield/overflow_fix
Fix overflow when charging ultimate battery
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r--src/main/java/gregtech/api/items/GT_MetaBase_Item.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java
index c4203c7781..7798ce7dc9 100644
--- a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java
+++ b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java
@@ -256,7 +256,8 @@ public abstract class GT_MetaBase_Item extends GT_Generic_Item implements ISpeci
Long[] tStats = getElectricStats(aStack);
if (tStats == null || tStats[2] > aTier || !(tStats[3] == -1 || tStats[3] == -3 || (tStats[3] < 0 && aCharge == Integer.MAX_VALUE)) || aStack.stackSize != 1)
return 0;
- long tChargeBefore = getRealCharge(aStack), tNewCharge = aCharge == Integer.MAX_VALUE ? Long.MAX_VALUE : Math.min(Math.abs(tStats[0]), tChargeBefore + (aIgnoreTransferLimit ? (long) aCharge : Math.min(tStats[1], (long) aCharge)));
+ long tTransfer = aIgnoreTransferLimit ? (long) aCharge : Math.min(tStats[1], (long) aCharge);
+ long tChargeBefore = getRealCharge(aStack), tNewCharge = aCharge == Integer.MAX_VALUE ? Long.MAX_VALUE : Math.min(Math.abs(tStats[0]), Long.MAX_VALUE - tTransfer >= tChargeBefore ? tChargeBefore + tTransfer : Long.MAX_VALUE);
if (!aSimulate) setCharge(aStack, tNewCharge);
return tNewCharge - tChargeBefore;
}