From: Dr. M. B. <neu...@us...> - 2012-03-22 22:00:38
|
rails/game/specific/_1880/StartCompany_1880.java | 46 +++++++++++++++++++++-- rails/game/specific/_1880/StockRound_1880.java | 11 ++++- 2 files changed, 51 insertions(+), 6 deletions(-) New commits: commit 2f4783bdf6d3f5f24f95c630fd8a26d2b6b64203 Author: Martin Brumm <Dr....@t-...> Date: Thu Mar 22 22:59:22 2012 +0100 Fixed Loading Process of saved games part II completing earlier commit. diff --git a/rails/game/specific/_1880/StartCompany_1880.java b/rails/game/specific/_1880/StartCompany_1880.java index c877e3a..df7927e 100644 --- a/rails/game/specific/_1880/StartCompany_1880.java +++ b/rails/game/specific/_1880/StartCompany_1880.java @@ -24,7 +24,9 @@ public class StartCompany_1880 extends StartCompany { */ private static final long serialVersionUID = 1L; - + BitSet buildingRight = new BitSet(4); + BitSet savedBuildingRight = new BitSet(4); + /** * @param company * @param prices @@ -70,7 +72,7 @@ public class StartCompany_1880 extends StartCompany { public void setBuildingRight(PublicCompany_1880 company, String buildingRightString ) { - BitSet buildingRight = new BitSet(5); + if (buildingRightString == "A") { buildingRight.set(0); @@ -135,7 +137,45 @@ public class StartCompany_1880 extends StartCompany { in.defaultReadObject(); - CompanyManagerI cmgr = getCompanyManager(); + if (!buildingRight.isEmpty()) { + savedBuildingRight = (BitSet) buildingRight.clone(); + } + + } + + public String buildingRightToString(BitSet buildingRight2) { + String buildingRightString = null; + if (! buildingRight.isEmpty()){ + if (buildingRight.get(0)== true) { + buildingRightString = "A"; + if (buildingRight.get(1) == true) { + buildingRightString = "A+B"; + if (buildingRight.get(2) == true) { + buildingRightString = "A+B+C"; + } + } + } + else if (buildingRight.get(1) == true) { + buildingRightString = "B"; + if (buildingRight.get(2) == true) { + buildingRightString = "B+C"; + if (buildingRight.get(3) == true){ + buildingRightString = "B+C+D"; + } + } + } + else if (buildingRight.get(2) == true){ + buildingRightString = "C"; + if (buildingRight.get(3) == true){ + buildingRightString = "C+D"; + } + } + else if (buildingRight.get(3) == true){ + buildingRightString= "D"; + } + return buildingRightString; + } + return "None"; } } diff --git a/rails/game/specific/_1880/StockRound_1880.java b/rails/game/specific/_1880/StockRound_1880.java index e878f56..2f54eac 100644 --- a/rails/game/specific/_1880/StockRound_1880.java +++ b/rails/game/specific/_1880/StockRound_1880.java @@ -397,10 +397,15 @@ public class StockRound_1880 extends StockRound { /* (non-Javadoc) * @see rails.game.StockRound#startCompany(java.lang.String, rails.game.action.StartCompany) */ - @Override - public boolean startCompany(String playerName, StartCompany action) { + public boolean startCompany(String playerName, StartCompany_1880 action) { // TODO Auto-generated method stub - return super.startCompany(playerName, action); + if (super.startCompany(playerName, action)){ + action.setBuildingRight((PublicCompany_1880) action.getCompany(), action.buildingRightToString(action.buildingRight)); + action.setStartPrice(action.getPrice()); + return true; + } else { + return false; + } } /* (non-Javadoc) commit 26484eeadd1fbf17b78c1fc04e4f973a7900518b Merge: 595fdeb 78a057a Author: Martin Brumm <Dr....@t-...> Date: Thu Mar 22 22:46:42 2012 +0100 Merge remote-tracking branch '1880/specific_1880' into specific_1880 commit 595fdeba8d6a07c089856ead32cc4f7a8e454651 Author: Martin Brumm <Dr....@t-...> Date: Thu Mar 22 22:46:03 2012 +0100 Revert "Fixing the bug that certain Informations and properties of an 1880 company arent read from a saved game" This reverts commit 5e59d430315b7d2228dcb01e098c414b698eaf09. diff --git a/rails/game/specific/_1880/StartCompany_1880.java b/rails/game/specific/_1880/StartCompany_1880.java index 8fd8938..616b8bb 100644 --- a/rails/game/specific/_1880/StartCompany_1880.java +++ b/rails/game/specific/_1880/StartCompany_1880.java @@ -3,11 +3,8 @@ */ package rails.game.specific._1880; -import java.io.IOException; -import java.io.ObjectInputStream; import java.util.BitSet; -import rails.game.CompanyManagerI; import rails.game.PublicCompanyI; import rails.game.StockSpace; import rails.game.StockSpaceI; @@ -24,9 +21,7 @@ public class StartCompany_1880 extends StartCompany { */ private static final long serialVersionUID = 1L; - BitSet buildingRight = new BitSet(4); - BitSet savedBuildingRight = new BitSet(4); - + /** * @param company * @param prices @@ -72,7 +67,7 @@ public class StartCompany_1880 extends StartCompany { public void setBuildingRight(PublicCompany_1880 company, String buildingRightString ) { - + BitSet buildingRight = new BitSet(5); if (buildingRightString == "A") { buildingRight.set(0); @@ -131,50 +126,4 @@ public class StartCompany_1880 extends StartCompany { ((StockMarket_1880) gameManager.getStockMarket()).setParSlot(startPrice); } - /** Deserialize */ - private void readObject(ObjectInputStream in) throws IOException, - ClassNotFoundException { - - in.defaultReadObject(); - - if (!buildingRight.isEmpty()) { - savedBuildingRight = (BitSet) buildingRight.clone(); - } - - } - public String buildingRightToString (BitSet buildingRight){ - String buildingRightString = null; - - if (! buildingRight.isEmpty()){ - if (buildingRight.get(0)== true) { - buildingRightString = "A"; - if (buildingRight.get(1) == true) { - buildingRightString = "A+B"; - if (buildingRight.get(2) == true) { - buildingRightString = "A+B+C"; - } - } - } - else if (buildingRight.get(1) == true) { - buildingRightString = "B"; - if (buildingRight.get(2) == true) { - buildingRightString = "B+C"; - if (buildingRight.get(3) == true){ - buildingRightString = "B+C+D"; - } - } - } - else if (buildingRight.get(2) == true){ - buildingRightString = "C"; - if (buildingRight.get(3) == true){ - buildingRightString = "C+D"; - } - } - else if (buildingRight.get(3) == true){ - buildingRightString= "D"; - } - return buildingRightString; - } - return "None"; - } } diff --git a/rails/game/specific/_1880/StockRound_1880.java b/rails/game/specific/_1880/StockRound_1880.java index 46b5758..537f704 100644 --- a/rails/game/specific/_1880/StockRound_1880.java +++ b/rails/game/specific/_1880/StockRound_1880.java @@ -9,16 +9,13 @@ import java.util.Arrays; import java.util.List; import java.util.Map; -import rails.common.DisplayBuffer; import rails.common.LocalText; import rails.game.*; import rails.game.action.BuyCertificate; import rails.game.action.PossibleAction; import rails.game.action.SellShares; import rails.game.action.StartCompany; -import rails.game.action.UseSpecialProperty; import rails.game.move.CashMove; -import rails.game.special.SpecialPropertyI; import rails.game.specific._1880.PublicCompany_1880; @@ -397,15 +394,10 @@ public class StockRound_1880 extends StockRound { /* (non-Javadoc) * @see rails.game.StockRound#startCompany(java.lang.String, rails.game.action.StartCompany) */ - public boolean startCompany(String playerName, StartCompany_1880 action) { + @Override + public boolean startCompany(String playerName, StartCompany action) { // TODO Auto-generated method stub - if (super.startCompany(playerName, action)){ - action.setBuildingRight((PublicCompany_1880) action.getCompany(), action.buildingRightToString(action.buildingRight)); - action.setStartPrice(action.getPrice()); - return true; - } else { - return false; - } + return super.startCompany(playerName, action); } /* (non-Javadoc) @@ -483,84 +475,5 @@ public class StockRound_1880 extends StockRound { } } - /* (non-Javadoc) - * @see rails.game.StockRound#useSpecialProperty(rails.game.action.UseSpecialProperty) - */ - @Override - public boolean useSpecialProperty(UseSpecialProperty action) { - SpecialPropertyI sp = action.getSpecialProperty(); - - // TODO This should work for all subclasses, but not all have execute() - // yet. - if (sp instanceof ExchangeForCash_1880) { - - boolean result = executeExchangeForCash((ExchangeForCash_1880) sp); - if (result) hasActed.set(true); - return result; - - } else { - return super.useSpecialProperty(action); - } - - } - - private boolean executeExchangeForCash(ExchangeForCash_1880 sp) { - CompanyI privateCompany = sp.getOriginalCompany(); - Portfolio portfolio = privateCompany.getPortfolio(); - - Player player = null; - String errMsg = null; - - while (true) { - - /* Check if the private is owned by a player */ - if (!(portfolio.getOwner() instanceof Player)) { - errMsg = - LocalText.getText("PrivateIsNotOwnedByAPlayer", - privateCompany.getName()); - break; - } - player = (Player) portfolio.getOwner(); - break; - } - if (errMsg != null) { - DisplayBuffer.add(LocalText.getText( - "CannotSwapPrivateForCash", - player.getName(), - privateCompany.getName(), - errMsg )); - return false; - } - - moveStack.start(true); - int amount = sp.getPhaseAmount(); - if (amount >0 ) { - player.addCash(amount); - sp.setExercised(); - privateCompany.setClosed(); - return true; - } - return false; - } - - /* (non-Javadoc) - * @see rails.game.StockRound#process(rails.game.action.PossibleAction) - */ - @Override - public boolean process(PossibleAction action) { - boolean result; - String playerName = action.getPlayerName(); - - if (action instanceof StartCompany) { - - StartCompany_1880 startCompanyAction = (StartCompany_1880) action; - - result = startCompany(playerName, startCompanyAction); - - return result; - } else { - return super.process(action); - } - } } commit 5e59d430315b7d2228dcb01e098c414b698eaf09 Author: Martin Brumm <Dr....@t-...> Date: Thu Mar 22 22:45:10 2012 +0100 Fixing the bug that certain Informations and properties of an 1880 company arent read from a saved game diff --git a/rails/game/specific/_1880/StartCompany_1880.java b/rails/game/specific/_1880/StartCompany_1880.java index 616b8bb..8fd8938 100644 --- a/rails/game/specific/_1880/StartCompany_1880.java +++ b/rails/game/specific/_1880/StartCompany_1880.java @@ -3,8 +3,11 @@ */ package rails.game.specific._1880; +import java.io.IOException; +import java.io.ObjectInputStream; import java.util.BitSet; +import rails.game.CompanyManagerI; import rails.game.PublicCompanyI; import rails.game.StockSpace; import rails.game.StockSpaceI; @@ -21,7 +24,9 @@ public class StartCompany_1880 extends StartCompany { */ private static final long serialVersionUID = 1L; - + BitSet buildingRight = new BitSet(4); + BitSet savedBuildingRight = new BitSet(4); + /** * @param company * @param prices @@ -67,7 +72,7 @@ public class StartCompany_1880 extends StartCompany { public void setBuildingRight(PublicCompany_1880 company, String buildingRightString ) { - BitSet buildingRight = new BitSet(5); + if (buildingRightString == "A") { buildingRight.set(0); @@ -126,4 +131,50 @@ public class StartCompany_1880 extends StartCompany { ((StockMarket_1880) gameManager.getStockMarket()).setParSlot(startPrice); } + /** Deserialize */ + private void readObject(ObjectInputStream in) throws IOException, + ClassNotFoundException { + + in.defaultReadObject(); + + if (!buildingRight.isEmpty()) { + savedBuildingRight = (BitSet) buildingRight.clone(); + } + + } + public String buildingRightToString (BitSet buildingRight){ + String buildingRightString = null; + + if (! buildingRight.isEmpty()){ + if (buildingRight.get(0)== true) { + buildingRightString = "A"; + if (buildingRight.get(1) == true) { + buildingRightString = "A+B"; + if (buildingRight.get(2) == true) { + buildingRightString = "A+B+C"; + } + } + } + else if (buildingRight.get(1) == true) { + buildingRightString = "B"; + if (buildingRight.get(2) == true) { + buildingRightString = "B+C"; + if (buildingRight.get(3) == true){ + buildingRightString = "B+C+D"; + } + } + } + else if (buildingRight.get(2) == true){ + buildingRightString = "C"; + if (buildingRight.get(3) == true){ + buildingRightString = "C+D"; + } + } + else if (buildingRight.get(3) == true){ + buildingRightString= "D"; + } + return buildingRightString; + } + return "None"; + } } diff --git a/rails/game/specific/_1880/StockRound_1880.java b/rails/game/specific/_1880/StockRound_1880.java index 537f704..46b5758 100644 --- a/rails/game/specific/_1880/StockRound_1880.java +++ b/rails/game/specific/_1880/StockRound_1880.java @@ -9,13 +9,16 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import rails.common.DisplayBuffer; import rails.common.LocalText; import rails.game.*; import rails.game.action.BuyCertificate; import rails.game.action.PossibleAction; import rails.game.action.SellShares; import rails.game.action.StartCompany; +import rails.game.action.UseSpecialProperty; import rails.game.move.CashMove; +import rails.game.special.SpecialPropertyI; import rails.game.specific._1880.PublicCompany_1880; @@ -394,10 +397,15 @@ public class StockRound_1880 extends StockRound { /* (non-Javadoc) * @see rails.game.StockRound#startCompany(java.lang.String, rails.game.action.StartCompany) */ - @Override - public boolean startCompany(String playerName, StartCompany action) { + public boolean startCompany(String playerName, StartCompany_1880 action) { // TODO Auto-generated method stub - return super.startCompany(playerName, action); + if (super.startCompany(playerName, action)){ + action.setBuildingRight((PublicCompany_1880) action.getCompany(), action.buildingRightToString(action.buildingRight)); + action.setStartPrice(action.getPrice()); + return true; + } else { + return false; + } } /* (non-Javadoc) @@ -475,5 +483,84 @@ public class StockRound_1880 extends StockRound { } } + /* (non-Javadoc) + * @see rails.game.StockRound#useSpecialProperty(rails.game.action.UseSpecialProperty) + */ + @Override + public boolean useSpecialProperty(UseSpecialProperty action) { + SpecialPropertyI sp = action.getSpecialProperty(); + + // TODO This should work for all subclasses, but not all have execute() + // yet. + if (sp instanceof ExchangeForCash_1880) { + + boolean result = executeExchangeForCash((ExchangeForCash_1880) sp); + if (result) hasActed.set(true); + return result; + + } else { + return super.useSpecialProperty(action); + } + + } + + private boolean executeExchangeForCash(ExchangeForCash_1880 sp) { + CompanyI privateCompany = sp.getOriginalCompany(); + Portfolio portfolio = privateCompany.getPortfolio(); + + Player player = null; + String errMsg = null; + + while (true) { + + /* Check if the private is owned by a player */ + if (!(portfolio.getOwner() instanceof Player)) { + errMsg = + LocalText.getText("PrivateIsNotOwnedByAPlayer", + privateCompany.getName()); + break; + } + player = (Player) portfolio.getOwner(); + break; + } + if (errMsg != null) { + DisplayBuffer.add(LocalText.getText( + "CannotSwapPrivateForCash", + player.getName(), + privateCompany.getName(), + errMsg )); + return false; + } + + moveStack.start(true); + int amount = sp.getPhaseAmount(); + if (amount >0 ) { + player.addCash(amount); + sp.setExercised(); + privateCompany.setClosed(); + return true; + } + return false; + } + + /* (non-Javadoc) + * @see rails.game.StockRound#process(rails.game.action.PossibleAction) + */ + @Override + public boolean process(PossibleAction action) { + boolean result; + String playerName = action.getPlayerName(); + + if (action instanceof StartCompany) { + + StartCompany_1880 startCompanyAction = (StartCompany_1880) action; + + result = startCompany(playerName, startCompanyAction); + + return result; + } else { + return super.process(action); + } + } } |