public bool bHit;
public bool b可視 = true;
public bool bボーナスチップ = false;
+ public bool bロングノーツ = false; // 2020.05.19 kairera0467
+ public bool bロングノーツHit中 = false; // 2020.05.19 kairera0467 enumにしたいが...
public double dbチップサイズ倍率 = 1.0;
public double db実数値;
public EAVI種別 eAVI種別;
case 0x90:
case 0x91:
case 0x92:
+ case 0x93:
+ case 0x94:
+ case 0x95:
+ case 0x96:
+ case 0x97:
+ case 0x98:
+ case 0x99:
+ case 0x9A:
+ case 0x9B:
+ case 0x9C:
+ case 0x9D:
+ case 0x9E:
+ case 0x9F:
case 0xa0:
case 0xa1:
case 0xa2:
case 0xa6:
case 0xa7:
case 0xa8:
- case 0xaf:
+ case 0xA9:
+ case 0xAA:
+ case 0xAB:
+ case 0xAC:
+ case 0xAD:
+ case 0xAE:
+ case 0xAF:
case 0xb1:
case 0xb2:
case 0xb3:
case 0xba:
case 0xbb:
case 0xbc:
+ case 0xD0:
+ case 0xD1:
+ case 0xD2:
+ case 0xD3:
return true;
}
return false;
CChip c_AddMixer = new CChip()
{
- nチャンネル番号 = 0xDA,
+ nチャンネル番号 = 0xEA,
n整数値 = pChip.n整数値,
n整数値_内部番号 = pChip.n整数値_内部番号,
n発声時刻ms = nAddMixer時刻ms,
}
CChip c = new CChip() // mixer削除時刻を更新(遅延)する
{
- nチャンネル番号 = 0xDB,
+ nチャンネル番号 = 0xEB,
n整数値 = listRemoveTiming[ index ].n整数値,
n整数値_内部番号 = listRemoveTiming[ index ].n整数値_内部番号,
n発声時刻ms = n新RemoveMixer時刻ms,
{ // 発音していたが既にmixer削除確定していたなら
CChip c = new CChip() // 新しくmixer削除候補として追加する
{
- nチャンネル番号 = 0xDB,
+ nチャンネル番号 = 0xEB,
n整数値 = pChip.n整数値,
n整数値_内部番号 = pChip.n整数値_内部番号,
n発声時刻ms = n新RemoveMixer時刻ms,
}
}
#endregion
+ #region[ ギター ]
+ if( CDTXMania.ConfigIni.bGuitar有効 )
+ {
+ if( this.txパネル本体 != null )
+ {
+ this.txパネル本体.t2D描画( CDTXMania.app.Device, 428 - 236, 352 );
+ }
+
+ for( int j = 1; j < 3; j++ )
+ {
+ if ( this.tx難易度パネル != null )
+ {
+ this.tx難易度パネル.t2D描画( CDTXMania.app.Device, j == 1 ? 428 - 236 : 428, 352 );
+ }
+ for( int i = 0; i < 5; i++ )
+ {
+ int[] n難易度整数 = new int[5];
+ int[] n難易度小数 = new int[5];
+ n難易度整数[ i ] = (int)this.n現在選択中の曲のレベル難易度毎DGB[ i ][ j ] / 10;
+ n難易度小数[ i ] = ( this.n現在選択中の曲のレベル難易度毎DGB[ i ][ j ] - (n難易度整数[ i ] * 10 ) ) * 10;
+ n難易度小数[ i ] += this.n現在選択中の曲のレベル小数点難易度毎DGB[ i ][ j ];
+
+ if( /* this.str難易度ラベル[ i ] != null && */ this.b現在選択中の曲に譜面がある[ i ][ j ] )
+ {
+ //this.t大文字表示(73 + this.n本体X[ j ] + (i * 143), 19 + this.n本体Y[j] - y差分[i], string.Format("{0:0}", n難易度整数[i]));
+ //this.t小文字表示(102 + this.n本体X[ j ] + (i * 143), 37 + this.n本体Y[j] - y差分[i], string.Format("{0,2:00}", n難易度小数[i]));
+ //this.tx難易度数字XG.t2D描画(CDTXMania.app.Device, 94 + this.n本体X[j] + (i * 143), 51 + this.n本体Y[j] - y差分[i], new Rectangle(145, 54, 7, 8));
+ this.tレベル値の描画_中( 547, 626 - ( i * 60 ), string.Format("{0:0}", n難易度整数[i]) + "." + string.Format("{0,2:00}", n難易度小数[i]) );
+ }
+ //else if ((this.str難易度ラベル[i] != null && !this.b現在選択中の曲に譜面がある[i][j]) || CDTXMania.stage選曲XG.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.RANDOM)
+ //{
+ // this.t大文字表示(73 + this.n本体X[j] + (i * 143), 19 + this.n本体Y[j] - y差分[i], ("-"));
+ // this.t小文字表示(102 + this.n本体X[j] + (i * 143), 37 + this.n本体Y[j] - y差分[i], ("--"));
+ // this.tx難易度数字XG.t2D描画(CDTXMania.app.Device, 94 + this.n本体X[j] + (i * 143), 51 + this.n本体Y[j] - y差分[i], new Rectangle(145, 54, 7, 8));
+ //}
+
+ //if( this.b現在選択中の曲に譜面がある[ i ].Drums )
+ //{
+ // CDTXMania.act文字コンソール.tPrint( 570, 634 - ( 60 * i ), C文字コンソール.Eフォント種別.白, string.Format( "{0:0}", n難易度整数[i] ) + "." + string.Format("{0,2:00}", n難易度小数[i]) );
+ //}
+ #region[ ランク画像 ]
+ int rank = this.n現在選択中の曲の最高ランク難易度毎[ i ][ j ];
+ if( rank != 99 )
+ {
+ if( rank < 0 ) rank = 0;
+ else if( rank > 6 ) rank = 6;
+
+ this.txRank?.t2D描画( CDTXMania.app.Device, 453, 612 - ( i * 60 ), this.rectRank文字[ rank ] );
+ }
+ #endregion
+ #region[ FC/EXC ]
+ if( this.db現在選択中の曲の最高スキル値難易度毎[ i ][ j ] >= 100.0 )
+ {
+ this.txRank?.t2D描画( CDTXMania.app.Device, 487, 612 - ( i * 60 ), new Rectangle( 0, 56, 28, 28 ) );
+ }
+ else if( this.b現在選択中の曲がフルコンボ難易度毎[ i ][ j ] )
+ {
+ this.txRank?.t2D描画( CDTXMania.app.Device, 487, 612 - ( i * 60 ), new Rectangle( 28, 56, 28, 28 ) );
+ }
+ #endregion
+ }
+
+ #region [ 選択曲の 最高スキル値の描画 ]
+ //-----------------
+ //for (int j = 0; j < 3; j++)
+ //{
+ for (int i = 0; i < 5; i++)
+ {
+ //if( j == 0 )
+ {
+ if( this.db現在選択中の曲の最高スキル値難易度毎[ i ].Drums != 0.00 )
+ {
+ // ToDo:エクセはどう表示される?
+ CDTXMania.act文字コンソール.tPrint( 450, 645 - ( i * 60 ), C文字コンソール.Eフォント種別.白, string.Format( "{0,6:##0.00}%", this.db現在選択中の曲の最高スキル値難易度毎[ i ].Drums ) );
+ }
+ }
+ }
+ //}
+ //-----------------
+ #endregion
+ this.t難易度カーソル描画( 426, base.n現在選択中の曲の難易度 );
+
+ if( CDTXMania.stage選曲GITADORA.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE )
+ {
+ #region[ 曲別スキル値(左側)を描画 ]
+ this.tスキル値の描画_大( 79, 216, this.db現在選択中の曲の曲別スキル値.Drums );
+ #endregion
+ #region[ BPM値を描画 ]
+ // ToDo:速度変化への対応(DB側もいじらないとダメ)
+ this.tBPM値の描画( 120, 302, CDTXMania.stage選曲GITADORA.r現在選択中のスコア.譜面情報.最低Bpm, CDTXMania.stage選曲GITADORA.r現在選択中のスコア.譜面情報.最大Bpm );
+ #endregion
+ }
+ }
+
+
+ }
+ #endregion
}
// Todo:ギター・ベースモード時の表示
if( CDTXMania.stage選曲GITADORA.r現在選択中のスコア != null )
{
- if( this.txNotesData背景 != null )
+ if( CDTXMania.ConfigIni.bDrums有効 )
{
- this.txNotesData背景.t2D描画( CDTXMania.app.Device, 213, 353 );
- if( this.txNotesDataゲージ != null )
+ if( this.txNotesData背景 != null )
{
- //グラフ背景
- for( int i = 0; i < 10; i++ )
+ this.txNotesData背景.t2D描画( CDTXMania.app.Device, 213, 353 );
+ if( this.txNotesDataゲージ != null )
{
- this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 260 + i * 12, 355, new Rectangle( 0, 0, 4, 270 ) );
+ //グラフ背景
+ for( int i = 0; i < 10; i++ )
+ {
+ this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 260 + i * 12, 355, new Rectangle( 0, 0, 4, 270 ) );
+ }
+
+ double ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].LC );
+ this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 260, 625 - (int)(270 * ret), new Rectangle( 4, 0, 4, (int)(270 * ret) ) );
+ ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].HH + this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].HHO );
+ this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 272, 625 - (int)(270 * ret), new Rectangle( 8, 0, 4, (int)(270 * ret) ) );
+ ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].LP + this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].LBD );
+ this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 284, 625 - (int)(270 * ret), new Rectangle( 12, 0, 4, (int)(270 * ret) ) );
+ ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].SD );
+ this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 296, 625 - (int)(270 * ret), new Rectangle( 16, 0, 4, (int)(270 * ret) ) );
+ ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].HT );
+ this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 308, 625 - (int)(270 * ret), new Rectangle( 20, 0, 4, (int)(270 * ret) ) );
+ ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].BD );
+ this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 320, 625 - (int)(270 * ret), new Rectangle( 24, 0, 4, (int)(270 * ret) ) );
+ ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].LT );
+ this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 332, 625 - (int)(270 * ret), new Rectangle( 28, 0, 4, (int)(270 * ret) ) );
+ ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].FT );
+ this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 344, 625 - (int)(270 * ret), new Rectangle( 32, 0, 4, (int)(270 * ret) ) );
+ ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].CY );
+ this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 356, 625 - (int)(270 * ret), new Rectangle( 36, 0, 4, (int)(270 * ret) ) );
+ ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].RD );
+ this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 368, 625 - (int)(270 * ret), new Rectangle( 40, 0, 4, (int)(270 * ret) ) );
}
- double ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].LC );
- this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 260, 625 - (int)(270 * ret), new Rectangle( 4, 0, 4, (int)(270 * ret) ) );
- ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].HH + this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].HHO );
- this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 272, 625 - (int)(270 * ret), new Rectangle( 8, 0, 4, (int)(270 * ret) ) );
- ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].LP + this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].LBD );
- this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 284, 625 - (int)(270 * ret), new Rectangle( 12, 0, 4, (int)(270 * ret) ) );
- ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].SD );
- this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 296, 625 - (int)(270 * ret), new Rectangle( 16, 0, 4, (int)(270 * ret) ) );
- ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].HT );
- this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 308, 625 - (int)(270 * ret), new Rectangle( 20, 0, 4, (int)(270 * ret) ) );
- ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].BD );
- this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 320, 625 - (int)(270 * ret), new Rectangle( 24, 0, 4, (int)(270 * ret) ) );
- ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].LT );
- this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 332, 625 - (int)(270 * ret), new Rectangle( 28, 0, 4, (int)(270 * ret) ) );
- ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].FT );
- this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 344, 625 - (int)(270 * ret), new Rectangle( 32, 0, 4, (int)(270 * ret) ) );
- ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].CY );
- this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 356, 625 - (int)(270 * ret), new Rectangle( 36, 0, 4, (int)(270 * ret) ) );
- ret = this.dbノーツグラフゲージ割合計算( this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].RD );
- this.txNotesDataゲージ.t2D描画( CDTXMania.app.Device, 368, 625 - (int)(270 * ret), new Rectangle( 40, 0, 4, (int)(270 * ret) ) );
+ // TotalNotes
+ this.tTotalNotes数字表示( 280, 658, String.Format( "{0,5:####0}", this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].Drums ) );
}
-
- // TotalNotes
- this.tTotalNotes数字表示( 280, 658, String.Format( "{0,5:####0}", this.n選択中の曲のノート数_難易度毎[ base.n現在選択中の曲の難易度 ].Drums ) );
}
//CDTXMania.act文字コンソール.tPrint( 380, 400, C文字コンソール.Eフォント種別.白, "LC:" + CDTXMania.stage選曲GITADORA.r現在選択中のスコア.譜面情報.n可視チップ数.LC.ToString() );
tアイテム数の描画();
#endregion
- //if( CDTXMania.Input管理.Keyboard.bキーが押されている( (int)SlimDXKey.F7 ) )
+ if( CDTXMania.Input管理.Keyboard.bキーが押されている( (int)SlimDXKey.F7 ) )
{
- //this.tPuzzleFIFOTest();
+ this.tPuzzleFIFOTest();
}
#region [ スクロール地点の計算(描画はCActSelectShowCurrentPositionにて行う) #27648 ]
protected CDTX.CChip r現在の空うちベースChip;
protected CDTX.CChip r次にくるギターChip;
protected CDTX.CChip r次にくるベースChip;
+ protected STDGBVALUE<CDTX.CChip> r処理中のロングChip;
protected CTexture txWailing枠;
protected CTexture txチップ;
protected CTexture txヒットバー;
}
continue;
}
- else if ( ( ( ( nChannel == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( 0x20 <= nChannel ) && ( nChannel <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannel ) ) ) )
+ else if ( ( ( ( nChannel == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( 0x20 <= nChannel ) && ( nChannel <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannel ) ) ||
+ ( nChannel >= 0x93 && nChannel <= 0x9F ) || ( nChannel >= 0xA9 && nChannel <= 0xAF ) || ( nChannel >= 0xD0 && nChannel <= 0xD3 )
+ ) )
{
if ( chip.n発声時刻ms > nTime )
{
||
(
( ( nChannel == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) ||
- ( ( ( nChannel >= 0x20 ) && ( nChannel <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannel ) )
+ ( ( ( nChannel >= 0x20 ) && ( nChannel <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannel ) ||
+ ( ( nChannel >= 0x93 && nChannel <= 0x9F ) && ( chip.nチャンネル番号 == nChannel ) ) ||
+ ( ( nChannel >= 0xA9 && nChannel <= 0xAF ) && ( chip.nチャンネル番号 == nChannel ) ) ||
+ ( ( nChannel >= 0xD0 && nChannel <= 0xD3 ) && ( chip.nチャンネル番号 == nChannel ) ) )
)
||
(
case 0x25:
case 0x26:
case 0x27:
+
+ // 5レーン
+ case 0x93:
+ case 0x94:
+ case 0x95:
+ case 0x96:
+ case 0x97:
+ case 0x98:
+ case 0x99:
+ case 0x9A:
+ case 0x9B:
+ case 0x9C:
+ case 0x9D:
+ case 0x9E:
+ case 0x9F:
+ case 0xA9:
+ case 0xAA:
+ case 0xAB:
+ case 0xAC:
+ case 0xAD:
+ case 0xAE:
+ case 0xAF:
+ case 0xD0:
+ case 0xD1:
+ case 0xD2:
+ case 0xD3:
this.t進行描画_チップ_ギターベース( configIni, ref dTX, ref pChip, E楽器パート.GUITAR );
break;
#endregion
this.t進行描画_チップ_ギター_ウェイリング( configIni, ref dTX, ref pChip, !CDTXMania.ConfigIni.bDrums有効 );
break;
#endregion
- #region [ 2f: ウェイリングサウンド(ギター) ]
- case 0x2f: // ウェイリングサウンド(ギター)
+ #region[ 2C: ロングノーツ(ギター) ]
+ // 2020.05.19 kairera0467
+ // WIP
+ // チャンネル番号はAL基準
+ case 0x2C:
+ break;
+ #endregion
+ #region[ 2D: ロングノーツ(ベース) ]
+ // 2020.05.19 kairera0467
+ // WIP
+ // チャンネル番号はAL基準
+ case 0x2D:
+ break;
+ #endregion
+ #region [ 2f: ウェイリングサウンド(ギター) ]
+ case 0x2f: // ウェイリングサウンド(ギター)
if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )
{
pChip.bHit = true;
break;
#endregion
#region [ af: ウェイリングサウンド(ベース) ]
- case 0xaf: // ウェイリングサウンド(ベース)
- if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )
- {
- pChip.bHit = true;
- this.r現在の歓声Chip.Bass = pChip;
- }
- break;
+ // not used.
+ //case 0xaf: // ウェイリングサウンド(ベース)
+ // if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )
+ // {
+ // pChip.bHit = true;
+ // this.r現在の歓声Chip.Bass = pChip;
+ // }
+ // break;
#endregion
#region [ b1-b9, bc: 空打ち音設定(ドラム) ]
case 0xb1: // 空打ち音設定(ドラム)
}
break;
#endregion
- #region [ da: ミキサーへチップ音追加 ]
- case 0xDA:
+ #region [ ea: ミキサーへチップ音追加 ]
+ case 0xEA:
if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
{
//Debug.WriteLine( "[DA(AddMixer)] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString( "x2" ) + ", wav=" + pChip.n整数値.ToString( "x2" ) + ", time=" + pChip.n発声時刻ms );
}
break;
#endregion
- #region [ db: ミキサーからチップ音削除 ]
- case 0xDB:
+ #region [ eb: ミキサーからチップ音削除 ]
+ case 0xEB:
if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
{
//Debug.WriteLine( "[DB(RemoveMixer)] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString( "x2" ) + ", wav=" + pChip.n整数値.ToString( "x2" ) + ", time=" + pChip.n発声時刻ms );
CDTXMania.Timer.t一時停止(); // 再生時刻カウンタ停止
this.n現在のトップChip = CDTXMania.DTX.listChip.Count - 1; // 終端にシーク
+ for (int i = 0; i < 3; i++)
+ {
+ this.r処理中のロングChip[i] = null; // 2020.05.19 kairera0467
+ }
+
// 自分自身のOn活性化()相当の処理もすべき。
this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 2 ], y - 4, new Rectangle( 77, 1, 35, 8 ) );
}
#endregion
+ #region [ Yチップ描画 ]
+ //x += 39;
+ if( bChipHasY )
+ {
+ //this.txチップ.t2D描画( CDTXMania.app.Device, x + 3, y - 4, new Rectangle( 77, 1, 35, 8 ) );
+ this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 3 ], y - 4, new Rectangle( 115, 1, 35, 8 ) );
+ }
+ #endregion
+ #region [ Pチップ描画 ]
+ //x += 39;
+ if( bChipHasP )
+ {
+ //this.txチップ.t2D描画( CDTXMania.app.Device, x + 3, y - 4, new Rectangle( 77, 1, 35, 8 ) );
+ this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 4 ], y - 4, new Rectangle( 153, 1, 35, 8 ) );
+ }
+ #endregion
}
}
}
bool autoR = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtR : bIsAutoPlay.BsR;
bool autoG = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtG : bIsAutoPlay.BsG;
bool autoB = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtB : bIsAutoPlay.BsB;
+ bool autoY = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtY : bIsAutoPlay.BsY;
+ bool autoP = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtP : bIsAutoPlay.BsP;
bool pushingR = CDTXMania.Pad.b押されている( inst, Eパッド.R );
bool pushingG = CDTXMania.Pad.b押されている( inst, Eパッド.G );
bool pushingB = CDTXMania.Pad.b押されている( inst, Eパッド.B );
+ bool pushingY = CDTXMania.Pad.b押されている( inst, Eパッド.Y );
+ bool pushingP = CDTXMania.Pad.b押されている( inst, Eパッド.P );
#region [ Chip Fire effects (auto時用) ]
// autoPickでない時の処理は、 t入力処理・ギターベース(E楽器パート) で行う
- bool bSuccessOPEN = bChipIsO && (autoR || !pushingR) && (autoG || !pushingG) && (autoB || !pushingB);
+ bool bSuccessOPEN = bChipIsO && (autoR || !pushingR) && (autoG || !pushingG) && (autoB || !pushingB) && (autoY || !pushingY) && (autoP || !pushingP);
{
if ( ( bChipHasR && ( autoR || pushingR ) ) || bSuccessOPEN )
{
{
this.actChipFireGB.Start( 2 + lo, 演奏判定ライン座標 );
}
- if ( bSuccessOPEN )
+ if ( ( bChipHasY && ( autoY || pushingY ) ) || bSuccessOPEN )
{
this.actChipFireGB.Start( 3 + lo, 演奏判定ライン座標 );
}
- if ( bSuccessOPEN )
+ if ( ( bChipHasP && ( autoP || pushingP ) ) || bSuccessOPEN )
{
this.actChipFireGB.Start( 4 + lo, 演奏判定ライン座標 );
}
#region [ autopick ]
{
bool bMiss = true;
- if ( bChipHasR == autoR && bChipHasG == autoG && bChipHasB == autoB ) // autoレーンとチップレーン一致時はOK
+ if ( bChipHasR == autoR && bChipHasG == autoG && bChipHasB == autoB && bChipHasY == autoY && bChipHasP == autoP ) // autoレーンとチップレーン一致時はOK
{ // この条件を加えないと、同時に非autoレーンを押下している時にNGとなってしまう。
bMiss = false;
}
- else if ( ( autoR || ( bChipHasR == pushingR ) ) && ( autoG || ( bChipHasG == pushingG ) ) && ( autoB || ( bChipHasB == pushingB ) ) )
+ else if ( ( autoR || ( bChipHasR == pushingR ) ) && ( autoG || ( bChipHasG == pushingG ) ) && ( autoB || ( bChipHasB == pushingB ) ) && ( autoY || ( bChipHasY == pushingY ) ) && ( autoP || ( bChipHasP == pushingP ) ) )
// ( bChipHasR == ( pushingR | autoR ) ) && ( bChipHasG == ( pushingG | autoG ) ) && ( bChipHasB == ( pushingB | autoB ) ) )
{
bMiss = false;
}
- else if ( ( ( bChipIsO == true ) && ( !pushingR | autoR ) && ( !pushingG | autoG ) && ( !pushingB | autoB ) ) ) // OPEN時
+ else if ( ( ( bChipIsO == true ) && ( !pushingR | autoR ) && ( !pushingG | autoG ) && ( !pushingB | autoB ) && ( !pushingY | autoY ) && ( !pushingP | autoP ) ) ) // OPEN時
{
bMiss = false;
}
bool autoR = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtR : bIsAutoPlay.BsR;
bool autoG = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtG : bIsAutoPlay.BsG;
bool autoB = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtB : bIsAutoPlay.BsB;
+ bool autoY = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtY : bIsAutoPlay.BsY;
+ bool autoP = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtP : bIsAutoPlay.BsP;
bool autoPick = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtPick : bIsAutoPlay.BsPick;
int nAutoW = ( autoW ) ? 8 : 0;
int nAutoR = ( autoR ) ? 4 : 0;
int nAutoG = ( autoG ) ? 2 : 0;
int nAutoB = ( autoB ) ? 1 : 0;
+ int nAutoY = ( autoY ) ? 16 : 0;
+ int nAutoP = ( autoP ) ? 32 : 0;
int nAutoMask = nAutoW | nAutoR | nAutoG | nAutoB;
// if ( bIsAutoPlay[ (int) Eレーン.Guitar - 1 + indexInst ] ) // このような、バグの入りやすい書き方(GT/BSのindex値が他と異なる)はいずれ見直したい
CDTX.CChip chip = this.r次に来る指定楽器Chipを更新して返す(inst);
if ( chip != null )
{
- if ( ( chip.nチャンネル番号 & 4 ) != 0 && autoR )
- {
- this.actLaneFlushGB.Start( R );
- this.actRGB.Push( R );
- }
- if ( ( chip.nチャンネル番号 & 2 ) != 0 && autoG )
- {
- this.actLaneFlushGB.Start( G );
- this.actRGB.Push( G );
- }
- if ( ( chip.nチャンネル番号 & 1 ) != 0 && autoB )
- {
- this.actLaneFlushGB.Start( B );
- this.actRGB.Push( B );
- }
+ bool bAutoGuitarR = false;
+ bool bAutoGuitarG = false;
+ bool bAutoGuitarB = false;
+ bool bAutoGuitarY = false;
+ bool bAutoGuitarP = false;
+ bool bAutoBassR = false;
+ bool bAutoBassG = false;
+ bool bAutoBassB = false;
+ bool bAutoBassY = false;
+ bool bAutoBassP = false;
+
+ switch( chip.nチャンネル番号 )
+ {
+ case 0x20:
+ break;
+ case 0x21:
+ bAutoGuitarB = true;
+ break;
+ case 0x22:
+ bAutoGuitarG = true;
+ break;
+ case 0x23:
+ bAutoGuitarG = true;
+ bAutoGuitarB = true;
+ break;
+ case 0x24:
+ bAutoGuitarR = true;
+ break;
+ case 0x25:
+ bAutoGuitarR = true;
+ bAutoGuitarB = true;
+ break;
+ case 0x26:
+ bAutoGuitarR = true;
+ bAutoGuitarG = true;
+ break;
+ case 0x27:
+ bAutoGuitarR = true;
+ bAutoGuitarG = true;
+ bAutoGuitarB = true;
+ break;
+
+ case 0x93:
+ bAutoGuitarY = true;
+ break;
+ case 0x94:
+ bAutoGuitarB = true;
+ bAutoGuitarY = true;
+ break;
+ case 0x95:
+ bAutoGuitarG = true;
+ bAutoGuitarY = true;
+ break;
+ case 0x96:
+ bAutoGuitarG = true;
+ bAutoGuitarB = true;
+ bAutoGuitarY = true;
+ break;
+ case 0x97:
+ bAutoGuitarR = true;
+ bAutoGuitarY = true;
+ break;
+ case 0x98:
+ bAutoGuitarR = true;
+ bAutoGuitarB = true;
+ bAutoGuitarY = true;
+ break;
+ case 0x99:
+ bAutoGuitarR = true;
+ bAutoGuitarG = true;
+ bAutoGuitarY = true;
+ break;
+ case 0x9A:
+ bAutoGuitarR = true;
+ bAutoGuitarG = true;
+ bAutoGuitarB = true;
+ bAutoGuitarY = true;
+ break;
+ case 0x9B:
+ bAutoGuitarP = true;
+ break;
+ case 0x9C:
+ bAutoGuitarB = true;
+ bAutoGuitarP = true;
+ break;
+ case 0x9D:
+ bAutoGuitarG = true;
+ bAutoGuitarP = true;
+ break;
+ case 0x9E:
+ bAutoGuitarG = true;
+ bAutoGuitarB = true;
+ bAutoGuitarP = true;
+ break;
+ case 0x9F:
+ bAutoGuitarR = true;
+ bAutoGuitarP = true;
+ break;
+
+ //BASS
+ case 0xA1:
+ bAutoBassB = true;
+ break;
+
+ case 0xA2:
+ bAutoBassG = true;
+ break;
+
+ case 0xA3:
+ bAutoBassG = true;
+ bAutoBassB = true;
+ break;
+
+ case 0xA4:
+ bAutoBassR = true;
+ break;
+
+ case 0xA5:
+ bAutoBassR = true;
+ bAutoBassB = true;
+ break;
+
+ case 0xA6:
+ bAutoBassR = true;
+ bAutoBassG = true;
+ break;
+
+ case 0xA7:
+ bAutoBassR = true;
+ bAutoBassG = true;
+ bAutoBassB = true;
+ break;
+
+ //A8 WAILING(BASS)
+
+ case 0xA9:
+ bAutoGuitarR = true;
+ bAutoGuitarB = true;
+ bAutoGuitarP = true;
+ break;
+
+ case 0xAA:
+ bAutoGuitarR = true;
+ bAutoGuitarG = true;
+ bAutoGuitarP = true;
+ break;
+
+ case 0xAB:
+ bAutoGuitarR = true;
+ bAutoGuitarG = true;
+ bAutoGuitarB = true;
+ bAutoGuitarP = true;
+ break;
+
+ case 0xAC:
+ bAutoGuitarY = true;
+ bAutoGuitarP = true;
+ break;
+
+ case 0xAD:
+ bAutoGuitarB = true;
+ bAutoGuitarY = true;
+ bAutoGuitarP = true;
+ break;
+
+ case 0xAE:
+ bAutoGuitarG = true;
+ bAutoGuitarY = true;
+ bAutoGuitarP = true;
+ break;
+
+ case 0xAF:
+ bAutoGuitarG = true;
+ bAutoGuitarB = true;
+ bAutoGuitarY = true;
+ bAutoGuitarP = true;
+ break;
+
+ case 0xC5:
+ bAutoBassY = true;
+ break;
+
+ case 0xC6:
+ bAutoBassB = true;
+ bAutoBassY = true;
+ break;
+
+ case 0xC8:
+ bAutoBassG = true;
+ bAutoBassY = true;
+ break;
+
+ case 0xC9:
+ bAutoBassG = true;
+ bAutoBassB = true;
+ bAutoBassY = true;
+ break;
+
+ case 0xCA:
+ bAutoBassR = true;
+ bAutoBassY = true;
+ break;
+
+ case 0xCB:
+ bAutoBassR = true;
+ bAutoBassB = true;
+ bAutoBassY = true;
+ break;
+ case 0xCC:
+ bAutoBassR = true;
+ bAutoBassG = true;
+ bAutoBassY = true;
+ break;
+ case 0xCD:
+ bAutoBassR = true;
+ bAutoBassG = true;
+ bAutoBassB = true;
+ bAutoBassY = true;
+ break;
+ case 0xCE:
+ bAutoBassP = true;
+ break;
+ case 0xCF:
+ bAutoBassB = true;
+ bAutoBassP = true;
+ break;
+
+ case 0xD0:
+ bAutoGuitarR = true;
+ bAutoGuitarY = true;
+ bAutoGuitarP = true;
+ break;
+ case 0xD1:
+ bAutoGuitarR = true;
+ bAutoGuitarB = true;
+ bAutoGuitarY = true;
+ bAutoGuitarP = true;
+ break;
+ case 0xD2:
+ bAutoGuitarR = true;
+ bAutoGuitarG = true;
+ bAutoGuitarY = true;
+ bAutoGuitarP = true;
+ break;
+ case 0xD3:
+ bAutoGuitarR = true;
+ bAutoGuitarG = true;
+ bAutoGuitarB = true;
+ bAutoGuitarY = true;
+ bAutoGuitarP = true;
+ break;
+
+ case 0xDA:
+ bAutoBassG = true;
+ bAutoBassP = true;
+ break;
+ case 0xDB:
+ bAutoBassG = true;
+ bAutoBassB = true;
+ bAutoBassP = true;
+ break;
+ case 0xDC:
+ bAutoBassR = true;
+ bAutoBassP = true;
+ break;
+ case 0xDD:
+ bAutoBassR = true;
+ bAutoBassB = true;
+ bAutoBassP = true;
+ break;
+ case 0xDE:
+ bAutoBassR = true;
+ bAutoBassG = true;
+ bAutoBassP = true;
+ break;
+ case 0xDF:
+ bAutoBassR = true;
+ bAutoBassG = true;
+ bAutoBassB = true;
+ bAutoBassP = true;
+ break;
+ case 0xE1:
+ bAutoBassY = true;
+ bAutoBassP = true;
+ break;
+ case 0xE2:
+ bAutoBassB = true;
+ bAutoBassY = true;
+ bAutoBassP = true;
+ break;
+ case 0xE3:
+ bAutoBassG = true;
+ bAutoBassY = true;
+ bAutoBassP = true;
+ break;
+ case 0xE4:
+ bAutoBassG = true;
+ bAutoBassB = true;
+ bAutoBassY = true;
+ bAutoBassP = true;
+ break;
+ case 0xE5:
+ bAutoBassR = true;
+ bAutoBassY = true;
+ bAutoBassP = true;
+ break;
+ case 0xE6:
+ bAutoBassR = true;
+ bAutoBassB = true;
+ bAutoBassY = true;
+ bAutoBassP = true;
+ break;
+ case 0xE7:
+ bAutoBassR = true;
+ bAutoBassG = true;
+ bAutoBassY = true;
+ bAutoBassP = true;
+ break;
+ case 0xE8:
+ bAutoBassR = true;
+ bAutoBassG = true;
+ bAutoBassB = true;
+ bAutoBassY = true;
+ bAutoBassP = true;
+ break;
+ }
+ //オートさん専用
+ if( bAutoGuitarR && bIsAutoPlay.GtR )
+ {
+ this.actLaneFlushGB.Start( 0 );
+ this.actRGB.Push( R );
+ }
+ if( bAutoGuitarG && bIsAutoPlay.GtG )
+ {
+ this.actLaneFlushGB.Start( 1 );
+ this.actRGB.Push( G );
+ }
+ if( bAutoGuitarB && bIsAutoPlay.GtB )
+ {
+ this.actLaneFlushGB.Start( 2 );
+ this.actRGB.Push( B );
+ }
+ if( bAutoGuitarY && bIsAutoPlay.GtY )
+ {
+ this.actLaneFlushGB.Start( 3 );
+ this.actRGB.Push( Y );
+ }
+ if( bAutoGuitarP && bIsAutoPlay.GtP )
+ {
+ this.actLaneFlushGB.Start( 4 );
+ this.actRGB.Push( P );
+ }
+
+ if( bAutoBassR && bIsAutoPlay.BsR )
+ {
+ this.actLaneFlushGB.Start( 5 );
+ this.actRGB.Push( R );
+ }
+ if( bAutoBassG && bIsAutoPlay.BsG )
+ {
+ this.actLaneFlushGB.Start( 6 );
+ this.actRGB.Push( G );
+ }
+ if( bAutoBassB && bIsAutoPlay.BsB )
+ {
+ this.actLaneFlushGB.Start( 7 );
+ this.actRGB.Push( B );
+ }
+ if( bAutoBassY && bIsAutoPlay.BsY )
+ {
+ this.actLaneFlushGB.Start( 8 );
+ this.actRGB.Push( Y );
+ }
+ if( bAutoBassP && bIsAutoPlay.BsP )
+ {
+ this.actLaneFlushGB.Start( 9 );
+ this.actRGB.Push( P );
+ }
// }
}
base.list子Activities.Add( this.actFO = new CActFIFOBlack() );
base.list子Activities.Add( this.actFOClear = new CActFIFOWhite() );
base.list子Activities.Add( this.actGraph = new CAct演奏グラフ() );
+ base.list子Activities.Add(this.actClearBar = new CAct演奏DrumsクリアバーGD());
}
}
else
{
- this.actGraph.dbグラフ値目標_渡 = CDTXMania.stage選曲.r確定されたスコア.譜面情報.最大スキル[ nGraphUsePart ]; // #24074 2011.01.23 add ikanick
- this.actGraph.dbグラフ値自己ベスト = CDTXMania.stage選曲.r確定されたスコア.譜面情報.最大スキル[ nGraphUsePart ];
+ this.actGraph.dbグラフ値目標_渡 = CDTXMania.stage選曲GITADORA.r確定されたスコア.譜面情報.最大スキル[ nGraphUsePart ]; // #24074 2011.01.23 add ikanick
+ this.actGraph.dbグラフ値自己ベスト = CDTXMania.stage選曲GITADORA.r確定されたスコア.譜面情報.最大スキル[ nGraphUsePart ];
// #35411 2015.08.21 chnmr0 add
// ゴースト利用可のなとき、0で初期化
this.t進行描画_判定文字列();
//this.t進行描画_コンボ();
}
+ this.t進行描画_コンボ();
this.t進行描画_演奏情報();
//this.t進行描画_Wailing枠();
this.t進行描画_チップファイアGB();
gSongNamePlate.DrawImage( CDTXMania.tテクスチャをImageで読み込む( strSongpanelFile ), 0, 0, nSongPanel[ 0 ], nSongPanel[ 1 ] );
#region[ 曲名 ]
- if( string.IsNullOrEmpty( CDTXMania.DTX.TITLE ) || ( !CDTXMania.bコンパクトモード && CDTXMania.ConfigIni.b曲名表示をdefのものにする ) )
- this.strTitle = CDTXMania.stage選曲XG.r現在選択中の曲.strタイトル;
- else
- this.strTitle = CDTXMania.DTX.TITLE;
+ //if( string.IsNullOrEmpty( CDTXMania.DTX.TITLE ) || ( !CDTXMania.bコンパクトモード && CDTXMania.ConfigIni.b曲名表示をdefのものにする ) )
+ // this.strTitle = CDTXMania.stage選曲XG.r現在選択中の曲.strタイトル;
+ //else
+ // this.strTitle = CDTXMania.DTX.TITLE;
+ this.strTitle = "";
if( File.Exists( CDTXMania.DTX.strフォルダ名 + "\\TitleTexture.png" ) )
{