0.6.0.10 - Make menu keys for all players and 1P drum keys for 1P work for difficulty menu and gameplay option menu
- Fix Softlocked in difficulty selection when any non P1 player has no key binds * Now menu keys control the lowerest index operable player - Fix P1 could have only use menu keys but not drum keys, if the key binds differ * Now both work - Fix Up and Down arrow keys controlled multiple players at once in gameplay option * Now menu keys only control the lowerest index operable player
This commit is contained in:
parent
d8077b13fb
commit
ad21410703
@ -250,7 +250,7 @@ class CStage段位選択 : CStage {
|
|||||||
this.段位挑戦選択画面.Draw();
|
this.段位挑戦選択画面.Draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (段位挑戦選択画面.bOption) actPlayOption.On進行描画(0);
|
this.actPlayOption.On進行描画(1, [this.段位挑戦選択画面.bOption]);
|
||||||
|
|
||||||
if (ct待機.CurrentValue >= 3000) {
|
if (ct待機.CurrentValue >= 3000) {
|
||||||
if (段位リスト.currentBar.nodeType == CSongListNode.ENodeType.RANDOM) {
|
if (段位リスト.currentBar.nodeType == CSongListNode.ENodeType.RANDOM) {
|
||||||
|
@ -138,38 +138,13 @@ internal class CActPlayOption : CActivity {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public int On進行描画(int player) {
|
public int On進行描画(int nPlayers, ReadOnlySpan<bool> bOptions) {
|
||||||
if (this.IsDeActivated)
|
if (this.IsDeActivated)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (ctOpen.CurrentValue == 0)
|
|
||||||
Init(player);
|
|
||||||
|
|
||||||
ctOpen.Tick();
|
|
||||||
ctClose.Tick();
|
|
||||||
|
|
||||||
if (!ctOpen.IsTicked) ctOpen.Start(0, 50, 6, OpenTaiko.Timer);
|
|
||||||
|
|
||||||
var act難易度 = OpenTaiko.stageSongSelect.actDifficultySelectionScreen;
|
var act難易度 = OpenTaiko.stageSongSelect.actDifficultySelectionScreen;
|
||||||
var danAct = OpenTaiko.stage段位選択.段位挑戦選択画面;
|
var danAct = OpenTaiko.stage段位選択.段位挑戦選択画面;
|
||||||
|
|
||||||
#region [ Open & Close ]
|
|
||||||
|
|
||||||
float oy1 = ctOpen.CurrentValue * 18;
|
|
||||||
float oy2 = (ctOpen.CurrentValue - 30) * 4;
|
|
||||||
float oy3 = ctOpen.CurrentValue < 30 ? 410 - oy1 : -80 + oy2;
|
|
||||||
|
|
||||||
float cy1 = ctClose.CurrentValue * 3;
|
|
||||||
float cy2 = (ctClose.CurrentValue - 20) * 16;
|
|
||||||
float cy3 = ctClose.CurrentValue < 20 ? 0 - cy1 : 20 + cy2;
|
|
||||||
|
|
||||||
float y = oy3 + cy3;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var _textures = new CTexture[]
|
var _textures = new CTexture[]
|
||||||
{
|
{
|
||||||
txSpeed[nSpeedCount],
|
txSpeed[nSpeedCount],
|
||||||
@ -184,127 +159,170 @@ internal class CActPlayOption : CActivity {
|
|||||||
txSongSpeed[nSongSpeed],
|
txSongSpeed[nSongSpeed],
|
||||||
txOtoiro[nOtoiro],
|
txOtoiro[nOtoiro],
|
||||||
txFunMods[nFunMods],
|
txFunMods[nFunMods],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// menu key input, for the lowest-index player who is modifying play options
|
||||||
|
bool leftMenu = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LeftChange) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.LeftArrow));
|
||||||
|
bool rightMenu = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RightChange) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.RightArrow));
|
||||||
|
bool centerMenu = (OpenTaiko.Pad.bPressedDGB(EPad.Decide) ||
|
||||||
|
(OpenTaiko.ConfigIni.bEnterIsNotUsedInKeyAssignments && OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Return)));
|
||||||
|
bool upMenu = (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.UpArrow));
|
||||||
|
bool downMenu = (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.DownArrow));
|
||||||
|
bool cancelMenu = (OpenTaiko.Pad.bPressedDGB(EPad.Cancel) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Escape));
|
||||||
|
|
||||||
var pos = player % 2;
|
for (int player = 0; player < nPlayers; ++player) {
|
||||||
var _shift = pos == 1 ? (OpenTaiko.Tx.Difficulty_Option.szTextureSize.Width / 2) : 0;
|
if (!bOptions[player]) {
|
||||||
var _rect = new Rectangle(_shift, 0, OpenTaiko.Tx.Difficulty_Option.szTextureSize.Width / 2, OpenTaiko.Tx.Difficulty_Option.szTextureSize.Height);
|
continue;
|
||||||
|
|
||||||
OpenTaiko.Tx.Difficulty_Option.t2D描画(_shift, y, _rect);
|
|
||||||
OpenTaiko.Tx.Difficulty_Option_Select.t2D描画(_shift + OpenTaiko.Skin.SongSelect_Option_Select_Offset[0] + NowCount * OpenTaiko.Skin.SongSelect_Option_Interval[0],
|
|
||||||
OpenTaiko.Skin.SongSelect_Option_Select_Offset[1] + y + NowCount * OpenTaiko.Skin.SongSelect_Option_Interval[1], _rect);
|
|
||||||
|
|
||||||
for (int i = 0; i < OptionType.Length; i++) {
|
|
||||||
OptionType[i].t2D描画(OpenTaiko.Skin.SongSelect_Option_OptionType_X[pos] + i * OpenTaiko.Skin.SongSelect_Option_Interval[0],
|
|
||||||
OpenTaiko.Skin.SongSelect_Option_OptionType_Y[pos] + y + i * OpenTaiko.Skin.SongSelect_Option_Interval[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
txModMults[0]?.t2D拡大率考慮描画(CTexture.RefPnt.Up, OpenTaiko.Skin.SongSelect_Option_ModMults1_X[pos], OpenTaiko.Skin.SongSelect_Option_ModMults1_Y[pos] + y);
|
|
||||||
txModMults[1]?.t2D拡大率考慮描画(CTexture.RefPnt.Up, OpenTaiko.Skin.SongSelect_Option_ModMults2_X[pos], OpenTaiko.Skin.SongSelect_Option_ModMults2_Y[pos] + y);
|
|
||||||
|
|
||||||
for (int i = 0; i < _textures.Length; i++) {
|
|
||||||
_textures[i]?.t2D拡大率考慮描画(CTexture.RefPnt.Up, OpenTaiko.Skin.SongSelect_Option_Value_X[pos] + i * OpenTaiko.Skin.SongSelect_Option_Interval[0],
|
|
||||||
OpenTaiko.Skin.SongSelect_Option_Value_Y[pos] + y + i * OpenTaiko.Skin.SongSelect_Option_Interval[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ctClose.CurrentValue >= 50) {
|
|
||||||
Decision(player);
|
|
||||||
NowCount = 0;
|
|
||||||
ctOpen.Stop();
|
|
||||||
ctOpen.CurrentValue = 0;
|
|
||||||
ctClose.Stop();
|
|
||||||
ctClose.CurrentValue = 0;
|
|
||||||
bEnd = false;
|
|
||||||
act難易度.bOption[player] = false;
|
|
||||||
danAct.bOption = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region [ Inputs ]
|
|
||||||
|
|
||||||
if (!ctClose.IsTicked) {
|
|
||||||
bool _leftDrum = false;
|
|
||||||
|
|
||||||
bool _rightDrum = false;
|
|
||||||
|
|
||||||
bool _centerDrum = false;
|
|
||||||
|
|
||||||
bool _cancel = false;
|
|
||||||
|
|
||||||
switch (player) {
|
|
||||||
case 0:
|
|
||||||
_rightDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RightChange) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.RightArrow));
|
|
||||||
_leftDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LeftChange) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.LeftArrow));
|
|
||||||
_centerDrum = (OpenTaiko.Pad.bPressedDGB(EPad.Decide) ||
|
|
||||||
(OpenTaiko.ConfigIni.bEnterIsNotUsedInKeyAssignments && OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Return)));
|
|
||||||
_cancel = (OpenTaiko.Pad.bPressedDGB(EPad.Cancel) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Escape));
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
_rightDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue2P));
|
|
||||||
_leftDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue2P));
|
|
||||||
_centerDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed2P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed2P));
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
_rightDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue3P));
|
|
||||||
_leftDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue3P));
|
|
||||||
_centerDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed3P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed3P));
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
_rightDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue4P));
|
|
||||||
_leftDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue4P));
|
|
||||||
_centerDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed4P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed4P));
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
_rightDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue5P));
|
|
||||||
_leftDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue5P));
|
|
||||||
_centerDrum = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed5P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed5P));
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ctOpen.CurrentValue == 0)
|
||||||
|
Init(player);
|
||||||
|
|
||||||
if (_leftDrum || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.LeftArrow)) {
|
ctOpen.Tick();
|
||||||
OptionSelect(true);
|
ctClose.Tick();
|
||||||
tFetchMults(player);
|
|
||||||
OpenTaiko.Skin.soundChangeSFX.tPlay();
|
if (!ctOpen.IsTicked)
|
||||||
|
ctOpen.Start(0, 50, 6, OpenTaiko.Timer);
|
||||||
|
|
||||||
|
#region [ Open & Close ]
|
||||||
|
|
||||||
|
float oy1 = ctOpen.CurrentValue * 18;
|
||||||
|
float oy2 = (ctOpen.CurrentValue - 30) * 4;
|
||||||
|
float oy3 = ctOpen.CurrentValue < 30 ? 410 - oy1 : -80 + oy2;
|
||||||
|
|
||||||
|
float cy1 = ctClose.CurrentValue * 3;
|
||||||
|
float cy2 = (ctClose.CurrentValue - 20) * 16;
|
||||||
|
float cy3 = ctClose.CurrentValue < 20 ? 0 - cy1 : 20 + cy2;
|
||||||
|
|
||||||
|
float y = oy3 + cy3;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
var pos = player % 2;
|
||||||
|
var _shift = pos == 1 ? (OpenTaiko.Tx.Difficulty_Option.szTextureSize.Width / 2) : 0;
|
||||||
|
var _rect = new Rectangle(_shift, 0, OpenTaiko.Tx.Difficulty_Option.szTextureSize.Width / 2, OpenTaiko.Tx.Difficulty_Option.szTextureSize.Height);
|
||||||
|
|
||||||
|
OpenTaiko.Tx.Difficulty_Option.t2D描画(_shift, y, _rect);
|
||||||
|
OpenTaiko.Tx.Difficulty_Option_Select.t2D描画(_shift + OpenTaiko.Skin.SongSelect_Option_Select_Offset[0] + NowCount * OpenTaiko.Skin.SongSelect_Option_Interval[0],
|
||||||
|
OpenTaiko.Skin.SongSelect_Option_Select_Offset[1] + y + NowCount * OpenTaiko.Skin.SongSelect_Option_Interval[1], _rect);
|
||||||
|
|
||||||
|
for (int i = 0; i < OptionType.Length; i++) {
|
||||||
|
OptionType[i].t2D描画(OpenTaiko.Skin.SongSelect_Option_OptionType_X[pos] + i * OpenTaiko.Skin.SongSelect_Option_Interval[0],
|
||||||
|
OpenTaiko.Skin.SongSelect_Option_OptionType_Y[pos] + y + i * OpenTaiko.Skin.SongSelect_Option_Interval[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_rightDrum || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.RightArrow)) {
|
txModMults[0]?.t2D拡大率考慮描画(CTexture.RefPnt.Up, OpenTaiko.Skin.SongSelect_Option_ModMults1_X[pos], OpenTaiko.Skin.SongSelect_Option_ModMults1_Y[pos] + y);
|
||||||
OptionSelect(false);
|
txModMults[1]?.t2D拡大率考慮描画(CTexture.RefPnt.Up, OpenTaiko.Skin.SongSelect_Option_ModMults2_X[pos], OpenTaiko.Skin.SongSelect_Option_ModMults2_Y[pos] + y);
|
||||||
tFetchMults(player);
|
|
||||||
OpenTaiko.Skin.soundChangeSFX.tPlay();
|
for (int i = 0; i < _textures.Length; i++) {
|
||||||
|
_textures[i]?.t2D拡大率考慮描画(CTexture.RefPnt.Up, OpenTaiko.Skin.SongSelect_Option_Value_X[pos] + i * OpenTaiko.Skin.SongSelect_Option_Interval[0],
|
||||||
|
OpenTaiko.Skin.SongSelect_Option_Value_Y[pos] + y + i * OpenTaiko.Skin.SongSelect_Option_Interval[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_centerDrum && ctOpen.CurrentValue >= ctOpen.EndValue) {
|
if (ctClose.CurrentValue >= 50) {
|
||||||
OpenTaiko.Skin.soundDecideSFX.tPlay();
|
Decision(player);
|
||||||
if (NowCount < nOptionCount) {
|
NowCount = 0;
|
||||||
NowCount++;
|
ctOpen.Stop();
|
||||||
} else if (NowCount >= nOptionCount && !bEnd) {
|
ctOpen.CurrentValue = 0;
|
||||||
|
ctClose.Stop();
|
||||||
|
ctClose.CurrentValue = 0;
|
||||||
|
bEnd = false;
|
||||||
|
act難易度.bOption[player] = false;
|
||||||
|
danAct.bOption = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region [ Inputs ]
|
||||||
|
|
||||||
|
if (!ctClose.IsTicked) {
|
||||||
|
// per-player key input
|
||||||
|
bool _leftDrum = leftMenu;
|
||||||
|
bool _rightDrum = rightMenu;
|
||||||
|
bool _centerDrum = centerMenu;
|
||||||
|
bool _up = upMenu;
|
||||||
|
bool _down = downMenu;
|
||||||
|
bool _cancel = cancelMenu;
|
||||||
|
|
||||||
|
leftMenu = false;
|
||||||
|
rightMenu = false;
|
||||||
|
centerMenu = false;
|
||||||
|
upMenu = false;
|
||||||
|
downMenu = false;
|
||||||
|
cancelMenu = false;
|
||||||
|
|
||||||
|
switch (player) {
|
||||||
|
case 0:
|
||||||
|
_rightDrum = _rightDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue));
|
||||||
|
_leftDrum = _leftDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue));
|
||||||
|
_centerDrum = _centerDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed));
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
_rightDrum = _rightDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue2P));
|
||||||
|
_leftDrum = _leftDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue2P));
|
||||||
|
_centerDrum = _centerDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed2P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed2P));
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
_rightDrum = _rightDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue3P));
|
||||||
|
_leftDrum = _leftDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue3P));
|
||||||
|
_centerDrum = _centerDrum ||(OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed3P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed3P));
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
_rightDrum = _rightDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue4P));
|
||||||
|
_leftDrum = _leftDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue4P));
|
||||||
|
_centerDrum = _centerDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed4P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed4P));
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
_rightDrum = _rightDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue5P));
|
||||||
|
_leftDrum = _leftDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue5P));
|
||||||
|
_centerDrum = _centerDrum || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed5P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed5P));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (_leftDrum) {
|
||||||
|
OptionSelect(true);
|
||||||
|
tFetchMults(player);
|
||||||
|
OpenTaiko.Skin.soundChangeSFX.tPlay();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_rightDrum) {
|
||||||
|
OptionSelect(false);
|
||||||
|
tFetchMults(player);
|
||||||
|
OpenTaiko.Skin.soundChangeSFX.tPlay();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_centerDrum && ctOpen.CurrentValue >= ctOpen.EndValue) {
|
||||||
|
OpenTaiko.Skin.soundDecideSFX.tPlay();
|
||||||
|
if (NowCount < nOptionCount) {
|
||||||
|
NowCount++;
|
||||||
|
} else if (NowCount >= nOptionCount && !bEnd) {
|
||||||
|
bEnd = true;
|
||||||
|
ctClose.Start(0, 50, 6, OpenTaiko.Timer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int cp1 = nOptionCount + 1;
|
||||||
|
|
||||||
|
if (_up) {
|
||||||
|
OpenTaiko.Skin.soundChangeSFX.tPlay();
|
||||||
|
NowCount = (NowCount + cp1 - 1) % cp1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_down) {
|
||||||
|
OpenTaiko.Skin.soundChangeSFX.tPlay();
|
||||||
|
NowCount = (NowCount + 1) % cp1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_cancel) {
|
||||||
|
OpenTaiko.Skin.soundDecideSFX.tPlay();
|
||||||
bEnd = true;
|
bEnd = true;
|
||||||
ctClose.Start(0, 50, 6, OpenTaiko.Timer);
|
ctClose.Start(0, 50, 6, OpenTaiko.Timer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int cp1 = nOptionCount + 1;
|
|
||||||
|
#endregion
|
||||||
if (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.UpArrow)) {
|
|
||||||
OpenTaiko.Skin.soundChangeSFX.tPlay();
|
|
||||||
NowCount = (NowCount + cp1 - 1) % cp1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.DownArrow)) {
|
|
||||||
OpenTaiko.Skin.soundChangeSFX.tPlay();
|
|
||||||
NowCount = (NowCount + 1) % cp1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Escape)) {
|
|
||||||
OpenTaiko.Skin.soundDecideSFX.tPlay();
|
|
||||||
bEnd = true;
|
|
||||||
ctClose.Start(0, 50, 6, OpenTaiko.Timer);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
private CCachedFontRenderer OptionFont;
|
private CCachedFontRenderer OptionFont;
|
||||||
|
@ -157,43 +157,53 @@ internal class CActSelect難易度選択画面 : CActivity {
|
|||||||
|
|
||||||
if (this.ctBarAnimeIn.IsEnded && exextraAnimation == 0) // Prevent player actions if animation is active
|
if (this.ctBarAnimeIn.IsEnded && exextraAnimation == 0) // Prevent player actions if animation is active
|
||||||
{
|
{
|
||||||
for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) {
|
// menu key input, for the lowest-index player who is still selecting the difficulty
|
||||||
if (!bSelect[i] && !isOnOption()) {
|
bool rightMenu = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RightChange) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.RightArrow));
|
||||||
bool right = false;
|
bool leftMenu = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LeftChange) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.LeftArrow));
|
||||||
bool left = false;
|
bool decideMenu = (OpenTaiko.Pad.bPressedDGB(EPad.Decide) ||
|
||||||
bool decide = false;
|
(OpenTaiko.ConfigIni.bEnterIsNotUsedInKeyAssignments && OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Return)));
|
||||||
|
bool cancelMenu = (OpenTaiko.Pad.bPressedDGB(EPad.Cancel) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Escape));
|
||||||
|
|
||||||
bool cancel = false;
|
// per-player key input
|
||||||
|
for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) {
|
||||||
|
if (!bSelect[i] && !isOnOption() &&
|
||||||
|
!(OpenTaiko.ConfigIni.bAIBattleMode && i == 1)
|
||||||
|
) {
|
||||||
|
bool right = rightMenu;
|
||||||
|
bool left = leftMenu;
|
||||||
|
bool decide = decideMenu;
|
||||||
|
bool cancel = cancelMenu;
|
||||||
|
|
||||||
|
rightMenu = false;
|
||||||
|
leftMenu = false;
|
||||||
|
decideMenu = false;
|
||||||
|
cancelMenu = false;
|
||||||
|
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case 0:
|
case 0:
|
||||||
right = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RightChange) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.RightArrow));
|
right = right || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue);
|
||||||
left = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LeftChange) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.LeftArrow));
|
left = left || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LeftChange);
|
||||||
decide = (OpenTaiko.Pad.bPressedDGB(EPad.Decide) ||
|
decide = decide || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed));
|
||||||
(OpenTaiko.ConfigIni.bEnterIsNotUsedInKeyAssignments && OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Return)));
|
|
||||||
cancel = (OpenTaiko.Pad.bPressedDGB(EPad.Cancel) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Escape));
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (!OpenTaiko.ConfigIni.bAIBattleMode) {
|
right = right || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue2P));
|
||||||
right = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue2P));
|
left = left || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue2P));
|
||||||
left = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue2P));
|
decide = decide || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed2P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed2P));
|
||||||
decide = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed2P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed2P));
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
right = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue3P));
|
right = right || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue3P));
|
||||||
left = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue3P));
|
left = left || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue3P));
|
||||||
decide = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed3P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed3P));
|
decide = decide || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed3P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed3P));
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
right = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue4P));
|
right = right || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue4P));
|
||||||
left = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue4P));
|
left = left || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue4P));
|
||||||
decide = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed4P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed4P));
|
decide = decide || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed4P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed4P));
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
right = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue5P));
|
right = right || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue5P));
|
||||||
left = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue5P));
|
left = left || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue5P));
|
||||||
decide = (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed5P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed5P));
|
decide = decide || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed5P) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed5P));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1123,11 +1123,7 @@ internal class CStage選曲 : CStage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actDifficultySelectionScreen.bOption[0]) actPlayOption.On進行描画(0);
|
this.actPlayOption.On進行描画(5, this.actDifficultySelectionScreen.bOption);
|
||||||
if (actDifficultySelectionScreen.bOption[1]) actPlayOption.On進行描画(1);
|
|
||||||
if (actDifficultySelectionScreen.bOption[2]) actPlayOption.On進行描画(2);
|
|
||||||
if (actDifficultySelectionScreen.bOption[3]) actPlayOption.On進行描画(3);
|
|
||||||
if (actDifficultySelectionScreen.bOption[4]) actPlayOption.On進行描画(4);
|
|
||||||
|
|
||||||
if (actNewHeya.IsOpend) actNewHeya.Draw();
|
if (actNewHeya.IsOpend) actNewHeya.Draw();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user