From: <ev...@us...> - 2010-07-24 15:47:39
|
Revision: 1356 http://rails.svn.sourceforge.net/rails/?rev=1356&view=rev Author: evos Date: 2010-07-24 15:47:32 +0000 (Sat, 24 Jul 2010) Log Message: ----------- Fixed bug that prevented some cash transfers after the bank has broken. Also fixed an incorrect change in the previous commit (BuyCertificate reorganisation) Modified Paths: -------------- trunk/18xx/rails/game/Bank.java trunk/18xx/rails/game/CashHolder.java trunk/18xx/rails/game/Player.java trunk/18xx/rails/game/PublicCompany.java trunk/18xx/rails/game/StockRound.java trunk/18xx/rails/game/TreasuryShareRound.java trunk/18xx/rails/game/model/CashModel.java trunk/18xx/rails/game/move/CashMove.java Modified: trunk/18xx/rails/game/Bank.java =================================================================== --- trunk/18xx/rails/game/Bank.java 2010-07-23 21:29:38 UTC (rev 1355) +++ trunk/18xx/rails/game/Bank.java 2010-07-24 15:47:32 UTC (rev 1356) @@ -136,9 +136,10 @@ /** * Adds cash back to the bank */ - public boolean addCash(int amount) { - boolean negative = money.addCash(amount); + public void addCash(int amount) { + money.addCash(amount); + /* * Check if the bank has broken. In some games <0 could apply, so this * will become configurable. @@ -147,7 +148,6 @@ broken.set(true); GameManager.getInstance().registerBrokenBank(); } - return negative; } public boolean isBroken() { Modified: trunk/18xx/rails/game/CashHolder.java =================================================================== --- trunk/18xx/rails/game/CashHolder.java 2010-07-23 21:29:38 UTC (rev 1355) +++ trunk/18xx/rails/game/CashHolder.java 2010-07-24 15:47:32 UTC (rev 1356) @@ -18,7 +18,7 @@ /** * Add (or subtract) cash. */ - public abstract boolean addCash(int amount); + public abstract void addCash(int amount); /** Get the cash owner's name (needed for logging) */ public abstract String getName(); Modified: trunk/18xx/rails/game/Player.java =================================================================== --- trunk/18xx/rails/game/Player.java 2010-07-23 21:29:38 UTC (rev 1355) +++ trunk/18xx/rails/game/Player.java 2010-07-24 15:47:32 UTC (rev 1356) @@ -73,9 +73,8 @@ return wallet; } - public boolean addCash(int amount) { - boolean result = wallet.addCash(amount); - return result; + public void addCash(int amount) { + wallet.addCash(amount); } /** Modified: trunk/18xx/rails/game/PublicCompany.java =================================================================== --- trunk/18xx/rails/game/PublicCompany.java 2010-07-23 21:29:38 UTC (rev 1355) +++ trunk/18xx/rails/game/PublicCompany.java 2010-07-24 15:47:32 UTC (rev 1356) @@ -1147,8 +1147,8 @@ * * @param amount The amount to add (may be negative). */ - public boolean addCash(int amount) { - return treasury.addCash(amount); + public void addCash(int amount) { + treasury.addCash(amount); } /** Modified: trunk/18xx/rails/game/StockRound.java =================================================================== --- trunk/18xx/rails/game/StockRound.java 2010-07-23 21:29:38 UTC (rev 1355) +++ trunk/18xx/rails/game/StockRound.java 2010-07-24 15:47:32 UTC (rev 1356) @@ -28,7 +28,7 @@ protected BooleanState hasSoldThisTurnBeforeBuying = new BooleanState("HoldSoldBeforeBuyingThisTurn", false); - protected BooleanState hasActed = new BooleanState("HasActed", false); // Is + protected BooleanState hasActed = new BooleanState("HasActed", false); protected IntegerState numPasses = new IntegerState("StockRoundPasses"); Modified: trunk/18xx/rails/game/TreasuryShareRound.java =================================================================== --- trunk/18xx/rails/game/TreasuryShareRound.java 2010-07-23 21:29:38 UTC (rev 1355) +++ trunk/18xx/rails/game/TreasuryShareRound.java 2010-07-24 15:47:32 UTC (rev 1356) @@ -246,7 +246,8 @@ int number = action.getNumberBought(); int shareUnit = company.getShareUnit(); int sharePerCert = action.getSharePerCertificate(); - int shares = number * sharePerCert; + int share = number * sharePerCert; + int shares = share/shareUnit; String errMsg = null; int price = 0; @@ -296,7 +297,7 @@ } // Check if that many shares are available - if (shares > from.getShare(company)) { + if (share > from.getShare(company)) { errMsg = LocalText.getText("NotAvailable", companyName, @@ -308,8 +309,7 @@ // Check if company would exceed the per-company share limit int treasuryShareLimit = getGameParameterAsInt(GameDef.Parm.TREASURY_SHARE_LIMIT); - if (portfolio.getShare(company) + shares * company.getShareUnit() - > treasuryShareLimit) { + if (portfolio.getShare(company) + share > treasuryShareLimit) { errMsg = LocalText.getText("TreasuryOverHoldLimit", String.valueOf(treasuryShareLimit)); @@ -359,7 +359,7 @@ moveStack.start(true); PublicCertificateI cert2; for (int i = 0; i < number; i++) { - cert2 = from.findCertificate(company, sharePerCert, false); + cert2 = from.findCertificate(company, sharePerCert/shareUnit, false); executeTradeCertificate(cert2, portfolio, cert2.getShares() * price); } Modified: trunk/18xx/rails/game/model/CashModel.java =================================================================== --- trunk/18xx/rails/game/model/CashModel.java 2010-07-23 21:29:38 UTC (rev 1355) +++ trunk/18xx/rails/game/model/CashModel.java 2010-07-24 15:47:32 UTC (rev 1356) @@ -1,9 +1,7 @@ /* $Header: /Users/blentz/rails_rcs/cvs/18xx/rails/game/model/CashModel.java,v 1.5 2008/06/04 19:00:37 evos Exp $*/ package rails.game.model; -import rails.game.Bank; -import rails.game.CashHolder; -import rails.game.PublicCompanyI; +import rails.game.*; public class CashModel extends ModelObject { @@ -22,14 +20,9 @@ update(); } - public boolean addCash(int addedCash) { + public void addCash(int addedCash) { cash += addedCash; update(); - - if (cash <= 0) - return false; - else - return true; } public int getCash() { @@ -38,9 +31,10 @@ /* * (non-Javadoc) - * + * * @see rails.rails.game.model.ModelObject#getValue() */ + @Override public String getText() { if (cash == 0 && (option & SUPPRESS_ZERO) > 0 || owner instanceof PublicCompanyI Modified: trunk/18xx/rails/game/move/CashMove.java =================================================================== --- trunk/18xx/rails/game/move/CashMove.java 2010-07-23 21:29:38 UTC (rev 1355) +++ trunk/18xx/rails/game/move/CashMove.java 2010-07-24 15:47:32 UTC (rev 1356) @@ -48,9 +48,10 @@ return true; } - private boolean transferCash(CashHolder from, CashHolder to, + private void transferCash(CashHolder from, CashHolder to, int amount) { - return to.addCash(amount) && from.addCash(-amount); + to.addCash(amount); + from.addCash(-amount); } @Override This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |