diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/Rankings.java b/src/com/shatteredpixel/shatteredpixeldungeon/Rankings.java index 899a508d3..f16ee6c55 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/Rankings.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/Rankings.java @@ -35,7 +35,7 @@ public enum Rankings { INSTANCE; - public static final int TABLE_SIZE = 6; + public static final int TABLE_SIZE = 11; public static final String RANKINGS_FILE = "rankings.dat"; public static final String DETAILS_FILE = "game_%d.dat"; @@ -70,7 +70,7 @@ public enum Rankings { lastRecord = records.indexOf( rec ); int size = records.size(); - if (size > TABLE_SIZE) { + while (size > TABLE_SIZE) { Record removedGame; if (lastRecord == size - 1) { @@ -83,6 +83,8 @@ public enum Rankings { if (removedGame.gameFile.length() > 0) { Game.instance.deleteFile( removedGame.gameFile ); } + + size = records.size(); } totalNumber++; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/RankingsScene.java b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/RankingsScene.java index d4ea1be1b..4042f4b9d 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/RankingsScene.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/RankingsScene.java @@ -45,7 +45,7 @@ public class RankingsScene extends PixelScene { private static final String TXT_NO_INFO = "No additional information"; - private static final float ROW_HEIGHT = 30; + private static final float ROW_HEIGHT = 20; private static final float GAP = 4; private Archs archs; @@ -127,8 +127,8 @@ public class RankingsScene extends PixelScene { private static final float GAP = 4; - private static final int TEXT_WIN = 0xFFFF88; - private static final int TEXT_LOSE = 0xCCCCCC; + private static final int[] TEXT_WIN = {0xFFFF88, 0xB2B25F}; + private static final int[] TEXT_LOSE= {0xDDDDDD, 0x888888}; private static final int FLARE_WIN = 0x888866; private static final int FLARE_LOSE = 0x666666; @@ -151,20 +151,26 @@ public class RankingsScene extends PixelScene { flare.color( rec.win ? FLARE_WIN : FLARE_LOSE ); addToBack( flare ); } - - position.text( Integer.toString( pos+1 ) ); + + if (pos != Rankings.TABLE_SIZE-1) { + position.text(Integer.toString(pos + 1)); + } else + position.text(" "); position.measure(); desc.text( rec.info ); + desc.measure(); + + int odd = pos % 2; if (rec.win) { shield.view( ItemSpriteSheet.AMULET, null ); - position.hardlight( TEXT_WIN ); - desc.hardlight( TEXT_WIN ); + position.hardlight( TEXT_WIN[odd] ); + desc.hardlight( TEXT_WIN[odd] ); } else { - position.hardlight( TEXT_LOSE ); - desc.hardlight( TEXT_LOSE ); + position.hardlight( TEXT_LOSE[odd] ); + desc.hardlight( TEXT_LOSE[odd] ); } classIcon.copy( Icons.get( rec.heroClass ) ); @@ -181,7 +187,7 @@ public class RankingsScene extends PixelScene { position = new BitmapText( PixelScene.font1x ); add( position ); - desc = createMultiline( 9 ); + desc = createMultiline( 9 ); add( desc ); classIcon = new Image(); @@ -209,7 +215,7 @@ public class RankingsScene extends PixelScene { desc.x = shield.x + shield.width + GAP; desc.maxWidth = (int)(classIcon.x - desc.x); desc.measure(); - desc.y = position.y + position.baseLine() - desc.baseLine(); + desc.y = align( shield.y + (shield.height - desc.height()) / 2 + 1 ); } @Override