|
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);
+ }
+ }
}
|