Skip to content

Commit dc8d23e

Browse files
committed
Set correct input mode depending on charts keymode, refactor music select input option picking
1 parent 7af5826 commit dc8d23e

File tree

8 files changed

+131
-85
lines changed

8 files changed

+131
-85
lines changed

src/bms/player/beatoraja/PlayerConfig.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ public class PlayerConfig {
214214
/**
215215
* 選曲時でのキー入力方式
216216
*/
217-
private int musicselectinput = 0;
217+
private MusicSelectKeyProperty musicSelectInputOption = MusicSelectKeyProperty.BEAT_7K;
218218

219219
private IRConfig[] irconfig;
220220

@@ -489,12 +489,12 @@ public void setSort(int sort) {
489489
this.sort = sort;
490490
}
491491

492-
public int getMusicselectinput() {
493-
return musicselectinput;
492+
public MusicSelectKeyProperty getMusicSelectInputOption() {
493+
return musicSelectInputOption;
494494
}
495495

496-
public void setMusicselectinput(int musicselectinput) {
497-
this.musicselectinput = musicselectinput;
496+
public void nextMusicSelectInputOption() {
497+
this.musicSelectInputOption = this.musicSelectInputOption.nextValue();
498498
}
499499

500500
public SkinConfig[] getSkin() {

src/bms/player/beatoraja/config/KeyConfiguration.java

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,6 @@ public class KeyConfiguration extends MainState {
7171
-2 } };
7272
private static final int playerOffset = 100;
7373

74-
private static final String[] SELECTKEY = { "2dx sp", "popn", "2dx dp" };
75-
7674
private int cursorpos = 0;
7775
private int scrollpos = 0;
7876
private boolean keyinput = false;
@@ -112,6 +110,8 @@ public void create() {
112110
titlefont = generator.generateFont(parameter);
113111
shape = new ShapeRenderer();
114112

113+
config = main.getPlayerResource().getPlayerConfig();
114+
reinitializeInputConfigs();
115115
input = main.getInputProcessor();
116116
keyboard = input.getKeyBoardInputProcesseor();
117117
controllers = input.getBMInputProcessor();
@@ -171,7 +171,8 @@ public void render() {
171171
cursorpos = (cursorpos + 1) % keys.length;
172172
}
173173
if (input.isControlKeyPressed(ControlKeys.NUM1)) {
174-
config.setMusicselectinput((config.getMusicselectinput() + 1) % 3);
174+
config.nextMusicSelectInputOption();
175+
reinitializeInputConfigs();
175176
}
176177
// change controller device 1
177178
if (input.isControlKeyPressed(ControlKeys.NUM2)) {
@@ -183,7 +184,7 @@ public void render() {
183184
}
184185
}
185186
pc.getController()[0]
186-
.setName(controllers[(index + 1) % controllers.length].getName());
187+
.setName(controllers[(index + 1) % controllers.length].getName());
187188
pc.setController(pc.getController());
188189
}
189190
}
@@ -257,7 +258,7 @@ public void render() {
257258
titlefont.draw(sprite, "MIDI", 630 * scaleX, 620 * scaleY);
258259
titlefont.setColor(Color.ORANGE);
259260
titlefont.draw(sprite, "Music Select (press [1] to change) : ", 750 * scaleX, 620 * scaleY);
260-
titlefont.draw(sprite, SELECTKEY[config.getMusicselectinput()], 780 * scaleX, 590 * scaleY);
261+
titlefont.draw(sprite, config.getMusicSelectInputOption().toString(), 780 * scaleX, 590 * scaleY);
261262

262263
titlefont.draw(sprite, "Controller Device 1 (press [2] to change) : ", 750 * scaleX, 500 * scaleY);
263264
titlefont.draw(sprite, pc.getController()[0].getName(), 780 * scaleX, 470 * scaleY);
@@ -309,9 +310,26 @@ public void render() {
309310
}
310311
}
311312

313+
private void reinitializeInputConfigs() {
314+
BMSPlayerInputProcessor input = main.getInputProcessor();
315+
PlayModeConfig playModeConfig;
316+
switch (config.getMusicSelectInputOption()) {
317+
case POPN_9K:
318+
playModeConfig = config.getMode9();
319+
break;
320+
case BEAT_14K:
321+
playModeConfig = config.getMode14();
322+
break;
323+
case BEAT_7K:
324+
default:
325+
playModeConfig = config.getMode7();
326+
break;
327+
}
328+
input.setAllInputConfigs(playModeConfig);
329+
}
330+
312331
private void setMode(int mode) {
313332
this.mode = mode;
314-
config = main.getPlayerResource().getPlayerConfig();
315333
pc = config.getPlayConfig(MODE_HINT[mode]);
316334
keyboardConfig = pc.getKeyboardConfig();
317335
controllerConfigs = pc.getController();

src/bms/player/beatoraja/input/BMSPlayerInputProcessor.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,12 @@ public BMSPlayerInputProcessor(Config config, PlayerConfig player) {
123123

124124
private Type type = Type.KEYBOARD;
125125

126+
public void setAllInputConfigs(PlayModeConfig playModeConfig) {
127+
setKeyboardConfig(playModeConfig.getKeyboardConfig());
128+
setControllerConfig(playModeConfig.getController());
129+
setMidiConfig(playModeConfig.getMidiConfig());
130+
}
131+
126132
public void setKeyboardConfig(KeyboardConfig config) {
127133
kbinput.setConfig(config);
128134
}

src/bms/player/beatoraja/play/BMSPlayer.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -444,8 +444,10 @@ public void create() {
444444
}
445445

446446
final BMSPlayerInputProcessor input = main.getInputProcessor();
447-
if(autoplay.mode == BMSPlayerMode.Mode.PLAY || autoplay.mode == BMSPlayerMode.Mode.PRACTICE) {
448-
input.setPlayConfig(config.getPlayConfig(model.getMode()));
447+
if (autoplay.mode == BMSPlayerMode.Mode.PLAY || autoplay.mode == BMSPlayerMode.Mode.PRACTICE) {
448+
PlayModeConfig playModeConfig = config.getPlayConfig(model.getMode());
449+
input.setAllInputConfigs(playModeConfig);
450+
input.setPlayConfig(playModeConfig);
449451
} else if (autoplay.mode == BMSPlayerMode.Mode.AUTOPLAY || autoplay.mode == BMSPlayerMode.Mode.REPLAY) {
450452
input.setEnable(false);
451453
}
@@ -475,16 +477,15 @@ public void create() {
475477
practice.create(model);
476478
state = STATE_PRACTICE;
477479
} else {
478-
479-
if(resource.getRivalScoreData() == null) {
480+
if (resource.getRivalScoreData() == null) {
480481
int rivalscore = TargetProperty.getTargetProperty(config.getTargetid()).getTarget(main);
481482
ScoreData rivalScore = new ScoreData();
482483
rivalScore.setPlayer(TargetProperty.getTargetProperty(config.getTargetid()).getName());
483484
rivalScore.setEpg(rivalscore / 2);
484485
rivalScore.setEgr(rivalscore % 2);
485486
resource.setRivalScoreData(rivalScore);
486487
}
487-
getScoreDataProperty().setTargetScore(score.getExscore(), score.decodeGhost(), resource.getRivalScoreData() != null ? resource.getRivalScoreData().getExscore() : 0 , null, model.getTotalNotes());
488+
getScoreDataProperty().setTargetScore(score.getExscore(), score.decodeGhost(), resource.getRivalScoreData() != null ? resource.getRivalScoreData().getExscore() : 0, null, model.getTotalNotes());
488489
}
489490
}
490491

src/bms/player/beatoraja/select/BarRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -760,7 +760,7 @@ public void render(SkinObjectRenderer sprite, MusicSelectSkin skin, SkinBar baro
760760
public void input() {
761761
BMSPlayerInputProcessor input = select.main.getInputProcessor();
762762

763-
final MusicSelectKeyProperty property = MusicSelectKeyProperty.values()[select.main.getPlayerResource().getPlayerConfig().getMusicselectinput()];
763+
final MusicSelectKeyProperty property = select.main.getPlayerResource().getPlayerConfig().getMusicSelectInputOption();
764764

765765
// song bar scroll on mouse wheel
766766
int mov = -input.getScroll();

src/bms/player/beatoraja/select/MusicSelectInputProcessor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,12 +102,12 @@ public void canceled() {
102102
select.executeEvent(EventType.lnmode);
103103
}
104104

105-
final MusicSelectKeyProperty property = MusicSelectKeyProperty.values()[config.getMusicselectinput()];
105+
final MusicSelectKeyProperty property = config.getMusicSelectInputOption();
106106

107-
if(!input.startPressed() && !input.isSelectPressed() && !input.getControlKeyState(ControlKeys.NUM5)){
107+
if (!input.startPressed() && !input.isSelectPressed() && !input.getControlKeyState(ControlKeys.NUM5)) {
108108
//オプションキー入力なし
109109
isOptionKeyReleased = true;
110-
if(isOptionKeyPressed) {
110+
if (isOptionKeyPressed) {
111111
isOptionKeyPressed = false;
112112
select.play(SOUND_OPTIONCLOSE);
113113
}
Lines changed: 79 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,74 @@
11
package bms.player.beatoraja.select;
22

3-
import static bms.player.beatoraja.select.MusicSelectKeyProperty.MusicSelectKey.*;
43
import bms.player.beatoraja.input.BMSPlayerInputProcessor;
54

5+
import static bms.player.beatoraja.select.MusicSelectKeyProperty.MusicSelectKey.*;
6+
67
public enum MusicSelectKeyProperty {
78

8-
BEAT_7K(new MusicSelectKey[][]{
9-
{PLAY, FOLDER_OPEN, OPTION1_DOWN, JUDGEWINDOW_UP, BGA_DOWN},
10-
{FOLDER_CLOSE, OPTION1_UP, CONSTANT, GAUGEAUTOSHIFT_DOWN},
11-
{PRACTICE, FOLDER_OPEN, GAUGE_DOWN, JUDGEAREA, NOTESDISPLAYTIMING_AUTOADJUST},
12-
{FOLDER_CLOSE, OPTIONDP_DOWN, LEGACYNOTE, DURATION_DOWN},
13-
{FOLDER_OPEN, AUTO, HSFIX_DOWN, MARKNOTE, NOTESDISPLAYTIMING_DOWN},
14-
{NEXT_REPLAY, OPTION2_UP, BPMGUIDE ,DURATION_UP},
15-
{FOLDER_OPEN, REPLAY, OPTION2_DOWN, NOMINE, NOTESDISPLAYTIMING_UP},
16-
{UP, TARGET_UP},
17-
{DOWN, TARGET_DOWN}
18-
}),
19-
POPN_9K(new MusicSelectKey[][]{
20-
{AUTO, OPTION1_DOWN, JUDGEWINDOW_UP, BGA_DOWN},
21-
{OPTION1_UP, CONSTANT, GAUGEAUTOSHIFT_DOWN},
22-
{FOLDER_CLOSE, GAUGE_DOWN, JUDGEAREA, NOTESDISPLAYTIMING_AUTOADJUST},
23-
{DOWN, OPTIONDP_DOWN, LEGACYNOTE, DURATION_DOWN},
24-
{PLAY, FOLDER_OPEN, HSFIX_DOWN, MARKNOTE, NOTESDISPLAYTIMING_DOWN},
25-
{UP, OPTION2_UP, BPMGUIDE ,DURATION_UP},
26-
{PRACTICE, FOLDER_OPEN, OPTION2_DOWN, NOMINE, NOTESDISPLAYTIMING_UP},
27-
{TARGET_UP, NEXT_REPLAY},
28-
{REPLAY, TARGET_DOWN}
29-
}),
30-
BEAT_14K(new MusicSelectKey[][]{
31-
{PLAY, FOLDER_OPEN, OPTION1_DOWN, JUDGEWINDOW_UP, BGA_DOWN},
32-
{FOLDER_CLOSE, OPTION1_UP, CONSTANT, GAUGEAUTOSHIFT_DOWN},
33-
{PRACTICE, FOLDER_OPEN, GAUGE_DOWN, JUDGEAREA, NOTESDISPLAYTIMING_AUTOADJUST},
34-
{FOLDER_CLOSE, OPTIONDP_DOWN, LEGACYNOTE, DURATION_DOWN},
35-
{FOLDER_OPEN, AUTO, HSFIX_DOWN, MARKNOTE, NOTESDISPLAYTIMING_DOWN},
36-
{NEXT_REPLAY, OPTION2_UP, BPMGUIDE ,DURATION_UP},
37-
{FOLDER_OPEN, REPLAY, OPTION2_DOWN, NOMINE, NOTESDISPLAYTIMING_UP},
38-
{UP, TARGET_UP},
39-
{DOWN, TARGET_DOWN},
40-
{PLAY, FOLDER_OPEN, OPTION1_DOWN, JUDGEWINDOW_UP, BGA_DOWN},
41-
{FOLDER_CLOSE, OPTION1_UP, CONSTANT, GAUGEAUTOSHIFT_DOWN},
42-
{PRACTICE, FOLDER_OPEN, GAUGE_DOWN, JUDGEAREA, NOTESDISPLAYTIMING_AUTOADJUST},
43-
{FOLDER_CLOSE, OPTIONDP_DOWN, LEGACYNOTE, DURATION_DOWN},
44-
{FOLDER_OPEN, AUTO, HSFIX_DOWN, MARKNOTE, NOTESDISPLAYTIMING_DOWN},
45-
{NEXT_REPLAY, OPTION2_UP, BPMGUIDE ,DURATION_UP},
46-
{FOLDER_OPEN, REPLAY, OPTION2_DOWN, NOMINE, NOTESDISPLAYTIMING_UP},
47-
{UP, TARGET_UP},
48-
{DOWN, TARGET_DOWN}
49-
}),
50-
;
51-
52-
private final MusicSelectKey[][] assign;
53-
54-
private MusicSelectKeyProperty(MusicSelectKey[][] assign) {
55-
this.assign = assign;
56-
}
9+
BEAT_7K(
10+
"2dx sp",
11+
new MusicSelectKey[][]{
12+
{PLAY, FOLDER_OPEN, OPTION1_DOWN, JUDGEWINDOW_UP, BGA_DOWN},
13+
{FOLDER_CLOSE, OPTION1_UP, CONSTANT, GAUGEAUTOSHIFT_DOWN},
14+
{PRACTICE, FOLDER_OPEN, GAUGE_DOWN, JUDGEAREA, NOTESDISPLAYTIMING_AUTOADJUST},
15+
{FOLDER_CLOSE, OPTIONDP_DOWN, LEGACYNOTE, DURATION_DOWN},
16+
{FOLDER_OPEN, AUTO, HSFIX_DOWN, MARKNOTE, NOTESDISPLAYTIMING_DOWN},
17+
{NEXT_REPLAY, OPTION2_UP, BPMGUIDE, DURATION_UP},
18+
{FOLDER_OPEN, REPLAY, OPTION2_DOWN, NOMINE, NOTESDISPLAYTIMING_UP},
19+
{UP, TARGET_UP},
20+
{DOWN, TARGET_DOWN}
21+
}
22+
),
23+
POPN_9K(
24+
"popn",
25+
new MusicSelectKey[][]{
26+
{AUTO, OPTION1_DOWN, JUDGEWINDOW_UP, BGA_DOWN},
27+
{OPTION1_UP, CONSTANT, GAUGEAUTOSHIFT_DOWN},
28+
{FOLDER_CLOSE, GAUGE_DOWN, JUDGEAREA, NOTESDISPLAYTIMING_AUTOADJUST},
29+
{DOWN, OPTIONDP_DOWN, LEGACYNOTE, DURATION_DOWN},
30+
{PLAY, FOLDER_OPEN, HSFIX_DOWN, MARKNOTE, NOTESDISPLAYTIMING_DOWN},
31+
{UP, OPTION2_UP, BPMGUIDE, DURATION_UP},
32+
{PRACTICE, FOLDER_OPEN, OPTION2_DOWN, NOMINE, NOTESDISPLAYTIMING_UP},
33+
{TARGET_UP, NEXT_REPLAY},
34+
{REPLAY, TARGET_DOWN}
35+
}
36+
),
37+
BEAT_14K(
38+
"2dx dp",
39+
new MusicSelectKey[][]{
40+
{PLAY, FOLDER_OPEN, OPTION1_DOWN, JUDGEWINDOW_UP, BGA_DOWN},
41+
{FOLDER_CLOSE, OPTION1_UP, CONSTANT, GAUGEAUTOSHIFT_DOWN},
42+
{PRACTICE, FOLDER_OPEN, GAUGE_DOWN, JUDGEAREA, NOTESDISPLAYTIMING_AUTOADJUST},
43+
{FOLDER_CLOSE, OPTIONDP_DOWN, LEGACYNOTE, DURATION_DOWN},
44+
{FOLDER_OPEN, AUTO, HSFIX_DOWN, MARKNOTE, NOTESDISPLAYTIMING_DOWN},
45+
{NEXT_REPLAY, OPTION2_UP, BPMGUIDE, DURATION_UP},
46+
{FOLDER_OPEN, REPLAY, OPTION2_DOWN, NOMINE, NOTESDISPLAYTIMING_UP},
47+
{UP, TARGET_UP},
48+
{DOWN, TARGET_DOWN},
49+
{PLAY, FOLDER_OPEN, OPTION1_DOWN, JUDGEWINDOW_UP, BGA_DOWN},
50+
{FOLDER_CLOSE, OPTION1_UP, CONSTANT, GAUGEAUTOSHIFT_DOWN},
51+
{PRACTICE, FOLDER_OPEN, GAUGE_DOWN, JUDGEAREA, NOTESDISPLAYTIMING_AUTOADJUST},
52+
{FOLDER_CLOSE, OPTIONDP_DOWN, LEGACYNOTE, DURATION_DOWN},
53+
{FOLDER_OPEN, AUTO, HSFIX_DOWN, MARKNOTE, NOTESDISPLAYTIMING_DOWN},
54+
{NEXT_REPLAY, OPTION2_UP, BPMGUIDE, DURATION_UP},
55+
{FOLDER_OPEN, REPLAY, OPTION2_DOWN, NOMINE, NOTESDISPLAYTIMING_UP},
56+
{UP, TARGET_UP},
57+
{DOWN, TARGET_DOWN}
58+
}
59+
),
60+
;
61+
62+
private static final MusicSelectKeyProperty[] VALUES = values();
63+
64+
private final String text;
65+
66+
private final MusicSelectKey[][] assign;
67+
68+
MusicSelectKeyProperty(String text, MusicSelectKey[][] assign) {
69+
this.text = text;
70+
this.assign = assign;
71+
}
5772

5873
public int getAnalogChange(BMSPlayerInputProcessor input, MusicSelectKey code) {
5974
int dTicks = 0;
@@ -105,6 +120,19 @@ public enum MusicSelectKey {
105120
OPTION1_UP, OPTION1_DOWN, GAUGE_UP, GAUGE_DOWN, OPTIONDP_UP, OPTIONDP_DOWN, HSFIX_UP, HSFIX_DOWN, OPTION2_UP, OPTION2_DOWN, TARGET_UP, TARGET_DOWN,
106121
JUDGEAREA, NOMINE, BPMGUIDE, LEGACYNOTE, CONSTANT, JUDGEWINDOW_UP, JUDGEWINDOW_DOWN, MARKNOTE,
107122
BGA_UP, BGA_DOWN, GAUGEAUTOSHIFT_UP, GAUGEAUTOSHIFT_DOWN, DURATION_UP, DURATION_DOWN, NOTESDISPLAYTIMING_UP, NOTESDISPLAYTIMING_DOWN, NOTESDISPLAYTIMING_AUTOADJUST, NEXT_REPLAY
108-
;;
123+
}
124+
125+
public MusicSelectKeyProperty nextValue() {
126+
int nextPosition = this.ordinal() + 1;
127+
if (nextPosition == VALUES.length) {
128+
return VALUES[0];
129+
} else {
130+
return VALUES[nextPosition];
131+
}
132+
}
133+
134+
@Override
135+
public String toString() {
136+
return text;
109137
}
110138
}

src/bms/player/beatoraja/select/MusicSelector.java

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -341,11 +341,11 @@ public void create() {
341341
main.getSoundManager().shuffle();
342342
setSound(SOUND_BGM, "select.wav", SoundType.BGM, true);
343343
setSound(SOUND_SCRATCH, "scratch.wav", SoundType.SOUND, false);
344-
setSound(SOUND_FOLDEROPEN, "f-open.wav", SoundType.SOUND,false);
345-
setSound(SOUND_FOLDERCLOSE, "f-close.wav", SoundType.SOUND,false);
346-
setSound(SOUND_OPTIONCHANGE, "o-change.wav", SoundType.SOUND,false);
347-
setSound(SOUND_OPTIONOPEN, "o-open.wav", SoundType.SOUND,false);
348-
setSound(SOUND_OPTIONCLOSE, "o-close.wav", SoundType.SOUND,false);
344+
setSound(SOUND_FOLDEROPEN, "f-open.wav", SoundType.SOUND, false);
345+
setSound(SOUND_FOLDERCLOSE, "f-close.wav", SoundType.SOUND, false);
346+
setSound(SOUND_OPTIONCHANGE, "o-change.wav", SoundType.SOUND, false);
347+
setSound(SOUND_OPTIONOPEN, "o-open.wav", SoundType.SOUND, false);
348+
setSound(SOUND_OPTIONCLOSE, "o-close.wav", SoundType.SOUND, false);
349349

350350
play = null;
351351
showNoteGraph = false;
@@ -363,22 +363,15 @@ public void create() {
363363

364364
preview = new PreviewMusicProcessor(main.getAudioProcessor(), main.getPlayerResource().getConfig());
365365
preview.setDefault(getSound(SOUND_BGM));
366-
367-
final BMSPlayerInputProcessor input = main.getInputProcessor();
368-
PlayModeConfig pc = (config.getMusicselectinput() == 0 ? config.getMode7()
369-
: (config.getMusicselectinput() == 1 ? config.getMode9() : config.getMode14()));
370-
input.setKeyboardConfig(pc.getKeyboardConfig());
371-
input.setControllerConfig(pc.getController());
372-
input.setMidiConfig(pc.getMidiConfig());
373366
bar.updateBar();
374367

375368
loadSkin(SkinType.MUSIC_SELECT);
376369

377370
// search text field
378371
Rectangle searchRegion = ((MusicSelectSkin) getSkin()).getSearchTextRegion();
379372
if (searchRegion != null && (getStage() == null ||
380-
(search != null && !searchRegion.equals(search.getSearchBounds())))) {
381-
if(search != null) {
373+
(search != null && !searchRegion.equals(search.getSearchBounds())))) {
374+
if (search != null) {
382375
search.dispose();
383376
}
384377
search = new SearchTextField(this, main.getPlayerResource().getConfig().getResolution());

0 commit comments

Comments
 (0)