diff options
Diffstat (limited to 'core/src/ch')
| -rw-r--r-- | core/src/ch/asynk/rustanddust/game/ctrl/Solo.java | 28 | 
1 files changed, 25 insertions, 3 deletions
| diff --git a/core/src/ch/asynk/rustanddust/game/ctrl/Solo.java b/core/src/ch/asynk/rustanddust/game/ctrl/Solo.java index 1a7a0af..bcafe29 100644 --- a/core/src/ch/asynk/rustanddust/game/ctrl/Solo.java +++ b/core/src/ch/asynk/rustanddust/game/ctrl/Solo.java @@ -6,6 +6,8 @@ import ch.asynk.rustanddust.game.Battle;  public class Solo extends Ctrl  { +    private int gameId; +      public Solo(final RustAndDust game, final Battle battle)      {          super(game, battle); @@ -14,12 +16,32 @@ public class Solo extends Ctrl      @Override      public void init()      { -        battle.init(this, 0, 1); +        gameId = game.config.gameId; +        if (gameId == game.db.NO_RECORDS) { +            int me = game.backend.getMyId(); +            int other = game.backend.getOpponentId(); +            gameId = game.db.storeGameGetId(me, other, battle.getId(), game.config.gameMode.i); +            battle.init(this, me, other); +        } else { +            battle.init(this, game.db.loadState(gameId)); +        }      }      @Override -    protected void processAction() { } +    protected void processAction() +    { +        storeState(); +    }      @Override -    protected void processTurn() { } +    protected void processTurn() +    { +        // TODO must store Orders in turns table +        storeState(); +    } + +    private void storeState() +    { +        game.db.storeState(gameId, battle.getPlayer().getId(), battle.getOpponent().getId(), battle.unload()); +    }  } | 
