From: <mp...@us...> - 2011-07-05 09:04:46
|
Revision: 8631 http://freecol.svn.sourceforge.net/freecol/?rev=8631&view=rev Author: mpope Date: 2011-07-05 09:04:39 +0000 (Tue, 05 Jul 2011) Log Message: ----------- Magic number cleanup: 100 -> CARGO_SIZE. Modified Paths: -------------- freecol/trunk/src/net/sf/freecol/client/gui/action/LoadAction.java freecol/trunk/src/net/sf/freecol/client/gui/panel/DefaultTransferHandler.java freecol/trunk/src/net/sf/freecol/client/gui/panel/DragListener.java freecol/trunk/src/net/sf/freecol/client/gui/panel/MarketLabel.java freecol/trunk/src/net/sf/freecol/common/model/IndianSettlement.java freecol/trunk/src/net/sf/freecol/common/model/Player.java freecol/trunk/src/net/sf/freecol/common/model/Settlement.java freecol/trunk/src/net/sf/freecol/common/model/SettlementType.java freecol/trunk/src/net/sf/freecol/common/model/Unit.java freecol/trunk/src/net/sf/freecol/server/ai/AIColony.java freecol/trunk/src/net/sf/freecol/server/ai/AIGoods.java freecol/trunk/src/net/sf/freecol/server/ai/GoodsWish.java freecol/trunk/src/net/sf/freecol/server/ai/mission/IndianDemandMission.java freecol/trunk/src/net/sf/freecol/server/ai/mission/TransportMission.java freecol/trunk/src/net/sf/freecol/server/control/InGameController.java Modified: freecol/trunk/src/net/sf/freecol/client/gui/action/LoadAction.java =================================================================== --- freecol/trunk/src/net/sf/freecol/client/gui/action/LoadAction.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/client/gui/action/LoadAction.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -27,8 +27,10 @@ import net.sf.freecol.client.gui.GUI; import net.sf.freecol.common.model.Colony; import net.sf.freecol.common.model.Goods; +import net.sf.freecol.common.model.GoodsContainer; import net.sf.freecol.common.model.Unit; + /** * An action for filling the holds of the currently selected unit. */ @@ -75,8 +77,10 @@ Iterator<Goods> goodsIterator = unit.getGoodsIterator(); while (goodsIterator.hasNext()) { Goods goods = goodsIterator.next(); - if (goods.getAmount() < 100 && colony.getGoodsCount(goods.getType()) > 0) { - int amount = Math.min(100 - goods.getAmount(), colony.getGoodsCount(goods.getType())); + if (goods.getAmount() < GoodsContainer.CARGO_SIZE + && colony.getGoodsCount(goods.getType()) > 0) { + int amount = Math.min(GoodsContainer.CARGO_SIZE - goods.getAmount(), + colony.getGoodsCount(goods.getType())); Goods newGoods = new Goods(goods.getGame(), colony, goods.getType(), amount); getFreeColClient().getInGameController().loadCargo(newGoods, unit); } Modified: freecol/trunk/src/net/sf/freecol/client/gui/panel/DefaultTransferHandler.java =================================================================== --- freecol/trunk/src/net/sf/freecol/client/gui/panel/DefaultTransferHandler.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/client/gui/panel/DefaultTransferHandler.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -56,6 +56,7 @@ import net.sf.freecol.common.model.AbstractGoods; import net.sf.freecol.common.model.EquipmentType; import net.sf.freecol.common.model.Goods; +import net.sf.freecol.common.model.GoodsContainer; import net.sf.freecol.common.model.GoodsType; import net.sf.freecol.common.model.Modifier; import net.sf.freecol.common.model.StringTemplate; @@ -342,8 +343,8 @@ return false; } label.getGoods().setAmount(amount); - } else if (label.getGoods().getAmount() > 100) { - label.getGoods().setAmount(100); + } else if (label.getGoods().getAmount() > GoodsContainer.CARGO_SIZE) { + label.getGoods().setAmount(GoodsContainer.CARGO_SIZE); } /* Modified: freecol/trunk/src/net/sf/freecol/client/gui/panel/DragListener.java =================================================================== --- freecol/trunk/src/net/sf/freecol/client/gui/panel/DragListener.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/client/gui/panel/DragListener.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -49,6 +49,7 @@ import net.sf.freecol.common.model.Europe; import net.sf.freecol.common.model.GameOptions; import net.sf.freecol.common.model.Goods; +import net.sf.freecol.common.model.GoodsContainer; import net.sf.freecol.common.model.GoodsType; import net.sf.freecol.common.model.StringTemplate; import net.sf.freecol.common.model.Unit; @@ -146,7 +147,7 @@ ((GoodsLabel) comp).setPartialChosen(false); } else if (comp instanceof MarketLabel) { ((MarketLabel) comp).setPartialChosen(false); - ((MarketLabel) comp).setAmount(100); + ((MarketLabel) comp).setAmount(GoodsContainer.CARGO_SIZE); } } Modified: freecol/trunk/src/net/sf/freecol/client/gui/panel/MarketLabel.java =================================================================== --- freecol/trunk/src/net/sf/freecol/client/gui/panel/MarketLabel.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/client/gui/panel/MarketLabel.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -28,6 +28,7 @@ import net.sf.freecol.client.gui.Canvas; import net.sf.freecol.client.gui.i18n.Messages; import net.sf.freecol.common.model.AbstractGoods; +import net.sf.freecol.common.model.GoodsContainer; import net.sf.freecol.common.model.GoodsType; import net.sf.freecol.common.model.Market; import net.sf.freecol.common.model.Player; @@ -63,7 +64,8 @@ * @param isSmall The image will be smaller if set to <code>true</code>. */ public MarketLabel(GoodsType type, Market market, Canvas parent, boolean isSmall) { - super(new AbstractGoods(type, 100), parent, isSmall); + super(new AbstractGoods(type, GoodsContainer.CARGO_SIZE), + parent, isSmall); if (market == null) { throw new NullPointerException(); } Modified: freecol/trunk/src/net/sf/freecol/common/model/IndianSettlement.java =================================================================== --- freecol/trunk/src/net/sf/freecol/common/model/IndianSettlement.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/common/model/IndianSettlement.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -105,31 +105,44 @@ /** * Stores the alarm levels. <b>Only used by AI.</b> - * "Alarm" means: Tension-with-respect-to-a-player-from-an-IndianSettlement. + * "Alarm" means: Tension with respect to a player from an + * IndianSettlement. * Alarm is overloaded with the concept of "contact". If a settlement * has never been contacted by a player, alarm.get(player) will be null. * Acts causing contact initialize this variable. */ - private java.util.Map<Player, Tension> alarm = new HashMap<Player, Tension>(); + private java.util.Map<Player, Tension> alarm + = new HashMap<Player, Tension>(); - // sort goods types descending by price + // Sort goods types descending by price. private final Comparator<GoodsType> wantedGoodsComparator = new Comparator<GoodsType>() { public int compare(GoodsType goodsType1, GoodsType goodsType2) { - return getPriceToBuy(goodsType2, 100) - - getPriceToBuy(goodsType1, 100); + return getPriceToBuy(goodsType2, GoodsContainer.CARGO_SIZE) + - getPriceToBuy(goodsType1, GoodsContainer.CARGO_SIZE); } }; - // sort goods descending by amount and price when amounts are equal + // Sort goods with new world goods first, then by price, and amount. private final Comparator<Goods> exportGoodsComparator = new Comparator<Goods>() { public int compare(Goods goods1, Goods goods2) { - if (goods2.getAmount() == goods1.getAmount()) { - return getPriceToBuy(goods2) - getPriceToBuy(goods1); - } else { - return goods2.getAmount() - goods1.getAmount(); + int cmp; + GoodsType t1 = goods1.getType(); + GoodsType t2 = goods2.getType(); + cmp = (((t2.isNewWorldGoodsType()) ? 1 : 0) + - ((t1.isNewWorldGoodsType()) ? 1 : 0)); + if (cmp == 0) { + int a1 = Math.min(goods2.getAmount(), + GoodsContainer.CARGO_SIZE); + int a2 = Math.min(goods1.getAmount(), + GoodsContainer.CARGO_SIZE); + cmp = getPriceToBuy(t2, a2) - getPriceToBuy(t1, a1); + if (cmp == 0) { + cmp = a2 - a1; + } } + return cmp; } }; @@ -755,7 +768,10 @@ * @return The price. */ public int getPriceToBuy(GoodsType type, int amount) { - if (amount > 100) throw new IllegalArgumentException("Amount > 100"); + if (amount > GoodsContainer.CARGO_SIZE) { + throw new IllegalArgumentException("Amount > " + + GoodsContainer.CARGO_SIZE); + } int price = 0; if (type.isMilitaryGoods()) { @@ -913,8 +929,9 @@ * @return The price. */ public int getPriceToSell(GoodsType type, int amount) { - if (amount > 100) { - throw new IllegalArgumentException("Too many goods"); + if (amount > GoodsContainer.CARGO_SIZE) { + throw new IllegalArgumentException("Amount > " + + GoodsContainer.CARGO_SIZE); } final int full = GOODS_BASE_PRICE + getType().getTradeBonus(); @@ -938,23 +955,15 @@ * @return A list of goods to sell. */ public List<Goods> getSellGoods(int limit) { + List<Goods> result = new ArrayList<Goods>(); List<Goods> settlementGoods = getCompactGoods(); - for (Goods goods : settlementGoods) { - if (goods.getAmount() > 100) { - goods.setAmount(100); - } - } Collections.sort(settlementGoods, exportGoodsComparator); - List<Goods> result = new ArrayList<Goods>(); int count = 0; for (Goods goods : settlementGoods) { - if (goods.getType().isNewWorldGoodsType() - && goods.getAmount() > 0) { - result.add(goods); - count++; - if (count >= limit) break; - } + result.add(goods); + count++; + if (count >= limit) break; } return result; } Modified: freecol/trunk/src/net/sf/freecol/common/model/Player.java =================================================================== --- freecol/trunk/src/net/sf/freecol/common/model/Player.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/common/model/Player.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -2993,10 +2993,11 @@ } /** - * Returns the most valuable goods available in one of the player's - * colonies for the purposes of choosing a threat-to-boycott. - * The goods must not currently be boycotted, the player must have traded in - * it, and the amount will not exceed 100. + * Returns the most valuable goods available in one of the + * player's colonies for the purposes of choosing a + * threat-to-boycott. The goods must not currently be boycotted, + * the player must have traded in it, and the amount to be discarded + * will not exceed GoodsContainer.CARGO_SIZE. * * @return A goods object, or null. */ @@ -3011,11 +3012,10 @@ for (Goods currentGoods : colonyGoods) { if (getArrears(currentGoods) == 0 && hasTraded(currentGoods.getType())) { - // never discard more than 100 units - if (currentGoods.getAmount() > 100) { - currentGoods.setAmount(100); - } - int goodsValue = market.getSalePrice(currentGoods); + int amount = Math.min(currentGoods.getAmount(), + GoodsContainer.CARGO_SIZE); + int goodsValue = market.getSalePrice(currentGoods.getType(), + amount); if (goodsValue > value) { value = goodsValue; goods = currentGoods; Modified: freecol/trunk/src/net/sf/freecol/common/model/Settlement.java =================================================================== --- freecol/trunk/src/net/sf/freecol/common/model/Settlement.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/common/model/Settlement.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -386,7 +386,7 @@ /** * Gets an <code>Iterator</code> of every <code>Goods</code> in this * <code>GoodsContainer</code>. Each <code>Goods</code> have a maximum - * amount of 100. + * amount of GoodsContainer.CARGO_SIZE. * * @return The <code>Iterator</code>. */ Modified: freecol/trunk/src/net/sf/freecol/common/model/SettlementType.java =================================================================== --- freecol/trunk/src/net/sf/freecol/common/model/SettlementType.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/common/model/SettlementType.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -299,7 +299,7 @@ * @return The warehouse capacity of this settlement. */ public int getWarehouseCapacity() { - return 100 * getClaimableRadius(); + return GoodsContainer.CARGO_SIZE * getClaimableRadius(); } Modified: freecol/trunk/src/net/sf/freecol/common/model/Unit.java =================================================================== --- freecol/trunk/src/net/sf/freecol/common/model/Unit.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/common/model/Unit.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -37,6 +37,7 @@ import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; +import net.sf.freecol.common.model.GoodsContainer; import net.sf.freecol.common.model.Map.Direction; import net.sf.freecol.common.model.TradeRoute.Stop; import net.sf.freecol.common.model.UnitTypeChange.ChangeType; @@ -1858,10 +1859,11 @@ */ public int getLoadableAmount(GoodsType type) { if (canCarryGoods()) { - int result = getSpaceLeft() * 100; - int count = getGoodsContainer().getGoodsCount(type) % 100; - if (count > 0 && count < 100) { - result += (100 - count); + int result = getSpaceLeft() * GoodsContainer.CARGO_SIZE; + int count = getGoodsContainer().getGoodsCount(type) + % GoodsContainer.CARGO_SIZE; + if (count > 0 && count < GoodsContainer.CARGO_SIZE) { + result += GoodsContainer.CARGO_SIZE - count; } return result; } else { Modified: freecol/trunk/src/net/sf/freecol/server/ai/AIColony.java =================================================================== --- freecol/trunk/src/net/sf/freecol/server/ai/AIColony.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/server/ai/AIColony.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -43,6 +43,7 @@ import net.sf.freecol.common.model.ColonyTile; import net.sf.freecol.common.model.EquipmentType; import net.sf.freecol.common.model.ExportData; +import net.sf.freecol.common.model.GoodsContainer; import net.sf.freecol.common.model.GoodsType; import net.sf.freecol.common.model.Location; import net.sf.freecol.common.model.ProductionInfo; @@ -662,13 +663,15 @@ if (oldGoods.getGoods().getLocation() != colony) { continue; } - if (oldGoods.getGoods().getAmount() < 100 && oldGoods.getGoods().getAmount() < amountRemaining) { - int goodsAmount = Math.min(100, amountRemaining); + if (oldGoods.getGoods().getAmount() < GoodsContainer.CARGO_SIZE + && oldGoods.getGoods().getAmount() < amountRemaining) { + int goodsAmount = Math.min(GoodsContainer.CARGO_SIZE, amountRemaining); oldGoods.getGoods().setAmount(goodsAmount); if (amountRemaining >= colony.getWarehouseCapacity() && oldGoods.getTransportPriority() < AIGoods.IMPORTANT_DELIVERY) { oldGoods.setTransportPriority(AIGoods.IMPORTANT_DELIVERY); - } else if (goodsAmount == 100 && oldGoods.getTransportPriority() < AIGoods.FULL_DELIVERY) { + } else if (goodsAmount == GoodsContainer.CARGO_SIZE + && oldGoods.getTransportPriority() < AIGoods.FULL_DELIVERY) { oldGoods.setTransportPriority(AIGoods.FULL_DELIVERY); } amountRemaining -= goodsAmount; @@ -692,8 +695,8 @@ } } while (amountRemaining > 0) { - if (amountRemaining >= 100) { - AIGoods newGoods = new AIGoods(getAIMain(), colony, goodsType, 100, getColony().getOwner() + if (amountRemaining >= GoodsContainer.CARGO_SIZE) { + AIGoods newGoods = new AIGoods(getAIMain(), colony, goodsType, GoodsContainer.CARGO_SIZE, getColony().getOwner() .getEurope()); if (amountRemaining >= colony.getWarehouseCapacity()) { newGoods.setTransportPriority(AIGoods.IMPORTANT_DELIVERY); @@ -701,7 +704,7 @@ newGoods.setTransportPriority(AIGoods.FULL_DELIVERY); } newAIGoods.add(newGoods); - amountRemaining -= 100; + amountRemaining -= GoodsContainer.CARGO_SIZE; } else { AIGoods newGoods = new AIGoods(getAIMain(), colony, goodsType, amountRemaining, getColony() .getOwner().getEurope()); Modified: freecol/trunk/src/net/sf/freecol/server/ai/AIGoods.java =================================================================== --- freecol/trunk/src/net/sf/freecol/server/ai/AIGoods.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/server/ai/AIGoods.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -29,6 +29,7 @@ import net.sf.freecol.common.model.Colony; import net.sf.freecol.common.model.Europe; import net.sf.freecol.common.model.Goods; +import net.sf.freecol.common.model.GoodsContainer; import net.sf.freecol.common.model.GoodsType; import net.sf.freecol.common.model.Locatable; import net.sf.freecol.common.model.Location; @@ -191,7 +192,7 @@ * @return The priority of the transport. */ public int getTransportPriority() { - if (goods.getAmount() <= 100) { + if (goods.getAmount() <= GoodsContainer.CARGO_SIZE) { return goods.getAmount(); } else { return transportPriority; Modified: freecol/trunk/src/net/sf/freecol/server/ai/GoodsWish.java =================================================================== --- freecol/trunk/src/net/sf/freecol/server/ai/GoodsWish.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/server/ai/GoodsWish.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -26,6 +26,7 @@ import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; +import net.sf.freecol.common.model.GoodsContainer; import net.sf.freecol.common.model.GoodsType; import net.sf.freecol.common.model.Location; @@ -83,7 +84,7 @@ * completly. */ public GoodsWish(AIMain aiMain, Location destination, int value, GoodsType goodsType) { - this(aiMain,destination,value,100,goodsType); + this(aiMain,destination,value, GoodsContainer.CARGO_SIZE, goodsType); } /** @@ -184,31 +185,23 @@ setValue(Integer.parseInt(in.getAttributeValue(null, "value"))); goodsType = getAIMain().getGame().getSpecification().getGoodsType(in.getAttributeValue(null, "goodsType")); - - final String amountStr = in.getAttributeValue(null, "amountRequested"); - if (amountStr != null) { - amountRequested = Integer.parseInt(amountStr); - } else { - //backwards compatibility in case amount has not been saved - //can be removed if savegame versions <3 are no longer supported. - amountRequested = 100; - } - + amountRequested = getAttribute(in, "amountRequested", + GoodsContainer.CARGO_SIZE); in.nextTag(); } + public String toString() { + return "GoodsWish: " + amountRequested + " " + goodsType + + " (" + getValue() + ")"; + } + /** * Returns the tag name of the root element representing this object. + * * @return "GoodsWish" */ public static String getXMLElementTagName() { return "GoodsWish"; } - - public String toString() { - return "GoodsWish: " + amountRequested + " " + goodsType - + " (" + getValue() + ")"; - } - } Modified: freecol/trunk/src/net/sf/freecol/server/ai/mission/IndianDemandMission.java =================================================================== --- freecol/trunk/src/net/sf/freecol/server/ai/mission/IndianDemandMission.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/server/ai/mission/IndianDemandMission.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -197,7 +197,7 @@ Goods goods = null; GoodsContainer warehouse = target.getGoodsContainer(); if (tension.compareTo(Tension.Level.CONTENT) <= 0 && - warehouse.getGoodsCount(food) >= 100) { + warehouse.getGoodsCount(food) >= GoodsContainer.CARGO_SIZE) { int amount = (warehouse.getGoodsCount(food) * dx) / 6; if (amount > 0) { return new Goods(getGame(), target, food, capAmount(amount, dx)); @@ -279,7 +279,7 @@ private int capAmount(int amount, int difficulty) { int finalAmount = Math.max((amount * difficulty) / 6, 1); // natives can only carry one load of goods - finalAmount = Math.min(finalAmount, 100); + finalAmount = Math.min(finalAmount, GoodsContainer.CARGO_SIZE); return finalAmount; } Modified: freecol/trunk/src/net/sf/freecol/server/ai/mission/TransportMission.java =================================================================== --- freecol/trunk/src/net/sf/freecol/server/ai/mission/TransportMission.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/server/ai/mission/TransportMission.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -34,6 +34,7 @@ import net.sf.freecol.common.model.Colony; import net.sf.freecol.common.model.Europe; import net.sf.freecol.common.model.Goods; +import net.sf.freecol.common.model.GoodsContainer; import net.sf.freecol.common.model.GoodsType; import net.sf.freecol.common.model.Locatable; import net.sf.freecol.common.model.Location; @@ -867,7 +868,8 @@ } } else if (w instanceof GoodsWish) { GoodsWish gw = (GoodsWish) w; - AIGoods ag = buyGoodsInEurope(connection, gw.getGoodsType(), 100, gw.getDestination()); + AIGoods ag = buyGoodsInEurope(connection, gw.getGoodsType(), + GoodsContainer.CARGO_SIZE, gw.getDestination()); if (ag != null) { gw.setTransportable(ag); addToTransportList(ag); Modified: freecol/trunk/src/net/sf/freecol/server/control/InGameController.java =================================================================== --- freecol/trunk/src/net/sf/freecol/server/control/InGameController.java 2011-07-05 09:04:31 UTC (rev 8630) +++ freecol/trunk/src/net/sf/freecol/server/control/InGameController.java 2011-07-05 09:04:39 UTC (rev 8631) @@ -800,9 +800,10 @@ Element reply = askElement(serverPlayer, cs); cs = new ChangeSet(); + int amount = Math.min(goods.getAmount(), GoodsContainer.CARGO_SIZE); if (Boolean.valueOf(reply.getAttribute("accepted")).booleanValue()) { serverPlayer.csSetTax(tax, cs); - } else if (colony.getGoodsCount(goodsType) < goods.getAmount()) { + } else if (colony.getGoodsCount(goodsType) < amount) { // Player has removed the goods from the colony, // so raise the tax anyway. final int extraTax = 3; @@ -815,7 +816,7 @@ } else { // Tea party Specification spec = getGame().getSpecification(); colony.getGoodsContainer().saveState(); - colony.removeGoods(goods); + colony.removeGoods(goodsType, amount); Market market = serverPlayer.getMarket(); market.setArrears(goodsType, market.getPaidForSale(goodsType) @@ -857,8 +858,8 @@ new ModelMessage(ModelMessage.MessageType.FOREIGN_DIPLOMACY, messageId, serverPlayer) .addName("%colony%", colony.getName()) - .addName("%amount%", String.valueOf(goods.getAmount())) - .add("%goods%", goods.getNameKey())); + .addName("%amount%", Integer.toString(amount)) + .add("%goods%", goodsType.getNameKey())); } sendElement(serverPlayer, cs); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |