v0.4.1: massively improved the efficiency of rankings storage

This commit is contained in:
Evan Debenham
2016-06-28 01:38:29 -04:00
parent 97f354c342
commit 68ea4dd6c1
9 changed files with 161 additions and 38 deletions
@@ -294,8 +294,8 @@ public class RankingsScene extends PixelScene {
@Override
protected void onClick() {
if (rec.gameFile.length() > 0) {
parent.add( new WndRanking( rec.gameFile ) );
if (rec.gameData != null) {
parent.add( new WndRanking( rec ) );
} else {
parent.add( new WndError( Messages.get(RankingsScene.class, "no_info") ) );
}
@@ -22,6 +22,8 @@ package com.shatteredpixel.shatteredpixeldungeon.scenes;
import android.opengl.GLES20;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.Rankings;
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
import com.shatteredpixel.shatteredpixeldungeon.effects.BannerSprites;
import com.shatteredpixel.shatteredpixeldungeon.effects.Fireball;
@@ -144,6 +146,27 @@ public class WelcomeScene extends PixelScene {
}
private void updateVersion(int previousVersion){
//rankings conversion
if (previousVersion < 108){
Rankings.INSTANCE.load();
for (Rankings.Record rec : Rankings.INSTANCE.records){
try{
Dungeon.loadGame(rec.gameFile, false);
rec.gameID = rec.gameFile.replaceAll("\\D", "");
Rankings.INSTANCE.saveGameData(rec);
} catch (Exception e){
rec.gameID = rec.gameFile.replaceAll("\\D", "");
rec.gameData = null;
}
String file = rec.gameFile;
rec.gameFile = "";
Game.instance.deleteFile(file);
}
Rankings.INSTANCE.save();
}
ShatteredPixelDungeon.version(ShatteredPixelDungeon.versionCode);
}