diff --git a/ArcadeReader.java b/ArcadeReader.java index 36eeaac..7d70fd2 100644 --- a/ArcadeReader.java +++ b/ArcadeReader.java @@ -589,11 +589,11 @@ public class ArcadeReader { test("sdvx1.png",SoundVoltexReader.class, 3019559/*score*/, SDVX_D/*rank*/, - new int[]{13,59,31,495,34,56,502}/*notes*/, + new int[]{13,59,31,495,34,56,582}/*notes*/, 0/*difficulty*/, 0.0/*pct*/, 233/*maxcombo*/, - "{failed:false}"/*other*/); + "{ex:1696,chip_scritical:72,chip_critical:65,chip_near:115,chip_error:240,long_scritical:79,long_error:93,vol_scritical:344,vol_error:262,failed:true}"/*other*/); test("sdvx2.png",SoundVoltexReader.class, 2060643/*score*/, SDVX_D/*rank*/, @@ -601,7 +601,7 @@ public class ArcadeReader { 0/*difficulty*/, 0.0/*pct*/, 87/*maxcombo*/, - "{failed:false}"/*other*/); + "{ex:361,chip_scritical:5,chip_critical:5,chip_near:3,chip_error:26,long_scritical:53,long_error:79,vol_scritical:102,vol_error:4,failed:true}"/*other*/); test("sdvx3.png",SoundVoltexReader.class, 8759328/*score*/, SDVX_A/*rank*/, @@ -609,7 +609,7 @@ public class ArcadeReader { 0/*difficulty*/, 0.0/*pct*/, 257/*maxcombo*/, - "{failed:false}"/*other*/); + "{ex:5816,chip_scritical:408,chip_critical:296,chip_near:244,chip_error:67,long_scritical:423,long_error:11,vol_scritical:629,vol_error:66,failed:true}"/*other*/); test("sdvx4.png",SoundVoltexReader.class, 9129755/*score*/, SDVX_APLUS/*rank*/, @@ -617,7 +617,7 @@ public class ArcadeReader { 0/*difficulty*/, 0.0/*pct*/, 234/*maxcombo*/, - "{failed:false}"/*other*/); + "{ex:4882,chip_scritical:274,chip_critical:193,chip_near:170,chip_error:32,long_scritical:308,long_error:13,vol_scritical:892,vol_error:37,failed:true}"/*other*/); test("sdvx5.png",SoundVoltexReader.class, 9653667/*score*/, SDVX_AAPLUS/*rank*/, @@ -625,7 +625,7 @@ public class ArcadeReader { 0/*difficulty*/, 0.0/*pct*/, 593/*maxcombo*/, - "{failed:false}"/*other*/); + "{ex:4119,chip_scritical:173,chip_critical:109,chip_near:65,chip_error:4,long_scritical:375,long_error:1,vol_scritical:969,vol_error:22,failed:false}"/*other*/); test("sdvx6.png",SoundVoltexReader.class, 9698351/*score*/, SDVX_AA/*rank*/, @@ -633,7 +633,7 @@ public class ArcadeReader { 17/*difficulty*/, 0.0/*pct*/, 372/*maxcombo*/, - "{failed:false}"/*other*/); + "{ex:5525,chip_scritical:341,chip_critical:185,chip_near:99,chip_error:8,long_scritical:345,long_error:17,vol_scritical:1096,vol_error:32,failed:true}"/*other*/); test("sdvx7.png",SoundVoltexReader.class, 9698351/*score*/, SDVX_AA/*rank*/, @@ -641,6 +641,6 @@ public class ArcadeReader { 0/*difficulty*/, 0.0/*pct*/, 372/*maxcombo*/, - "{failed:false}"/*other*/); + "{ex:5525,chip_scritical:341,chip_critical:185,chip_near:99,chip_error:8,long_scritical:345,long_error:17,vol_scritical:1096,vol_error:32,failed:true}"/*other*/); } } diff --git a/readers/PopnReader.java b/readers/PopnReader.java index 5272a50..c742a30 100644 --- a/readers/PopnReader.java +++ b/readers/PopnReader.java @@ -204,7 +204,7 @@ public class PopnReader extends Reader{ case 4:{ Font f = Font.FONT_POPN_NOTECOUNT; List glyphs = Glyph.split(cutImg); - return f.convertGlyphs(glyphs,true); + return f.convertGlyphs(glyphs); } case 5:{ Font f = Font.FONT_POPN_COMBO; diff --git a/readers/Reader.java b/readers/Reader.java index e3fb65f..f9c771f 100644 --- a/readers/Reader.java +++ b/readers/Reader.java @@ -304,7 +304,7 @@ public abstract class Reader{ int convertToInt(String[]data){return convertToInt("",data);} int convertToInt(String prefix,String[] data) { - int numb=0; + String numb=""; for (int i=0;i0) { + return Integer.parseInt(numb); + } else { + return 0; + } } @Override public String toString() { diff --git a/readers/SoundVoltexReader.java b/readers/SoundVoltexReader.java index f8d09f1..29aafac 100644 --- a/readers/SoundVoltexReader.java +++ b/readers/SoundVoltexReader.java @@ -110,7 +110,7 @@ public class SoundVoltexReader extends Reader{ }break; case 3:{ final ColorRange TARGETCOLOR = new ColorRange(230,255,180,255,20,255); - final ColorRange SEEKINGCOLOR = new ColorRange(130,255,100,255,15,255); + final ColorRange SEEKINGCOLOR = new ColorRange(200,255,180,255,15,255); final Color FINALCOLOR = Color.MAGENTA; for (int i=0;i glyphs = Glyph.split(cutImg); - return f.convertGlyphs(glyphs); + return f.convertGlyphs(glyphs,true); } case 5: case 6: @@ -421,17 +425,17 @@ public class SoundVoltexReader extends Reader{ score=convertToInt(splitter); }break; case 2:{ - int score2=convertToInt(splitter); - score=convertToInt(new String[]{Integer.toString(score),Integer.toString(score2)}); + String score2=convertToString(splitter); + score=convertToInt(new String[]{Integer.toString(score),score2}); }break; case 3:{ other+="{ex:"+Integer.toString(convertToInt("EX SCORE",splitter))+","; }break; case 4:{ pct=convertToDouble(splitter);//We're lucky excessive and effective rate have the same number of characters... - if (effectiveRate&&pct<70) { + /*if (effectiveRate&&pct<70) { failed=true; - } + }*/ }break; case 5:{ notes[0]=convertToInt("ERROR",splitter); diff --git a/readers/fonts/Font.java b/readers/fonts/Font.java index 8dedece..24ebfc4 100644 --- a/readers/fonts/Font.java +++ b/readers/fonts/Font.java @@ -198,6 +198,9 @@ public class Font { } sb.append(bestGlyph); } + if (debug) { + System.out.println(sb.toString()+"\n========"); + } return sb.toString(); } } diff --git a/readers/fonts/sdvx_EXScore b/readers/fonts/sdvx_EXScore index 476fda4..613b61c 100644 --- a/readers/fonts/sdvx_EXScore +++ b/readers/fonts/sdvx_EXScore @@ -1,30 +1,30 @@ 9 11 -011111110111001111110000011110000011110000011110000011110000011110000011110000011110000011011111111 +000111100010000110110000010110000011110000011110000011110000011110000011110000011010000011011111110 2 11 1111111111111111111111 8 11 -1111111011111111000000110000001100000011011111111111111011000000110000001100000011111111 +1111110011111110000000110000001100000011001111100111110011000000110000001100000011111111 8 11 -1111111011111111000000110000001100000011000111100001111000000011000000110000001111111111 +1111110011111110000000110000001100000011000111100001111000000011000000110000001111111110 8 11 -0000111100011111001110110011001101110011111000111111111111111111000000110000001100000011 +0000111100001011000100110011001100100011010000111111111101111111000000110000001100000011 8 11 -1111111111111111110000001100000011111110111111110000001100000011000000110000001111111111 +1111111111111111110000001100000011111100111111100000001100000011000000110000001111111110 9 11 -011111111111111111110000000110000000111111110111111111110000011110000011110000011110000011111111111 -8 -11 -1111111111111111000000110000011000000110000011100000110000011100000110000001100000110000 +001111111011111111110000000110000000111111100111111110110000011110000011110000011110000011011111110 +0 +0 + 9 11 -011111110111001111110000011110000011110000011011111110011111110110000011110000011110000011111111111 +001111100010000110110000011110000011110000010011111110011111110110000010110000011110000011011111110 9 11 -011111110111111111110000011110000011110000011110000011111111111011111111000000011000000011111111111 +001111100011111110110000011110000011110000011110000011011111111001111111000000011000000011111111110 diff --git a/result.png b/result.png index af69a78..6a50679 100644 Binary files a/result.png and b/result.png differ diff --git a/sigPlace.java b/sigPlace.java index 4eed7e3..065721d 100644 --- a/sigPlace.java +++ b/sigPlace.java @@ -81,21 +81,21 @@ public class sigPlace { final static int TRANSPARENT = new Color(0,0,0,0).getRGB(); public static void main(String[] args) { - /*String fontName = "lovelive_score"; - String value = "325415"; - Path f = Paths.get("tests","lovelive1.png"); + /*String fontName = "sdvx_EXScore"; + String value = "05525"; + Path f = Paths.get("tests","sdvx6.png"); BufferedImage img; try { img = ImageIO.read(f.toFile()); - Box scoreBox = new Box(713,401,232,50); + Box scoreBox = new Box(630,1142,110,16); int[] arr = img.getRGB(scoreBox.x, scoreBox.y, scoreBox.w, scoreBox.h, null, 0, scoreBox.w); BufferedImage newImg = new BufferedImage(scoreBox.w,scoreBox.h,BufferedImage.TYPE_INT_ARGB); int width=scoreBox.w; - final ColorRange TARGETCOLOR = new ColorRange(240,255,130,150,0,10); - final ColorRange SEEKINGCOLOR = new ColorRange(140,255,120,255,0,180); + final ColorRange TARGETCOLOR = new ColorRange(230,255,180,255,20,255); + final ColorRange SEEKINGCOLOR = new ColorRange(200,255,180,255,15,255); final Color FINALCOLOR = Color.MAGENTA; for (int i=0;i