Minor optimizations.
- Only retrieve song information String[] when needed. - Don't try to load glyphs if Unicode metadata is disabled. Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
This commit is contained in:
parent
f6eac71643
commit
db4ca5f1d5
|
@ -324,7 +324,7 @@ public enum GameImage {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Game image constructor.
|
* Constructor.
|
||||||
* @param filename the image file name
|
* @param filename the image file name
|
||||||
*/
|
*/
|
||||||
GameImage(String filename) {
|
GameImage(String filename) {
|
||||||
|
@ -333,7 +333,7 @@ public enum GameImage {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Game image constructor.
|
* Constructor.
|
||||||
* @param filename the image file name
|
* @param filename the image file name
|
||||||
* @param gameImage whether or not the image is related to gameplay
|
* @param gameImage whether or not the image is related to gameplay
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -24,6 +24,8 @@ import java.io.FilenameFilter;
|
||||||
import net.lingala.zip4j.core.ZipFile;
|
import net.lingala.zip4j.core.ZipFile;
|
||||||
import net.lingala.zip4j.exception.ZipException;
|
import net.lingala.zip4j.exception.ZipException;
|
||||||
|
|
||||||
|
import org.newdawn.slick.util.Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unpacker for OSZ (ZIP) archives.
|
* Unpacker for OSZ (ZIP) archives.
|
||||||
*/
|
*/
|
||||||
|
@ -83,7 +85,8 @@ public class OszUnpacker {
|
||||||
ZipFile zipFile = new ZipFile(file);
|
ZipFile zipFile = new ZipFile(file);
|
||||||
zipFile.extractAll(dest.getAbsolutePath());
|
zipFile.extractAll(dest.getAbsolutePath());
|
||||||
} catch (ZipException e) {
|
} catch (ZipException e) {
|
||||||
e.printStackTrace();
|
Log.error(String.format("Failed to unzip file %s to dest %s.",
|
||||||
|
file.getAbsolutePath(), dest.getAbsolutePath()), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -500,6 +500,9 @@ public class Utils {
|
||||||
* @param osu the OsuFile
|
* @param osu the OsuFile
|
||||||
*/
|
*/
|
||||||
public static void loadGlyphs(OsuFile osu) {
|
public static void loadGlyphs(OsuFile osu) {
|
||||||
|
if (!Options.useUnicodeMetadata())
|
||||||
|
return;
|
||||||
|
|
||||||
boolean glyphsAdded = false;
|
boolean glyphsAdded = false;
|
||||||
if (!osu.titleUnicode.isEmpty() && !loadedGlyphs.contains(osu.titleUnicode)) {
|
if (!osu.titleUnicode.isEmpty() && !loadedGlyphs.contains(osu.titleUnicode)) {
|
||||||
Utils.FONT_LARGE.addGlyphs(osu.titleUnicode);
|
Utils.FONT_LARGE.addGlyphs(osu.titleUnicode);
|
||||||
|
@ -515,7 +518,7 @@ public class Utils {
|
||||||
loadedGlyphs.add(osu.artistUnicode);
|
loadedGlyphs.add(osu.artistUnicode);
|
||||||
glyphsAdded = true;
|
glyphsAdded = true;
|
||||||
}
|
}
|
||||||
if (glyphsAdded && Options.useUnicodeMetadata()) {
|
if (glyphsAdded) {
|
||||||
try {
|
try {
|
||||||
Utils.FONT_LARGE.loadGlyphs();
|
Utils.FONT_LARGE.loadGlyphs();
|
||||||
Utils.FONT_MEDIUM.loadGlyphs();
|
Utils.FONT_MEDIUM.loadGlyphs();
|
||||||
|
|
|
@ -85,6 +85,11 @@ public class SongMenu extends BasicGameState {
|
||||||
*/
|
*/
|
||||||
private int oldFileIndex = -1;
|
private int oldFileIndex = -1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Current focus node's song information.
|
||||||
|
*/
|
||||||
|
private String[] songInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Button coordinate values.
|
* Button coordinate values.
|
||||||
*/
|
*/
|
||||||
|
@ -208,17 +213,18 @@ public class SongMenu extends BasicGameState {
|
||||||
int iconWidth = musicNote.getWidth();
|
int iconWidth = musicNote.getWidth();
|
||||||
int iconHeight = musicNote.getHeight();
|
int iconHeight = musicNote.getHeight();
|
||||||
|
|
||||||
String[] info = focusNode.getInfo();
|
if (songInfo == null)
|
||||||
|
songInfo = focusNode.getInfo();
|
||||||
g.setColor(Color.white);
|
g.setColor(Color.white);
|
||||||
Utils.FONT_LARGE.drawString(iconWidth + 5, -3, info[0]);
|
Utils.FONT_LARGE.drawString(iconWidth + 5, -3, songInfo[0]);
|
||||||
Utils.FONT_DEFAULT.drawString(
|
Utils.FONT_DEFAULT.drawString(
|
||||||
iconWidth + 5, -3 + Utils.FONT_LARGE.getLineHeight() * 0.75f, info[1]);
|
iconWidth + 5, -3 + Utils.FONT_LARGE.getLineHeight() * 0.75f, songInfo[1]);
|
||||||
int headerY = iconHeight - 3;
|
int headerY = iconHeight - 3;
|
||||||
Utils.FONT_BOLD.drawString(5, headerY, info[2]);
|
Utils.FONT_BOLD.drawString(5, headerY, songInfo[2]);
|
||||||
headerY += Utils.FONT_BOLD.getLineHeight() - 6;
|
headerY += Utils.FONT_BOLD.getLineHeight() - 6;
|
||||||
Utils.FONT_DEFAULT.drawString(5, headerY, info[3]);
|
Utils.FONT_DEFAULT.drawString(5, headerY, songInfo[3]);
|
||||||
headerY += Utils.FONT_DEFAULT.getLineHeight() - 4;
|
headerY += Utils.FONT_DEFAULT.getLineHeight() - 4;
|
||||||
Utils.FONT_SMALL.drawString(5, headerY, info[4]);
|
Utils.FONT_SMALL.drawString(5, headerY, songInfo[4]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// song buttons
|
// song buttons
|
||||||
|
@ -546,6 +552,7 @@ public class SongMenu extends BasicGameState {
|
||||||
if (node == null)
|
if (node == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
|
songInfo = null;
|
||||||
OsuGroupNode oldFocus = focusNode;
|
OsuGroupNode oldFocus = focusNode;
|
||||||
|
|
||||||
// expand node before focusing it
|
// expand node before focusing it
|
||||||
|
|
Loading…
Reference in New Issue
Block a user