summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/control')
-rw-r--r--src/jrummikub/control/RoundControl.java11
-rw-r--r--src/jrummikub/control/network/NetworkRoundControl.java2
-rw-r--r--src/jrummikub/control/network/NetworkTurnControl.java4
-rw-r--r--src/jrummikub/control/turn/AbstractTurnControl.java6
-rw-r--r--src/jrummikub/control/turn/ITurnControl.java10
5 files changed, 25 insertions, 8 deletions
diff --git a/src/jrummikub/control/RoundControl.java b/src/jrummikub/control/RoundControl.java
index 71980e1..62a57cf 100644
--- a/src/jrummikub/control/RoundControl.java
+++ b/src/jrummikub/control/RoundControl.java
@@ -76,6 +76,11 @@ public class RoundControl {
private Event1<Score> endOfRoundEvent = new Event1<Score>();
protected List<Connection> connections = new ArrayList<Connection>();
private boolean roundFinished;
+ private boolean mayPause;
+
+ public RoundControl(IRoundState roundState, IView view) {
+ this(roundState, view, true);
+ }
/**
* Create a new RoundControl using the given gameState and view
@@ -85,9 +90,10 @@ public class RoundControl {
* @param view
* view used for user interaction
*/
- public RoundControl(IRoundState roundState, IView view) {
+ protected RoundControl(IRoundState roundState, IView view, boolean mayPause) {
this.roundState = roundState;
this.view = view;
+ this.mayPause = mayPause;
}
/**
@@ -221,7 +227,8 @@ public class RoundControl {
view.getPlayerPanel().setEndTurnMode(turnMode);
}
- turnControl.setup(new ITurnControl.TurnInfo(roundState, turnMode),
+ turnControl.setup(
+ new ITurnControl.TurnInfo(roundState, turnMode, mayPause),
roundState.getGameSettings(), view);
turnControl.getEndOfTurnEvent().add(
new IListener2<IRoundState, InvalidTurnInfo>() {
diff --git a/src/jrummikub/control/network/NetworkRoundControl.java b/src/jrummikub/control/network/NetworkRoundControl.java
index afe6a6e..95b5885 100644
--- a/src/jrummikub/control/network/NetworkRoundControl.java
+++ b/src/jrummikub/control/network/NetworkRoundControl.java
@@ -15,7 +15,7 @@ public class NetworkRoundControl extends RoundControl {
public NetworkRoundControl(IRoundState roundState, IView view,
final IConnectionControl connectionControl, boolean startActive) {
- super(roundState, view);
+ super(roundState, view, false);
this.connectionControl = connectionControl;
currentlyActive = startActive;
diff --git a/src/jrummikub/control/network/NetworkTurnControl.java b/src/jrummikub/control/network/NetworkTurnControl.java
index 35002f7..a884fda 100644
--- a/src/jrummikub/control/network/NetworkTurnControl.java
+++ b/src/jrummikub/control/network/NetworkTurnControl.java
@@ -53,8 +53,4 @@ public class NetworkTurnControl extends AbstractTurnControl {
@Override
protected void timeOut() {
}
-
- @Override
- protected void pauseTurn() {
- }
}
diff --git a/src/jrummikub/control/turn/AbstractTurnControl.java b/src/jrummikub/control/turn/AbstractTurnControl.java
index d64ee62..9bdd6e2 100644
--- a/src/jrummikub/control/turn/AbstractTurnControl.java
+++ b/src/jrummikub/control/turn/AbstractTurnControl.java
@@ -59,6 +59,10 @@ public abstract class AbstractTurnControl implements ITurnControl {
}
protected void pauseTurn() {
+ if (!turnInfo.isMayPause()) {
+ return;
+ }
+
timer.stopTimer();
view.enablePauseMode(true);
}
@@ -108,6 +112,8 @@ public abstract class AbstractTurnControl implements ITurnControl {
resumeTurn();
}
}));
+
+ view.setMayPause(info.isMayPause());
}
protected void cleanUp() {
diff --git a/src/jrummikub/control/turn/ITurnControl.java b/src/jrummikub/control/turn/ITurnControl.java
index 6994466..ab4d6ae 100644
--- a/src/jrummikub/control/turn/ITurnControl.java
+++ b/src/jrummikub/control/turn/ITurnControl.java
@@ -73,6 +73,8 @@ public interface ITurnControl {
private TurnMode turnMode;
+ private boolean mayPause;
+
/**
* Creates a new TurnInfo instance
*
@@ -81,7 +83,7 @@ public interface ITurnControl {
* @param turnMode
* the turn mode
*/
- public TurnInfo(IRoundState roundState, TurnMode turnMode) {
+ public TurnInfo(IRoundState roundState, TurnMode turnMode, boolean mayPause) {
this.roundState = roundState;
oldTable = roundState.getTable();
@@ -91,6 +93,8 @@ public interface ITurnControl {
this.hand = (IHand) oldHand.clone();
this.turnMode = turnMode;
+
+ this.mayPause = mayPause;
}
public IRoundState getRoundState() {
@@ -150,5 +154,9 @@ public interface ITurnControl {
public TurnMode getTurnMode() {
return turnMode;
}
+
+ public boolean isMayPause() {
+ return mayPause;
+ }
}
} \ No newline at end of file