Small memory optimization: reuse audio File objects in song groups.
Each song group references the same audio file probably 100% of the time, so don't create duplicate objects. Also, follow-up to 3b13cc7: the up/down arrow keys now change global volume in the main menu and game states (in addition to the scroll wheel). Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
This commit is contained in:
parent
2bc45bec0a
commit
e2c1f2f937
|
@ -152,7 +152,14 @@ public class OsuParser {
|
||||||
try {
|
try {
|
||||||
switch (tokens[0]) {
|
switch (tokens[0]) {
|
||||||
case "AudioFilename":
|
case "AudioFilename":
|
||||||
osu.audioFilename = new File(file.getParent() + File.separator + tokens[1]);
|
File audioFileName = new File(file.getParent(), tokens[1]);
|
||||||
|
if (!osuFiles.isEmpty()) {
|
||||||
|
// if possible, reuse the same File object from another OsuFile in the group
|
||||||
|
File groupAudioFileName = osuFiles.get(0).audioFilename;
|
||||||
|
if (audioFileName.equals(groupAudioFileName))
|
||||||
|
audioFileName = groupAudioFileName;
|
||||||
|
}
|
||||||
|
osu.audioFilename = audioFileName;
|
||||||
break;
|
break;
|
||||||
case "AudioLeadIn":
|
case "AudioLeadIn":
|
||||||
osu.audioLeadIn = Integer.parseInt(tokens[1]);
|
osu.audioLeadIn = Integer.parseInt(tokens[1]);
|
||||||
|
|
|
@ -644,6 +644,12 @@ public class Game extends BasicGameState {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Input.KEY_UP:
|
||||||
|
Utils.changeVolume(1);
|
||||||
|
break;
|
||||||
|
case Input.KEY_DOWN:
|
||||||
|
Utils.changeVolume(-1);
|
||||||
|
break;
|
||||||
case Input.KEY_F12:
|
case Input.KEY_F12:
|
||||||
Utils.takeScreenShot();
|
Utils.takeScreenShot();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -428,6 +428,12 @@ public class MainMenu extends BasicGameState {
|
||||||
game.enterState(Opsu.STATE_SONGMENU, new FadeOutTransition(Color.black), new FadeInTransition(Color.black));
|
game.enterState(Opsu.STATE_SONGMENU, new FadeOutTransition(Color.black), new FadeInTransition(Color.black));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Input.KEY_UP:
|
||||||
|
Utils.changeVolume(1);
|
||||||
|
break;
|
||||||
|
case Input.KEY_DOWN:
|
||||||
|
Utils.changeVolume(-1);
|
||||||
|
break;
|
||||||
case Input.KEY_F12:
|
case Input.KEY_F12:
|
||||||
Utils.takeScreenShot();
|
Utils.takeScreenShot();
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user