Centralize note type checks on the NotesManager class
This commit is contained in:
parent
b420f70de3
commit
e1c086b5b1
@ -3482,7 +3482,8 @@ namespace TJAPlayer3
|
||||
{
|
||||
for (int i = listChip.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (listChip[i].nチャンネル番号 >= 0x11 && listChip[i].nチャンネル番号 <= 0x18)
|
||||
//if (listChip[i].nチャンネル番号 >= 0x11 && listChip[i].nチャンネル番号 <= 0x18)
|
||||
if (NotesManager.IsHittableNote(listChip[i]))
|
||||
{
|
||||
if (DanSongs.Number != 0)
|
||||
{
|
||||
@ -4027,7 +4028,8 @@ namespace TJAPlayer3
|
||||
|
||||
for (int i = listChip.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (listChip[i].nチャンネル番号 >= 0x11 && listChip[i].nチャンネル番号 <= 0x18)
|
||||
//if (listChip[i].nチャンネル番号 >= 0x11 && listChip[i].nチャンネル番号 <= 0x18)
|
||||
if (NotesManager.IsHittableNote(listChip[i]))
|
||||
{
|
||||
if(DanSongs.Number != 0)
|
||||
{
|
||||
@ -4151,7 +4153,8 @@ namespace TJAPlayer3
|
||||
{
|
||||
if (b分岐前の連打開始)
|
||||
{
|
||||
if (listChips[i].nチャンネル番号 == 0x15 || listChips[i].nチャンネル番号 == 0x16)
|
||||
//if (listChips[i].nチャンネル番号 == 0x15 || listChips[i].nチャンネル番号 == 0x16)
|
||||
if (NotesManager.IsRoll(listChips[i]))
|
||||
{
|
||||
if (nReturnChip == null)
|
||||
nReturnChip = i;
|
||||
|
@ -117,7 +117,8 @@ namespace TJAPlayer3
|
||||
foreach (CDTX.CChip chip in listChip[i])
|
||||
{
|
||||
chip.nList上の位置 = n整数値管理;
|
||||
if ((chip.nチャンネル番号 == 0x15 || chip.nチャンネル番号 == 0x16) && (n整数値管理 < this.listChip[i].Count - 1))
|
||||
//if ((chip.nチャンネル番号 == 0x15 || chip.nチャンネル番号 == 0x16) && (n整数値管理 < this.listChip[i].Count - 1))
|
||||
if (NotesManager.IsRoll(chip) && (n整数値管理 < this.listChip[i].Count - 1))
|
||||
{
|
||||
if (chip.db発声時刻ms < r指定時刻に一番近い未ヒットChipを過去方向優先で検索する(0, i).db発声時刻ms)
|
||||
{
|
||||
@ -130,13 +131,13 @@ namespace TJAPlayer3
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (TJAPlayer3.DTX.bチップがある.Branch)
|
||||
{
|
||||
for (int i = 0; i < TJAPlayer3.DTX.listChip_Branch[2].Count; i++)
|
||||
{
|
||||
nNoteCount[0] = TJAPlayer3.DTX.listChip_Branch[2].Where(num => num.nチャンネル番号 > 16 && num.nチャンネル番号 < 21).Count();
|
||||
nNoteCount[0] = TJAPlayer3.DTX.listChip_Branch[2].Where(num => NotesManager.IsMissableNote(num)).Count();
|
||||
nBalloonCount[0] += TJAPlayer3.DTX.listChip_Branch[2][i].nRollCount;
|
||||
}
|
||||
}
|
||||
@ -144,7 +145,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
for (int i = 0; i < TJAPlayer3.DTX.listChip.Count; i++)
|
||||
{
|
||||
nNoteCount[0] = TJAPlayer3.DTX.listChip.Where(num => num.nチャンネル番号 > 16 && num.nチャンネル番号 < 21).Count();
|
||||
nNoteCount[0] = TJAPlayer3.DTX.listChip.Where(num => NotesManager.IsMissableNote(num)).Count();
|
||||
nBalloonCount[0] += TJAPlayer3.DTX.listChip[i].nRollCount;
|
||||
}
|
||||
}
|
||||
@ -156,7 +157,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
for (int i = 0; i < TJAPlayer3.DTX_2P.listChip_Branch[2].Count; i++)
|
||||
{
|
||||
nNoteCount[1] = TJAPlayer3.DTX_2P.listChip_Branch[2].Where(num => num.nチャンネル番号 > 16 && num.nチャンネル番号 < 21).Count();
|
||||
nNoteCount[1] = TJAPlayer3.DTX_2P.listChip_Branch[2].Where(num => NotesManager.IsMissableNote(num)).Count();
|
||||
nBalloonCount[1] += TJAPlayer3.DTX_2P.listChip_Branch[2][i].nRollCount;
|
||||
}
|
||||
}
|
||||
@ -164,7 +165,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
for (int i = 0; i < TJAPlayer3.DTX_2P.listChip.Count; i++)
|
||||
{
|
||||
nNoteCount[1] = TJAPlayer3.DTX_2P.listChip.Where(num => num.nチャンネル番号 > 16 && num.nチャンネル番号 < 21).Count();
|
||||
nNoteCount[1] = TJAPlayer3.DTX_2P.listChip.Where(num => NotesManager.IsMissableNote(num)).Count();
|
||||
nBalloonCount[1] += TJAPlayer3.DTX_2P.listChip[i].nRollCount;
|
||||
}
|
||||
}
|
||||
@ -777,14 +778,14 @@ namespace TJAPlayer3
|
||||
pChip.nLag = (int) ( nTime - pChip.n発声時刻ms ); // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature
|
||||
int nDeltaTime = Math.Abs( pChip.nLag );
|
||||
//Debug.WriteLine("nAbsTime=" + (nTime - pChip.n発声時刻ms) + ", nDeltaTime=" + (nTime + nInputAdjustTime - pChip.n発声時刻ms));
|
||||
if( pChip.nチャンネル番号 == 0x15 || pChip.nチャンネル番号 == 0x16 )
|
||||
if(NotesManager.IsRoll(pChip))
|
||||
{
|
||||
if ((CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) > pChip.n発声時刻ms && (CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < pChip.nノーツ終了時刻ms)
|
||||
{
|
||||
return E判定.Perfect;
|
||||
}
|
||||
}
|
||||
else if( pChip.nチャンネル番号 == 0x17 )
|
||||
else if(NotesManager.IsBalloon(pChip))
|
||||
{
|
||||
if ((CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) >= pChip.n発声時刻ms - 17 && (CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < pChip.nノーツ終了時刻ms)
|
||||
{
|
||||
@ -1272,7 +1273,7 @@ namespace TJAPlayer3
|
||||
if (!pChip.b可視)
|
||||
return E判定.Auto;
|
||||
|
||||
if (pChip.nチャンネル番号 != 0x15 && pChip.nチャンネル番号 != 0x16 && pChip.nチャンネル番号 != 0x17 && pChip.nチャンネル番号 != 0x18)
|
||||
if (!NotesManager.IsGenericRoll(pChip))
|
||||
{
|
||||
if (!pChip.IsMissed)//通り越したチップでなければ判定!
|
||||
{
|
||||
@ -1301,9 +1302,9 @@ namespace TJAPlayer3
|
||||
CLagLogger.Add(nPlayer, pChip);
|
||||
}
|
||||
|
||||
if (pChip.nチャンネル番号 == 0x15 || pChip.nチャンネル番号 == 0x16)
|
||||
if (NotesManager.IsRoll(pChip))
|
||||
{
|
||||
#region[ 連打 ]
|
||||
#region[ Drumroll ]
|
||||
//---------------------------
|
||||
this.b連打中[nPlayer] = true;
|
||||
if (bAutoPlay)
|
||||
@ -1346,9 +1347,10 @@ namespace TJAPlayer3
|
||||
//---------------------------
|
||||
#endregion
|
||||
}
|
||||
else if (pChip.nチャンネル番号 == 0x17)
|
||||
else if (NotesManager.IsBalloon(pChip))
|
||||
{
|
||||
#region[ 風船 ]
|
||||
#region [ Balloon ]
|
||||
|
||||
this.b連打中[nPlayer] = true;
|
||||
this.actChara.b風船連打中[nPlayer] = true;
|
||||
|
||||
@ -1377,7 +1379,7 @@ namespace TJAPlayer3
|
||||
break;
|
||||
#endregion
|
||||
}
|
||||
else if (pChip.nチャンネル番号 == 0x18)
|
||||
else if (NotesManager.IsRollEnd(pChip))
|
||||
{
|
||||
if (pChip.nノーツ終了時刻ms <= (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)))
|
||||
{
|
||||
@ -1390,7 +1392,7 @@ namespace TJAPlayer3
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (pChip.nチャンネル番号 == 0x1F)
|
||||
else if (NotesManager.IsADLIB(pChip))
|
||||
{
|
||||
if (eJudgeResult != E判定.Auto && eJudgeResult != E判定.Miss)
|
||||
{
|
||||
@ -1421,7 +1423,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
if ((pChip.e楽器パート != E楽器パート.UNKNOWN))
|
||||
{
|
||||
if (pChip.nチャンネル番号 != 0x15 && pChip.nチャンネル番号 != 0x16 && pChip.nチャンネル番号 != 0x17 && pChip.nチャンネル番号 != 0x18 && pChip.nチャンネル番号 != 0x1F)
|
||||
if (!NotesManager.IsGenericRoll(pChip) && !NotesManager.IsADLIB(pChip))
|
||||
{
|
||||
actGauge.Damage(screenmode, pChip.e楽器パート, eJudgeResult, nPlayer);
|
||||
}
|
||||
@ -1482,7 +1484,7 @@ namespace TJAPlayer3
|
||||
case E楽器パート.TAIKO:
|
||||
if( !bAutoPlay )
|
||||
{
|
||||
if( pChip.nチャンネル番号 == 0x15 || pChip.nチャンネル番号 == 0x16 || pChip.nチャンネル番号 == 0x17 || pChip.nチャンネル番号 == 0x18 )
|
||||
if(NotesManager.IsGenericRoll(pChip))
|
||||
break;
|
||||
|
||||
switch ( eJudgeResult )
|
||||
@ -1535,7 +1537,7 @@ namespace TJAPlayer3
|
||||
case E判定.Miss:
|
||||
case E判定.Bad:
|
||||
{
|
||||
if( pChip.nチャンネル番号 == 0x1F )
|
||||
if(NotesManager.IsADLIB(pChip))
|
||||
break;
|
||||
|
||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
|
||||
@ -1562,7 +1564,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
case E判定.Perfect:
|
||||
{
|
||||
if( pChip.nチャンネル番号 != 0x15 && pChip.nチャンネル番号 != 0x16 && pChip.nチャンネル番号 != 0x17 && pChip.nチャンネル番号 != 0x18 )
|
||||
if(!NotesManager.IsGenericRoll(pChip))
|
||||
{
|
||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
|
||||
this.n良[actDan.NowShowingNumber]++;
|
||||
@ -1588,7 +1590,7 @@ namespace TJAPlayer3
|
||||
case E判定.Great:
|
||||
case E判定.Good:
|
||||
{
|
||||
if (pChip.nチャンネル番号 != 0x15 && pChip.nチャンネル番号 != 0x16 && pChip.nチャンネル番号 != 0x17 && pChip.nチャンネル番号 != 0x18)
|
||||
if (!NotesManager.IsGenericRoll(pChip))
|
||||
{
|
||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
|
||||
this.n可[actDan.NowShowingNumber]++;
|
||||
@ -1613,7 +1615,7 @@ namespace TJAPlayer3
|
||||
|
||||
default:
|
||||
{
|
||||
if( pChip.nチャンネル番号 != 0x15 && pChip.nチャンネル番号 != 0x16 && pChip.nチャンネル番号 != 0x17 && pChip.nチャンネル番号 != 0x18 && pChip.nチャンネル番号 != 0x1F )
|
||||
if(!NotesManager.IsGenericRoll(pChip) && !NotesManager.IsADLIB(pChip))
|
||||
{
|
||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
|
||||
this.n不可[actDan.NowShowingNumber]++;
|
||||
@ -1633,8 +1635,9 @@ namespace TJAPlayer3
|
||||
}
|
||||
actDan.Update();
|
||||
|
||||
#region[ コンボ音声 ]
|
||||
if( pChip.nチャンネル番号 < 0x15 || ( pChip.nチャンネル番号 >= 0x1A ) )
|
||||
#region[ Combo voice ]
|
||||
|
||||
if(!NotesManager.IsGenericRoll(pChip))
|
||||
{
|
||||
if((this.actCombo.n現在のコンボ数[ nPlayer ] % 100 == 0 || this.actCombo.n現在のコンボ数[nPlayer] == 50) && this.actCombo.n現在のコンボ数[ nPlayer ] > 0 )
|
||||
{
|
||||
@ -1708,7 +1711,7 @@ namespace TJAPlayer3
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if ( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) && ( eJudgeResult != E判定.Miss ) && ( eJudgeResult != E判定.Bad ) && ( eJudgeResult != E判定.Poor ) && ( pChip.nチャンネル番号 <= 0x14 || pChip.nチャンネル番号 == 0x1A || pChip.nチャンネル番号 == 0x1B ) )
|
||||
if ( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) && ( eJudgeResult != E判定.Miss ) && ( eJudgeResult != E判定.Bad ) && ( eJudgeResult != E判定.Poor ) && (NotesManager.IsMissableNote(pChip)) )
|
||||
{
|
||||
int nCombos = this.actCombo.n現在のコンボ数[nPlayer];
|
||||
long nInit = TJAPlayer3.DTX.nScoreInit[0, TJAPlayer3.stage選曲.n確定された曲の難易度[nPlayer]];
|
||||
@ -1954,7 +1957,7 @@ namespace TJAPlayer3
|
||||
CDTX.CChip chip = listChip[ nPlayer ][ nIndex_NearestChip_Future ];
|
||||
if ( !chip.bHit && chip.b可視 )
|
||||
{
|
||||
if ( ( ( 0x11 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x18 ) ) || chip.nチャンネル番号 == 0x1A || chip.nチャンネル番号 == 0x1B || chip.nチャンネル番号 == 0x1F )
|
||||
if (NotesManager.IsHittableNote(chip))
|
||||
{
|
||||
if ( chip.n発声時刻ms > nTime )
|
||||
{
|
||||
@ -1965,7 +1968,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
if( chip.bHit && chip.b可視 ) // 2015.11.5 kairera0467 連打対策
|
||||
{
|
||||
if( ( 0x15 <= chip.nチャンネル番号) && ( chip.nチャンネル番号 <= 0x17 ) )
|
||||
if (NotesManager.IsGenericRoll(chip) && !NotesManager.IsRollEnd(chip))
|
||||
{
|
||||
if (chip.nノーツ終了時刻ms > nTime)
|
||||
{
|
||||
@ -1982,14 +1985,17 @@ namespace TJAPlayer3
|
||||
// while ( nIndex_NearestChip_Past >= 0 ) // 過去方向への検索
|
||||
for ( ; nIndex_NearestChip_Past >= 0; nIndex_NearestChip_Past-- )
|
||||
{
|
||||
CDTX.CChip chip = listChip[ nPlayer ][ nIndex_NearestChip_Past ];
|
||||
//if ( (!chip.bHit && chip.b可視 ) && ( ( 0x93 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x99 ) ) )
|
||||
if ( (!chip.bHit && chip.b可視 ) && ( ( 0x11 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x17 ) ) || chip.nチャンネル番号 == 0x1A || chip.nチャンネル番号 == 0x1B || chip.nチャンネル番号 == 0x1F )
|
||||
CDTX.CChip chip = listChip[ nPlayer ][ nIndex_NearestChip_Past ];
|
||||
//if ( (!chip.bHit && chip.b可視 ) && ( ( 0x93 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x99 ) ) )
|
||||
|
||||
|
||||
|
||||
if ( (!chip.bHit && chip.b可視 ) && NotesManager.IsHittableNote(chip) && !NotesManager.IsRollEnd(chip) )
|
||||
{
|
||||
break;
|
||||
}
|
||||
//2015.11.5 kairera0467 連打対策
|
||||
else if ( ( chip.b可視 ) && ( ( 0x15 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x17 ) ) )
|
||||
else if ( ( chip.b可視 ) && NotesManager.IsGenericRoll(chip) && !NotesManager.IsRollEnd(chip))
|
||||
{
|
||||
break;
|
||||
}
|
||||
@ -2031,8 +2037,10 @@ namespace TJAPlayer3
|
||||
// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) );
|
||||
}
|
||||
|
||||
//2015.11.5 kairera0467 連打音符の判定
|
||||
if( listChip[ nPlayer ][ nIndex_NearestChip_Future ].nチャンネル番号 >= 0x15 && listChip[ nPlayer ][ nIndex_NearestChip_Future ].nチャンネル番号 <= 0x17 )
|
||||
var __tmpchp = listChip[nPlayer][nIndex_NearestChip_Future];
|
||||
|
||||
//2015.11.5 kairera0467 連打音符の判定
|
||||
if (NotesManager.IsGenericRoll(__tmpchp) && !NotesManager.IsRollEnd(__tmpchp))
|
||||
{
|
||||
if( listChip[ nPlayer ][ nIndex_NearestChip_Future ].n発声時刻ms <= nTime && listChip[ nPlayer ][ nIndex_NearestChip_Future ].nノーツ終了時刻ms >= nTime )
|
||||
{
|
||||
@ -2262,6 +2270,9 @@ namespace TJAPlayer3
|
||||
}
|
||||
// nIndex_NearestChip_Future++;
|
||||
}
|
||||
|
||||
// Channel is always 50, following code is unreachable
|
||||
|
||||
int nIndex_NearestChip_Past = nIndex_InitialPositionSearchingToPast;
|
||||
// while ( nIndex_NearestChip_Past >= 0 ) // 過去方向への検索
|
||||
for ( ; nIndex_NearestChip_Past >= 0; nIndex_NearestChip_Past-- )
|
||||
@ -2344,7 +2355,7 @@ namespace TJAPlayer3
|
||||
CDTX.CChip chip = listChip[ nPlayer ][ i ];
|
||||
if ( !chip.bHit )
|
||||
{
|
||||
if ( ( ( 0x11 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x14 ) ) || chip.nチャンネル番号 == 0x1A || chip.nチャンネル番号 == 0x1B )
|
||||
if (NotesManager.IsMissableNote(chip))
|
||||
{
|
||||
if ( chip.n発声時刻ms < nTime + n検索範囲時間ms )
|
||||
{
|
||||
@ -2783,7 +2794,7 @@ namespace TJAPlayer3
|
||||
|
||||
if (!pChip.IsMissed && !pChip.bHit)
|
||||
{
|
||||
if ( pChip.nチャンネル番号 >= 0x11 && pChip.nチャンネル番号 <= 0x14 || pChip.nチャンネル番号 == 0x1A || pChip.nチャンネル番号 == 0x1B )//|| pChip.nチャンネル番号 == 0x9A )
|
||||
if (NotesManager.IsMissableNote(pChip))//|| pChip.nチャンネル番号 == 0x9A )
|
||||
{
|
||||
//こっちのほうが適格と考えたためフラグを変更.2020.04.20 Akasoko26
|
||||
if (time <= 0)
|
||||
@ -2800,7 +2811,7 @@ namespace TJAPlayer3
|
||||
|
||||
if( pChip.nバーからの距離dot[ instIndex ] < -150 )
|
||||
{
|
||||
if( !( pChip.nチャンネル番号 >= 0x11 && pChip.nチャンネル番号 <= 0x14 ) || pChip.nチャンネル番号 == 0x1A || pChip.nチャンネル番号 == 0x1B )
|
||||
if( !(NotesManager.IsMissableNote(pChip)))
|
||||
{
|
||||
//2016.02.11 kairera0467
|
||||
//太鼓の単音符の場合は座標による判定を行わない。
|
||||
@ -2811,8 +2822,10 @@ namespace TJAPlayer3
|
||||
|
||||
var cChipCurrentlyInProcess = chip現在処理中の連打チップ[ nPlayer ];
|
||||
if( cChipCurrentlyInProcess != null && !cChipCurrentlyInProcess.bHit )
|
||||
{
|
||||
if( cChipCurrentlyInProcess.nチャンネル番号 >= 0x13 && cChipCurrentlyInProcess.nチャンネル番号 <= 0x15 )//|| pChip.nチャンネル番号 == 0x9A )
|
||||
{
|
||||
|
||||
//if( cChipCurrentlyInProcess.nチャンネル番号 >= 0x13 && cChipCurrentlyInProcess.nチャンネル番号 <= 0x15 )//|| pChip.nチャンネル番号 == 0x9A )
|
||||
if (NotesManager.IsBigNote(cChipCurrentlyInProcess))
|
||||
{
|
||||
if ( ( ( cChipCurrentlyInProcess.nバーからの距離dot.Taiko < -500 ) && ( cChipCurrentlyInProcess.n発声時刻ms <= n現在時刻ms && cChipCurrentlyInProcess.nノーツ終了時刻ms >= n現在時刻ms ) ) )
|
||||
//( ( chip現在処理中の連打チップ.nバーからのノーツ末端距離dot.Taiko < -500 ) && ( chip現在処理中の連打チップ.n発声時刻ms <= CSound管理.rc演奏用タイマ.n現在時刻ms && chip現在処理中の連打チップ.nノーツ終了時刻ms >= CSound管理.rc演奏用タイマ.n現在時刻ms ) ) )
|
||||
@ -2872,11 +2885,13 @@ namespace TJAPlayer3
|
||||
break;
|
||||
#endregion
|
||||
|
||||
#region [ 11-1f: 太鼓1P ]
|
||||
#region [ 11-1f & 101-: Taiko ]
|
||||
case 0x11:
|
||||
case 0x12:
|
||||
case 0x13:
|
||||
case 0x14:
|
||||
case 0x1C:
|
||||
case 0x101:
|
||||
{
|
||||
this.t進行描画_チップ_Taiko( configIni, ref dTX, ref pChip, nPlayer );
|
||||
}
|
||||
@ -2885,6 +2900,7 @@ namespace TJAPlayer3
|
||||
case 0x15:
|
||||
case 0x16:
|
||||
case 0x17:
|
||||
case 0x19:
|
||||
{
|
||||
//2015.03.28 kairera0467
|
||||
//描画順序を変えるため、メイン処理だけをこちらに残して描画処理は分離。
|
||||
@ -2947,8 +2963,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
|
||||
break;
|
||||
case 0x19:
|
||||
case 0x1c:
|
||||
|
||||
case 0x1d:
|
||||
case 0x1e:
|
||||
break;
|
||||
@ -3609,7 +3624,7 @@ namespace TJAPlayer3
|
||||
|
||||
if ( !pChip.bHit )
|
||||
{
|
||||
bool bRollChip = pChip.nチャンネル番号 >= 0x15 && pChip.nチャンネル番号 <= 0x19;
|
||||
bool bRollChip = NotesManager.IsGenericRoll(pChip);// pChip.nチャンネル番号 >= 0x15 && pChip.nチャンネル番号 <= 0x19;
|
||||
if( bRollChip && ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) )
|
||||
{
|
||||
int instIndex = (int) pChip.e楽器パート;
|
||||
@ -3625,7 +3640,7 @@ namespace TJAPlayer3
|
||||
|
||||
switch ( pChip.nチャンネル番号 )
|
||||
{
|
||||
#region[ 15-19: 連打 ]
|
||||
#region[ 15-19: Rolls ]
|
||||
case 0x15: //連打
|
||||
case 0x16: //連打(大)
|
||||
case 0x17: //風船
|
||||
@ -3812,10 +3827,13 @@ namespace TJAPlayer3
|
||||
for (int A = 0; A < dTX.listChip.Count; A++)
|
||||
{
|
||||
var Chip = dTX.listChip[A].nチャンネル番号;
|
||||
var bDontDeleteFlag = Chip >= 0x11 && Chip <= 0x19;
|
||||
var bRollAllFlag = Chip >= 0x15 && Chip <= 0x19;
|
||||
var bBalloonOnlyFlag = Chip == 0x17;
|
||||
var bRollOnlyFlag = Chip >= 0x15 && Chip <= 0x16;
|
||||
var _chip = dTX.listChip[A];
|
||||
|
||||
var bDontDeleteFlag = NotesManager.IsHittableNote(_chip);// Chip >= 0x11 && Chip <= 0x19;
|
||||
var bRollAllFlag = NotesManager.IsGenericRoll(_chip);//Chip >= 0x15 && Chip <= 0x19;
|
||||
var bBalloonOnlyFlag = NotesManager.IsBalloon(_chip) || NotesManager.IsKusudama(_chip);//Chip == 0x17;
|
||||
var bRollOnlyFlag = NotesManager.IsRoll(_chip);//Chip >= 0x15 && Chip <= 0x16;
|
||||
|
||||
if (bDontDeleteFlag)
|
||||
{
|
||||
if (dTX.listChip[A].n発声時刻ms > n発声位置)
|
||||
|
@ -14,7 +14,8 @@ namespace TJAPlayer3
|
||||
double RollTimems = 0;
|
||||
foreach (var chip in TJAPlayer3.DTX.listChip)
|
||||
{
|
||||
if (chip.nチャンネル番号 == 21 || chip.nチャンネル番号 == 22)
|
||||
//if (chip.nチャンネル番号 == 21 || chip.nチャンネル番号 == 22)
|
||||
if (NotesManager.IsRoll(chip))
|
||||
{
|
||||
RollTimems += (chip.nノーツ終了時刻ms - chip.n発声時刻ms) / 1000.0;
|
||||
}
|
||||
|
@ -452,7 +452,9 @@ namespace TJAPlayer3
|
||||
|
||||
for (int i = 0; i < dTX.listChip.Count; i++)
|
||||
{
|
||||
if (i < n演奏開始Chip && (dTX.listChip[i].nチャンネル番号 > 0x10 && dTX.listChip[i].nチャンネル番号 < 0x20)) //2020.07.08 ノーツだけ消す。 null参照回避のために順番変更
|
||||
|
||||
//if (i < n演奏開始Chip && (dTX.listChip[i].nチャンネル番号 > 0x10 && dTX.listChip[i].nチャンネル番号 < 0x20)) //2020.07.08 ノーツだけ消す。 null参照回避のために順番変更
|
||||
if (i < n演奏開始Chip && NotesManager.IsHittableNote(dTX.listChip[i]))
|
||||
{
|
||||
dTX.listChip[i].bHit = true;
|
||||
dTX.listChip[i].IsHitted = true;
|
||||
|
@ -720,33 +720,11 @@ namespace TJAPlayer3
|
||||
private readonly ST文字位置[] st大文字位置;
|
||||
//-----------------
|
||||
|
||||
private bool bフィルイン区間の最後のChipである( CDTX.CChip pChip )
|
||||
{
|
||||
if( pChip == null )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
int num = pChip.n発声位置;
|
||||
for( int i = listChip[0].IndexOf( pChip ) + 1; i < listChip[0].Count; i++ )
|
||||
{
|
||||
pChip = listChip[0][ i ];
|
||||
if( ( pChip.nチャンネル番号 == 0x53 ) && ( pChip.n整数値 == 2 ) )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if( ( ( pChip.nチャンネル番号 >= 0x11 ) && ( pChip.nチャンネル番号 <= 0x1C ) ) && ( ( pChip.n発声位置 - num ) > 0x18 ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
protected override E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip, bool bCorrectLane )
|
||||
{
|
||||
E判定 eJudgeResult = tチップのヒット処理( nHitTime, pChip, E楽器パート.DRUMS, bCorrectLane, 0 );
|
||||
// #24074 2011.01.23 add ikanick
|
||||
if( pChip.nコース == this.n現在のコース[ 0 ] && ( pChip.nチャンネル番号 >= 0x11 && pChip.nチャンネル番号 <= 0x14 ) && pChip.bShow == true && eJudgeResult != E判定.Auto )
|
||||
if( pChip.nコース == this.n現在のコース[ 0 ] && NotesManager.IsMissableNote(pChip) && pChip.bShow == true && eJudgeResult != E判定.Auto )
|
||||
this.actGame.t叩ききりまショー_判定から各数値を増加させる( eJudgeResult, (int)( nHitTime - pChip.n発声時刻ms ) );
|
||||
return eJudgeResult;
|
||||
}
|
||||
@ -793,37 +771,18 @@ namespace TJAPlayer3
|
||||
{
|
||||
return false;
|
||||
}
|
||||
int index = pChip.nチャンネル番号;
|
||||
if ( ( index >= 0x11 ) && ( index <= 0x12 ) )
|
||||
{
|
||||
index -= 0x11;
|
||||
}
|
||||
else if ( ( index >= 0x13 ) && ( index <= 0x14 ) )
|
||||
{
|
||||
index -= 0x13;
|
||||
}
|
||||
else if ( ( index >= 0x1A ) && ( index <= 0x1B ) )
|
||||
{
|
||||
index -= 0x1A;
|
||||
}
|
||||
else if( index == 0x1F )
|
||||
{
|
||||
index = 0x11 - 0x11;
|
||||
}
|
||||
else if( pChip.nチャンネル番号 >= 0x15 && pChip.nチャンネル番号 <= 0x17 )
|
||||
|
||||
if (NotesManager.IsGenericRoll(pChip) && !NotesManager.IsRollEnd(pChip))
|
||||
{
|
||||
this.tチップのヒット処理( nHitTime, pChip, E楽器パート.TAIKO, true, nInput, nPlayer );
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
||||
else if (!NotesManager.IsHittableNote(pChip))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
int nLane = index;
|
||||
int nPad = index;
|
||||
|
||||
var _gt = TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)];
|
||||
|
||||
E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip, nPlayer );
|
||||
@ -1001,9 +960,9 @@ namespace TJAPlayer3
|
||||
bool b太鼓音再生フラグ = true;
|
||||
if (chipNoHit != null)
|
||||
{
|
||||
if (chipNoHit.nチャンネル番号 == 0x1F && (e判定 == E判定.Perfect || e判定 == E判定.Good))
|
||||
if (NotesManager.IsADLIB(chipNoHit) && (e判定 == E判定.Perfect || e判定 == E判定.Good))
|
||||
b太鼓音再生フラグ = false;
|
||||
if (chipNoHit.nチャンネル番号 == 0x1F && (e判定 != E判定.Miss && e判定 != E判定.Poor))
|
||||
if (NotesManager.IsADLIB(chipNoHit) && (e判定 != E判定.Miss && e判定 != E判定.Poor))
|
||||
if (chipNoHit.nPlayerSide == 0)
|
||||
{
|
||||
this.soundAdlib?.t再生を開始する();
|
||||
@ -1252,8 +1211,7 @@ namespace TJAPlayer3
|
||||
|
||||
// Judge rolls
|
||||
if (e判定 != E判定.Miss
|
||||
&& (chipNoHit.nチャンネル番号 == 0x15 || chipNoHit.nチャンネル番号 == 0x16
|
||||
|| chipNoHit.nチャンネル番号 == 0x17 && !_isBlue))
|
||||
&& (NotesManager.IsGenericRoll(chipNoHit) && !NotesManager.IsRollEnd(chipNoHit) && !_isBlue))
|
||||
{
|
||||
this.tドラムヒット処理(nTime, _pad, chipNoHit, false, nUsePlayer);
|
||||
}
|
||||
@ -1541,7 +1499,7 @@ namespace TJAPlayer3
|
||||
#endregion
|
||||
|
||||
//2016.07.14 kairera0467 Adlibの場合、一括して処理を行う。
|
||||
if (e判定 != E判定.Miss && chipNoHit.nチャンネル番号 == 0x1F)
|
||||
if (e判定 != E判定.Miss && NotesManager.IsADLIB(chipNoHit))
|
||||
{
|
||||
this.tドラムヒット処理(nTime, (Eパッド)nPad, chipNoHit, false, nUsePlayer);
|
||||
bHitted = true;
|
||||
@ -1636,7 +1594,7 @@ namespace TJAPlayer3
|
||||
if (bAutoPlay && !this.bPAUSE)
|
||||
{
|
||||
pChip.bHit = true;
|
||||
if (pChip.nチャンネル番号 != 0x1F)
|
||||
if (!NotesManager.IsADLIB(pChip) && pChip.nチャンネル番号 < 0x20) // Provisional, to avoid crash on 0x101
|
||||
this.FlyingNotes.Start(pChip.nチャンネル番号 < 0x1A ? (pChip.nチャンネル番号 - 0x10) : (pChip.nチャンネル番号 - 0x17), nPlayer);
|
||||
|
||||
//this.actChipFireTaiko.Start(pChip.nチャンネル番号 < 0x1A ? (pChip.nチャンネル番号 - 0x10) : (pChip.nチャンネル番号 - 0x17), nPlayer);
|
||||
@ -1923,7 +1881,7 @@ namespace TJAPlayer3
|
||||
#region[ 作り直したもの ]
|
||||
if (pChip.b可視)
|
||||
{
|
||||
if (pChip.nチャンネル番号 >= 0x15 && pChip.nチャンネル番号 <= 0x18)
|
||||
if (NotesManager.IsGenericRoll(pChip))
|
||||
{
|
||||
if (pChip.nノーツ出現時刻ms != 0 && ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < pChip.n発声時刻ms - pChip.nノーツ出現時刻ms))
|
||||
pChip.bShow = false;
|
||||
@ -1941,7 +1899,7 @@ namespace TJAPlayer3
|
||||
nノート末端座標 = 0;
|
||||
}
|
||||
}
|
||||
if (pChip.nチャンネル番号 == 0x18)
|
||||
if (NotesManager.IsRollEnd(pChip))
|
||||
{
|
||||
if (pChip.nノーツ出現時刻ms != 0 && ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < n先頭発声位置 - pChip.nノーツ出現時刻ms))
|
||||
pChip.bShow = false;
|
||||
@ -1974,7 +1932,7 @@ namespace TJAPlayer3
|
||||
int x末端 = 349 + pChip.nバーからのノーツ末端距離dot + 10;
|
||||
int y = TJAPlayer3.Skin.nScrollFieldY[nPlayer];// + ((int)(pChip.nコース) * 100)
|
||||
|
||||
if (pChip.nチャンネル番号 >= 0x15 && pChip.nチャンネル番号 <= 0x17)
|
||||
if (NotesManager.IsGenericRoll(pChip) && !NotesManager.IsRollEnd(pChip))
|
||||
{
|
||||
if (pChip.nノーツ移動開始時刻ms != 0 && ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < pChip.n発声時刻ms - pChip.nノーツ移動開始時刻ms))
|
||||
{
|
||||
@ -1987,7 +1945,7 @@ namespace TJAPlayer3
|
||||
x末端 = 349 + pChip.nバーからのノーツ末端距離dot + 10;
|
||||
}
|
||||
}
|
||||
else if (pChip.nチャンネル番号 == 0x18)
|
||||
else if (NotesManager.IsRollEnd(pChip))
|
||||
{
|
||||
if (pChip.nノーツ移動開始時刻ms != 0 && ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < n先頭発声位置 - pChip.nノーツ移動開始時刻ms))
|
||||
{
|
||||
@ -1999,21 +1957,13 @@ namespace TJAPlayer3
|
||||
}
|
||||
}
|
||||
|
||||
if (pChip.nチャンネル番号 == 0x15 && pChip.n発声時刻ms < 5000)
|
||||
{
|
||||
|
||||
}
|
||||
if (pChip.nチャンネル番号 == 0x18 && pChip.n発声時刻ms < 5000)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
#region[ HIDSUD & STEALTH ]
|
||||
|
||||
if (TJAPlayer3.ConfigIni.eSTEALTH == Eステルスモード.STEALTH)
|
||||
{
|
||||
pChip.bShow = false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
//if( CDTXMania.ConfigIni.eScrollMode != EScrollMode.Normal )
|
||||
@ -2136,7 +2086,7 @@ namespace TJAPlayer3
|
||||
|
||||
}
|
||||
|
||||
if (pChip.nチャンネル番号 == 0x17)
|
||||
if (NotesManager.IsBalloon(pChip))
|
||||
{
|
||||
if (pChip.bShow)
|
||||
{
|
||||
@ -2155,7 +2105,7 @@ namespace TJAPlayer3
|
||||
TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x - 2, y + nSenotesY, new Rectangle(0, 30 * pChip.nSenote, 136, 30));
|
||||
}
|
||||
}
|
||||
if (pChip.nチャンネル番号 == 0x18)
|
||||
if (NotesManager.IsRollEnd(pChip))
|
||||
{
|
||||
//大きい連打か小さい連打かの区別方法を考えてなかったよちくしょう
|
||||
if (TJAPlayer3.Tx.Notes[(int)_gt] != null)
|
||||
@ -2186,7 +2136,7 @@ namespace TJAPlayer3
|
||||
if (pChip.n発声時刻ms < (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) && pChip.nノーツ終了時刻ms > (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)))
|
||||
{
|
||||
//時間内でかつ0x9Aじゃないならならヒット処理
|
||||
if (pChip.nチャンネル番号 != 0x18 && (nPlayer == 0 ? TJAPlayer3.ConfigIni.b太鼓パートAutoPlay : (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.nAILevel > 0)))
|
||||
if (!NotesManager.IsRollEnd(pChip) && (nPlayer == 0 ? TJAPlayer3.ConfigIni.b太鼓パートAutoPlay : (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.nAILevel > 0)))
|
||||
this.tチップのヒット処理(pChip.n発声時刻ms, pChip, E楽器パート.TAIKO, false, 0, nPlayer);
|
||||
}
|
||||
}
|
||||
@ -2276,9 +2226,8 @@ namespace TJAPlayer3
|
||||
{
|
||||
if (this.chip現在処理中の連打チップ[i] != null)
|
||||
{
|
||||
int n = this.chip現在処理中の連打チップ[i].nチャンネル番号;
|
||||
|
||||
if (this.chip現在処理中の連打チップ[i].nチャンネル番号 == 0x17 && this.b連打中[i] == true)
|
||||
//int n = this.chip現在処理中の連打チップ[i].nチャンネル番号;
|
||||
if (NotesManager.IsBalloon(this.chip現在処理中の連打チップ[i]) && this.b連打中[i] == true)
|
||||
{
|
||||
//if (this.chip現在処理中の連打チップ.n発声時刻ms <= (int)CSound管理.rc演奏用タイマ.n現在時刻ms && this.chip現在処理中の連打チップ.nノーツ終了時刻ms >= (int)CSound管理.rc演奏用タイマ.n現在時刻ms)
|
||||
if (this.chip現在処理中の連打チップ[i].n発声時刻ms <= (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) && this.chip現在処理中の連打チップ[i].nノーツ終了時刻ms + 500 >= (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)))
|
||||
|
@ -29,9 +29,9 @@ namespace TJAPlayer3
|
||||
["9"] = 7, // Kusudama (Currently treated as balloon)
|
||||
["A"] = 10, // Joint Big Don (2P)
|
||||
["B"] = 11, // Joint Big Ka (2P)
|
||||
["C"] = 0, // Mine (Coming soon)
|
||||
["C"] = 12, // Mine (Coming soon)
|
||||
["D"] = 0, // Unused
|
||||
["E"] = 14, // Konga clap roll (Coming soon)
|
||||
["E"] = 5, // Konga clap roll (Coming soon)
|
||||
["F"] = 15, // ADLib
|
||||
["G"] = 0xF1, // Green (Purple) double hit note (Coming soon)
|
||||
["H"] = 5, // Konga red roll (Coming soon)
|
||||
@ -103,6 +103,18 @@ namespace TJAPlayer3
|
||||
return blue ? chip.nチャンネル番号 == 0x12 : chip.nチャンネル番号 == 0x11;
|
||||
}
|
||||
|
||||
public static bool IsSmallNote(CDTX.CChip chip)
|
||||
{
|
||||
if (chip == null) return false;
|
||||
return chip.nチャンネル番号 == 0x12 || chip.nチャンネル番号 == 0x11;
|
||||
}
|
||||
|
||||
public static bool IsBigNote(CDTX.CChip chip)
|
||||
{
|
||||
if (chip == null) return false;
|
||||
return (chip.nチャンネル番号 == 0x13 || chip.nチャンネル番号 == 0x14 || chip.nチャンネル番号 == 0x1A || chip.nチャンネル番号 == 0x1B);
|
||||
}
|
||||
|
||||
public static bool IsBigKaTaiko(CDTX.CChip chip, EGameType gt)
|
||||
{
|
||||
if (chip == null) return false;
|
||||
@ -142,10 +154,16 @@ namespace TJAPlayer3
|
||||
return (chip.nチャンネル番号 == 0x101);
|
||||
}
|
||||
|
||||
public static bool IsMineNote(CDTX.CChip chip)
|
||||
public static bool IsKusudama(CDTX.CChip chip)
|
||||
{
|
||||
if (chip == null) return false;
|
||||
return chip.nチャンネル番号 == 0x1E;
|
||||
return chip.nチャンネル番号 == 0x19;
|
||||
}
|
||||
|
||||
public static bool IsRollEnd(CDTX.CChip chip)
|
||||
{
|
||||
if (chip == null) return false;
|
||||
return chip.nチャンネル番号 == 0x18;
|
||||
}
|
||||
|
||||
public static bool IsBalloon(CDTX.CChip chip)
|
||||
@ -166,12 +184,24 @@ namespace TJAPlayer3
|
||||
return chip.nチャンネル番号 == 0x15;
|
||||
}
|
||||
|
||||
public static bool IsADLIB(CDTX.CChip chip)
|
||||
{
|
||||
if (chip == null) return false;
|
||||
return chip.nチャンネル番号 == 0x1F;
|
||||
}
|
||||
|
||||
public static bool IsRoll(CDTX.CChip chip)
|
||||
{
|
||||
if (chip == null) return false;
|
||||
return IsBigRoll(chip) || IsSmallRoll(chip);
|
||||
}
|
||||
|
||||
public static bool IsGenericRoll(CDTX.CChip chip)
|
||||
{
|
||||
if (chip == null) return false;
|
||||
return 0x15 <= chip.nチャンネル番号 && chip.nチャンネル番号 <= 0x19;
|
||||
}
|
||||
|
||||
public static bool IsMissableNote(CDTX.CChip chip)
|
||||
{
|
||||
if (chip == null) return false;
|
||||
@ -181,6 +211,15 @@ namespace TJAPlayer3
|
||||
|| chip.nチャンネル番号 == 0x101;
|
||||
}
|
||||
|
||||
public static bool IsHittableNote(CDTX.CChip chip)
|
||||
{
|
||||
if (chip == null) return false;
|
||||
return IsMissableNote(chip)
|
||||
|| IsGenericRoll(chip)
|
||||
|| IsADLIB(chip)
|
||||
|| IsMine(chip);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region [Displayables]
|
||||
@ -207,7 +246,7 @@ namespace TJAPlayer3
|
||||
else if (IsBigKaTaiko(chip, _gt) || IsClapKonga(chip, _gt)) noteType = 4;
|
||||
else if (IsBalloon(chip)) noteType = 11;
|
||||
|
||||
else if (IsMineNote(chip))
|
||||
else if (IsMine(chip))
|
||||
{
|
||||
TJAPlayer3.Tx.Note_Mine?.t2D描画(TJAPlayer3.app.Device, x, y);
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user