summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/src/ch/asynk/rustanddust/menu/PlayMenu.java2
-rw-r--r--core/src/ch/asynk/rustanddust/util/DB.java9
2 files changed, 6 insertions, 5 deletions
diff --git a/core/src/ch/asynk/rustanddust/menu/PlayMenu.java b/core/src/ch/asynk/rustanddust/menu/PlayMenu.java
index 2c9caa4..f1dbe47 100644
--- a/core/src/ch/asynk/rustanddust/menu/PlayMenu.java
+++ b/core/src/ch/asynk/rustanddust/menu/PlayMenu.java
@@ -49,7 +49,7 @@ public class PlayMenu extends Patch implements MenuCtrl.Panel
public MenuCtrl.MenuType postAnswer(boolean ok)
{
if (ok) {
- game.db.deleteGame(GameRecord.remove(getList().getIdx()));
+ game.db.deleteGame(GameRecord.remove(getList().getIdx()).id);
getList().unselect();
showBtns(false);
if (GameRecord.list.size() <= 0)
diff --git a/core/src/ch/asynk/rustanddust/util/DB.java b/core/src/ch/asynk/rustanddust/util/DB.java
index 44cb79c..3b769a2 100644
--- a/core/src/ch/asynk/rustanddust/util/DB.java
+++ b/core/src/ch/asynk/rustanddust/util/DB.java
@@ -300,24 +300,25 @@ public class DB
cursor.next();
r = from(cursor);
if (!r.hash.equals(getDigest(r.payload))) {
- // TODO recover from that big shit
RustAndDust.error(String.format("corrupted game %d", game));
r = null;
}
}
} catch (SQLiteGdxException e) { RustAndDust.error("loadGame"); }
+ if (r == null)
+ deleteGame(game);
return r;
}
private static final String DELETE_GAME = "delete from games where _id=%d;";
private static final String DELETE_TURNS = "delete from turns where game=%d;";
- public boolean deleteGame(GameRecord game)
+ public boolean deleteGame(int game)
{
RustAndDust.debug("deleteGame");
try {
- exec(String.format(DELETE_TURNS, game.id));
- exec(String.format(DELETE_GAME, game.id));
+ exec(String.format(DELETE_TURNS, game));
+ exec(String.format(DELETE_GAME, game));
} catch (SQLiteGdxException e) {
RustAndDust.error("deleteGame");
return false;