--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Text;\r
+using System.Runtime.InteropServices;\r
+using System.Drawing;\r
+using SlimDX;\r
+using FDK;\r
+\r
+namespace DTXMania\r
+{\r
+ /// <summary>\r
+ /// CAct演奏Drumsゲージ と CAct演奏Gutiarゲージ のbaseクラス\r
+ /// </summary>\r
+ public class CAct演奏ゲージ : CActivity\r
+ {\r
+ public double dbゲージ値 // Drums専用\r
+ {\r
+ get\r
+ {\r
+ return this.db現在のゲージ値.Drums;\r
+ }\r
+ set\r
+ {\r
+ this.db現在のゲージ値.Drums = value;\r
+ if ( this.db現在のゲージ値.Drums > 1.0 )\r
+ {\r
+ this.db現在のゲージ値.Drums = 1.0;\r
+ }\r
+ }\r
+ }\r
+\r
+ public STDGBVALUE<double> db現在のゲージ値;\r
+ protected CCounter ct本体移動;\r
+ protected CCounter ct本体振動;\r
+ protected CTexture txゲージ;\r
+ }\r
+}\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Text;\r
+using System.Runtime.InteropServices;\r
+using System.Drawing;\r
+using System.Drawing.Imaging;\r
+using System.IO;\r
+using System.Diagnostics;\r
+using SlimDX;\r
+using SlimDX.Direct3D9;\r
+using FDK;\r
+\r
+namespace DTXMania\r
+{\r
+ /// <summary>\r
+ /// 演奏画面の共通クラス (ドラム演奏画面, ギター演奏画面の継承元)\r
+ /// </summary>\r
+ internal abstract class CStage演奏画面共通 : CStage\r
+ {\r
+ // プロパティ\r
+\r
+ public bool bAUTOでないチップが1つでもバーを通過した\r
+ {\r
+ get;\r
+ protected set;\r
+ }\r
+\r
+\r
+ // CStage 実装\r
+\r
+ public override void On活性化()\r
+ {\r
+ this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\r
+\r
+ this.r次にくるギターChip = null;\r
+ this.r次にくるベースChip = null;\r
+\r
+ for ( int i = 0; i < 3; i++ )\r
+ {\r
+ this.b演奏にキーボードを使った[ i ] = false;\r
+ this.b演奏にジョイパッドを使った[ i ] = false;\r
+ this.b演奏にMIDI入力を使った[ i ] = false;\r
+ this.b演奏にマウスを使った[ i ] = false;\r
+ }\r
+\r
+ base.On活性化();\r
+\r
+ this.nInputAdjustTimeMs.Drums = CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums; // #23580 2011.1.3 yyagi\r
+ this.nInputAdjustTimeMs.Guitar = CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar; // 2011.1.7 ikanick 修正\r
+ this.nInputAdjustTimeMs.Bass = CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass; //\r
+ //this.bIsAutoPlay.Drums = false;\r
+ //this.bIsAutoPlay.Guitar = CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
+ //this.bIsAutoPlay.Bass = CDTXMania.ConfigIni.bAutoPlay.Bass;\r
+ this.bIsAutoPlay = CDTXMania.ConfigIni.bAutoPlay; // #24239 2011.1.23 yyagi\r
+ }\r
+\r
+\r
+\r
+ // その他\r
+\r
+ #region [ protected ]\r
+ //-----------------\r
+ protected class STHITCOUNTOFRANK\r
+ {\r
+ // Fields\r
+ public int Good;\r
+ public int Great;\r
+ public int Miss;\r
+ public int Perfect;\r
+ public int Poor;\r
+\r
+ // Properties\r
+ public int this[ int index ]\r
+ {\r
+ get\r
+ {\r
+ switch ( index )\r
+ {\r
+ case 0:\r
+ return this.Perfect;\r
+\r
+ case 1:\r
+ return this.Great;\r
+\r
+ case 2:\r
+ return this.Good;\r
+\r
+ case 3:\r
+ return this.Poor;\r
+\r
+ case 4:\r
+ return this.Miss;\r
+ }\r
+ throw new IndexOutOfRangeException();\r
+ }\r
+ set\r
+ {\r
+ switch ( index )\r
+ {\r
+ case 0:\r
+ this.Perfect = value;\r
+ return;\r
+\r
+ case 1:\r
+ this.Great = value;\r
+ return;\r
+\r
+ case 2:\r
+ this.Good = value;\r
+ return;\r
+\r
+ case 3:\r
+ this.Poor = value;\r
+ return;\r
+\r
+ case 4:\r
+ this.Miss = value;\r
+ return;\r
+ }\r
+ throw new IndexOutOfRangeException();\r
+ }\r
+ }\r
+ }\r
+\r
+ [StructLayout( LayoutKind.Sequential )]\r
+ protected struct STKARAUCHI\r
+ {\r
+ public CDTX.CChip HH;\r
+ public CDTX.CChip SD;\r
+ public CDTX.CChip BD;\r
+ public CDTX.CChip HT;\r
+ public CDTX.CChip LT;\r
+ public CDTX.CChip FT;\r
+ public CDTX.CChip CY;\r
+ public CDTX.CChip HHO;\r
+ public CDTX.CChip RD;\r
+ public CDTX.CChip LC;\r
+ public CDTX.CChip this[ int index ]\r
+ {\r
+ get\r
+ {\r
+ switch ( index )\r
+ {\r
+ case 0:\r
+ return this.HH;\r
+\r
+ case 1:\r
+ return this.SD;\r
+\r
+ case 2:\r
+ return this.BD;\r
+\r
+ case 3:\r
+ return this.HT;\r
+\r
+ case 4:\r
+ return this.LT;\r
+\r
+ case 5:\r
+ return this.FT;\r
+\r
+ case 6:\r
+ return this.CY;\r
+\r
+ case 7:\r
+ return this.HHO;\r
+\r
+ case 8:\r
+ return this.RD;\r
+\r
+ case 9:\r
+ return this.LC;\r
+ }\r
+ throw new IndexOutOfRangeException();\r
+ }\r
+ set\r
+ {\r
+ switch ( index )\r
+ {\r
+ case 0:\r
+ this.HH = value;\r
+ return;\r
+\r
+ case 1:\r
+ this.SD = value;\r
+ return;\r
+\r
+ case 2:\r
+ this.BD = value;\r
+ return;\r
+\r
+ case 3:\r
+ this.HT = value;\r
+ return;\r
+\r
+ case 4:\r
+ this.LT = value;\r
+ return;\r
+\r
+ case 5:\r
+ this.FT = value;\r
+ return;\r
+\r
+ case 6:\r
+ this.CY = value;\r
+ return;\r
+\r
+ case 7:\r
+ this.HHO = value;\r
+ return;\r
+\r
+ case 8:\r
+ this.RD = value;\r
+ return;\r
+\r
+ case 9:\r
+ this.LC = value;\r
+ return;\r
+ }\r
+ throw new IndexOutOfRangeException();\r
+ }\r
+ }\r
+ }\r
+\r
+ protected CActFIFOBlack actFI;\r
+ protected CActFIFOBlack actFO;\r
+ protected CActFIFOWhite actFOClear;\r
+ protected CAct演奏ゲージ actGauge;\r
+\r
+ protected bool bPAUSE;\r
+ protected STDGBVALUE<bool> b演奏にMIDI入力を使った;\r
+ protected STDGBVALUE<bool> b演奏にキーボードを使った;\r
+ protected STDGBVALUE<bool> b演奏にジョイパッドを使った;\r
+ protected STDGBVALUE<bool> b演奏にマウスを使った;\r
+\r
+ protected E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
+\r
+ protected int n現在のトップChip = -1;\r
+\r
+ protected CDTX.CChip r次にくるギターChip;\r
+ protected CDTX.CChip r次にくるベースChip;\r
+\r
+\r
+ protected STDGBVALUE<int> nInputAdjustTimeMs; // #23580 2011.1.3 yyagi\r
+ protected CConfigIni.STAUTOPLAY bIsAutoPlay; // #24239 2011.1.23 yyagi\r
+\r
+\r
+\r
+\r
+ protected E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip, int nInputAdjustTime )\r
+ {\r
+ if ( pChip != null )\r
+ {\r
+ pChip.nLag = (int) ( nTime + nInputAdjustTime - pChip.n発声時刻ms ); // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature\r
+ int nDeltaTime = Math.Abs( pChip.nLag );\r
+ //Debug.WriteLine("nAbsTime=" + (nTime - pChip.n発声時刻ms) + ", nDeltaTime=" + (nTime + nInputAdjustTime - pChip.n発声時刻ms));\r
+ if ( nDeltaTime <= CDTXMania.nPerfect範囲ms )\r
+ {\r
+ return E判定.Perfect;\r
+ }\r
+ if ( nDeltaTime <= CDTXMania.nGreat範囲ms )\r
+ {\r
+ return E判定.Great;\r
+ }\r
+ if ( nDeltaTime <= CDTXMania.nGood範囲ms )\r
+ {\r
+ return E判定.Good;\r
+ }\r
+ if ( nDeltaTime <= CDTXMania.nPoor範囲ms )\r
+ {\r
+ return E判定.Poor;\r
+ }\r
+ }\r
+ return E判定.Miss;\r
+ }\r
+\r
+\r
+\r
+ protected CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag, int nInputAdjustTime )\r
+ {\r
+ nTime += nInputAdjustTime; // #24239 2011.1.23 yyagi InputAdjust\r
+\r
+ int num5;\r
+ if ( this.n現在のトップChip == -1 )\r
+ {\r
+ return null;\r
+ }\r
+ int count = CDTXMania.DTX.listChip.Count;\r
+ int num4 = num5 = this.n現在のトップChip;\r
+ if ( this.n現在のトップChip >= count )\r
+ {\r
+ num4 = num5 = count - 1;\r
+ }\r
+ int num2 = num4;\r
+ while ( num2 < count )\r
+ {\r
+ CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
+ if ( ( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) ) && ( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) )\r
+ {\r
+ if ( chip.n発声時刻ms > nTime )\r
+ {\r
+ break;\r
+ }\r
+ num5 = num2;\r
+ }\r
+ else if ( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
+ {\r
+ if ( chip.n発声時刻ms > nTime )\r
+ {\r
+ break;\r
+ }\r
+ num5 = num2;\r
+ }\r
+ else if ( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 0xa0 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
+ {\r
+ if ( chip.n発声時刻ms > nTime )\r
+ {\r
+ break;\r
+ }\r
+ num5 = num2;\r
+ }\r
+ num2++;\r
+ }\r
+ int num3 = num5;\r
+ while ( num3 >= 0 )\r
+ {\r
+ CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
+ if ( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) )\r
+ {\r
+ if ( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
+ {\r
+ break;\r
+ }\r
+ }\r
+ else if ( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 0x28 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) )\r
+ {\r
+ if ( ( chip2.nチャンネル番号 >= 0x20 ) && ( chip2.nチャンネル番号 <= 0x28 ) )\r
+ {\r
+ break;\r
+ }\r
+ }\r
+ else if ( ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 0xa0 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) && ( ( chip2.nチャンネル番号 >= 0xa0 ) && ( chip2.nチャンネル番号 <= 0xa8 ) ) )\r
+ {\r
+ break;\r
+ }\r
+ num3--;\r
+ }\r
+ if ( ( num2 == count ) && ( num3 < 0 ) )\r
+ {\r
+ return null;\r
+ }\r
+ if ( num2 == count )\r
+ {\r
+ return CDTXMania.DTX.listChip[ num3 ];\r
+ }\r
+ if ( num3 < 0 )\r
+ {\r
+ return CDTXMania.DTX.listChip[ num2 ];\r
+ }\r
+ CDTX.CChip chip3 = CDTXMania.DTX.listChip[ num2 ];\r
+ CDTX.CChip chip4 = CDTXMania.DTX.listChip[ num3 ];\r
+ int num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
+ int num7 = Math.Abs( (int) ( nTime - chip4.n発声時刻ms ) );\r
+ if ( num6 >= num7 )\r
+ {\r
+ return chip4;\r
+ }\r
+ return chip3;\r
+ }\r
+\r
+ protected CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime, int n検索範囲時間ms )\r
+ {\r
+ nTime += nInputAdjustTime;\r
+\r
+ int num5;\r
+ int num6;\r
+ if ( this.n現在のトップChip == -1 )\r
+ {\r
+ return null;\r
+ }\r
+ int count = CDTXMania.DTX.listChip.Count;\r
+ int num4 = num5 = this.n現在のトップChip;\r
+ if ( this.n現在のトップChip >= count )\r
+ {\r
+ num4 = num5 = count - 1;\r
+ }\r
+ int num2 = num4;\r
+ while ( num2 < count )\r
+ {\r
+ CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
+ if ( ( !chip.bHit && ( nChannelFlag >= 0x11 ) ) && ( nChannelFlag <= 0x1a ) )\r
+ {\r
+ if ( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
+ {\r
+ if ( chip.n発声時刻ms > nTime )\r
+ {\r
+ break;\r
+ }\r
+ num5 = num2;\r
+ }\r
+ }\r
+ else if ( !chip.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
+ {\r
+ if ( chip.n発声時刻ms > nTime )\r
+ {\r
+ break;\r
+ }\r
+ num5 = num2;\r
+ }\r
+ else if ( !chip.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
+ {\r
+ if ( chip.n発声時刻ms > nTime )\r
+ {\r
+ break;\r
+ }\r
+ num5 = num2;\r
+ }\r
+ num2++;\r
+ }\r
+ int num3 = num5;\r
+ while ( num3 >= 0 )\r
+ {\r
+ CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
+ if ( ( ( ( !chip2.bHit && ( nChannelFlag >= 0x11 ) ) && ( ( nChannelFlag <= 0x1a ) && ( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) )\r
+ {\r
+ break;\r
+ }\r
+ num3--;\r
+ }\r
+ if ( ( num2 == count ) && ( num3 < 0 ) )\r
+ {\r
+ return null;\r
+ }\r
+ CDTX.CChip chip3 = null;\r
+ if ( num2 == count )\r
+ {\r
+ chip3 = CDTXMania.DTX.listChip[ num3 ];\r
+ num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
+ }\r
+ else if ( num3 < 0 )\r
+ {\r
+ chip3 = CDTXMania.DTX.listChip[ num2 ];\r
+ num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
+ }\r
+ else\r
+ {\r
+ int num7 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
+ int num8 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
+ if ( num7 < num8 )\r
+ {\r
+ chip3 = CDTXMania.DTX.listChip[ num2 ];\r
+ num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
+ }\r
+ else\r
+ {\r
+ chip3 = CDTXMania.DTX.listChip[ num3 ];\r
+ num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
+ }\r
+ }\r
+ if ( ( n検索範囲時間ms > 0 ) && ( num6 > n検索範囲時間ms ) )\r
+ {\r
+ return null;\r
+ }\r
+ return chip3;\r
+ }\r
+ protected CDTX.CChip r次にくるギターChipを更新して返す()\r
+ {\r
+ int nInputAdjustTime = this.bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
+ this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, nInputAdjustTime, 500 );\r
+ return this.r次にくるギターChip;\r
+ }\r
+ protected CDTX.CChip r次にくるベースChipを更新して返す()\r
+ {\r
+ int nInputAdjustTime = this.bIsAutoPlay.Bass ? 0 : this.nInputAdjustTimeMs.Bass;\r
+ this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, nInputAdjustTime, 500 );\r
+ return this.r次にくるベースChip;\r
+ }\r
+\r
+ protected void ChangeInputAdjustTimeInPlaying( IInputDevice keyboard, int plusminus ) // #23580 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
+ {\r
+ int part, offset = plusminus;\r
+ if ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftShift ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightShift ) ) // Guitar InputAdjustTime\r
+ {\r
+ part = (int) E楽器パート.GUITAR;\r
+ }\r
+ else if ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftAlt ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightAlt ) ) // Bass InputAdjustTime\r
+ {\r
+ part = (int) E楽器パート.BASS;\r
+ }\r
+ else // Drums InputAdjustTime\r
+ {\r
+ part = (int) E楽器パート.DRUMS;\r
+ }\r
+ if ( !keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftControl ) && !keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightControl ) )\r
+ {\r
+ offset *= 10;\r
+ }\r
+\r
+ this.nInputAdjustTimeMs[ part ] += offset;\r
+ if ( this.nInputAdjustTimeMs[ part ] > 0 )\r
+ {\r
+ this.nInputAdjustTimeMs[ part ] = 0;\r
+ }\r
+ else if ( this.nInputAdjustTimeMs[ part ] < -99 )\r
+ {\r
+ this.nInputAdjustTimeMs[ part ] = -99;\r
+ }\r
+ CDTXMania.ConfigIni.nInputAdjustTimeMs[ part ] = this.nInputAdjustTimeMs[ part ];\r
+ }\r
+\r
+ protected abstract void t入力処理・ドラム();\r
+ protected abstract void t入力処理・ギター();\r
+ protected abstract void t入力処理・ベース();\r
+ protected abstract void ドラムスクロール速度アップ();\r
+ protected abstract void ドラムスクロール速度ダウン();\r
+ protected void tキー入力()\r
+ {\r
+ IInputDevice keyboard = CDTXMania.Input管理.Keyboard;\r
+ if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.F1 ) &&\r
+ ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftShift ) ) )\r
+ { // shift+f1 (pause)\r
+ this.bPAUSE = !this.bPAUSE;\r
+ if ( this.bPAUSE )\r
+ {\r
+ CDTXMania.Timer.t一時停止();\r
+ CDTXMania.DTX.t全チップの再生一時停止();\r
+ }\r
+ else\r
+ {\r
+ CDTXMania.Timer.t再開();\r
+ CDTXMania.DTX.t全チップの再生再開();\r
+ }\r
+ }\r
+ if ( ( !this.bPAUSE && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
+ {\r
+ this.t入力処理・ドラム();\r
+ this.t入力処理・ギター();\r
+ this.t入力処理・ベース();\r
+ if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.UpArrow ) && ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftShift ) ) )\r
+ { // shift (+ctrl) + UpArrow (BGMAdjust)\r
+ CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightControl ) ) ? 1 : 10 );\r
+ CDTXMania.DTX.tWave再生位置自動補正();\r
+ }\r
+ else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.DownArrow ) && ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftShift ) ) )\r
+ { // shift + DownArrow (BGMAdjust)\r
+ CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightControl ) ) ? -1 : -10 );\r
+ CDTXMania.DTX.tWave再生位置自動補正();\r
+ }\r
+ else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.UpArrow ) )\r
+ { // UpArrow(scrollspeed up)\r
+ ドラムスクロール速度アップ();\r
+ }\r
+ else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.DownArrow ) )\r
+ { // DownArrow (scrollspeed down)\r
+ ドラムスクロール速度ダウン();\r
+ }\r
+ else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.Delete ) )\r
+ { // del (debug info)\r
+ CDTXMania.ConfigIni.b演奏情報を表示する = !CDTXMania.ConfigIni.b演奏情報を表示する;\r
+ }\r
+ else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.LeftArrow ) ) // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
+ {\r
+ ChangeInputAdjustTimeInPlaying( keyboard, -1 );\r
+ }\r
+ else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.RightArrow ) ) // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
+ {\r
+ ChangeInputAdjustTimeInPlaying( keyboard, +1 );\r
+ }\r
+ else if ( ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) && ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.Escape ) || CDTXMania.Pad.b押されたGB( Eパッド.FT ) ) )\r
+ { // escape (exit)\r
+ this.actFO.tフェードアウト開始();\r
+ base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
+ this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.演奏中断;\r
+ }\r
+ }\r
+ }\r
+\r
+ protected void t入力メソッド記憶( E楽器パート part )\r
+ {\r
+ if ( CDTXMania.Pad.st検知したデバイス.Keyboard )\r
+ {\r
+ this.b演奏にキーボードを使った[ (int) part ] = true;\r
+ }\r
+ if ( CDTXMania.Pad.st検知したデバイス.Joypad )\r
+ {\r
+ this.b演奏にジョイパッドを使った[ (int) part ] = true;\r
+ }\r
+ if ( CDTXMania.Pad.st検知したデバイス.MIDIIN )\r
+ {\r
+ this.b演奏にMIDI入力を使った[ (int) part ] = true;\r
+ }\r
+ if ( CDTXMania.Pad.st検知したデバイス.Mouse )\r
+ {\r
+ this.b演奏にマウスを使った[ (int) part ] = true;\r
+ }\r
+ }\r
+\r
+\r
+\r
+\r
+ protected bool t進行描画・フェードイン・アウト()\r
+ {\r
+ switch ( base.eフェーズID )\r
+ {\r
+ case CStage.Eフェーズ.共通_フェードイン:\r
+ if ( this.actFI.On進行描画() != 0 )\r
+ {\r
+ base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
+ }\r
+ break;\r
+\r
+ case CStage.Eフェーズ.共通_フェードアウト:\r
+ case CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト:\r
+ if ( this.actFO.On進行描画() != 0 )\r
+ {\r
+ return true;\r
+ }\r
+ break;\r
+\r
+ case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト:\r
+ if ( this.actFOClear.On進行描画() == 0 )\r
+ {\r
+ break;\r
+ }\r
+ return true;\r
+ \r
+ }\r
+ return false;\r
+ } \r
+\r
+ \r
+ \r
+\r
+#if true // DAMAGELEVELTUNING\r
+#region [ DAMAGELEVELTUNING ]\r
+ // ----------------------------------\r
+ public float[ , ] fDamageGaugeDelta = { // #23625 2011.1.10 ickw_284: tuned damage/recover factors\r
+ // drums, guitar, bass\r
+ { 0.004f, 0.006f, 0.006f },\r
+ { 0.002f, 0.003f, 0.003f },\r
+ { 0.000f, 0.000f, 0.000f },\r
+ { -0.020f, -0.030f, -0.030f },\r
+ { -0.050f, -0.050f, -0.050f }\r
+ };\r
+ public float[] fDamageLevelFactor = {\r
+ 0.5f, 1.0f, 1.5f\r
+ };\r
+ // ----------------------------------\r
+#endregion\r
+#endif\r
+\r
+ protected void t判定にあわせてゲージを増減する( E楽器パート screenmode, E楽器パート part, E判定 e今回の判定 )\r
+ {\r
+ double fDamage;\r
+\r
+#if true // DAMAGELEVELTUNING\r
+ switch ( e今回の判定 )\r
+ {\r
+ case E判定.Perfect:\r
+ case E判定.Great:\r
+ case E判定.Good:\r
+ case E判定.Poor:\r
+ fDamage = fDamageGaugeDelta[ (int) e今回の判定, (int) part ];\r
+ break;\r
+ case E判定.Miss:\r
+ fDamage = fDamageGaugeDelta[ (int) e今回の判定, (int) part ];\r
+ switch ( CDTXMania.ConfigIni.eダメージレベル )\r
+ {\r
+ case Eダメージレベル.少ない:\r
+ case Eダメージレベル.普通:\r
+ case Eダメージレベル.大きい:\r
+ fDamage *= fDamageLevelFactor[ (int) CDTXMania.ConfigIni.eダメージレベル ];\r
+ break;\r
+ }\r
+ break;\r
+\r
+ default:\r
+ fDamage = 0.0f;\r
+ break;\r
+ }\r
+#else // before applying #23625 modifications\r
+ switch (e今回の判定)\r
+ {\r
+ case E判定.Perfect:\r
+ fDamage = ( part == E楽器パート.DRUMS ) ? 0.01 : 0.015;\r
+ break;\r
+\r
+ case E判定.Great:\r
+ fDamage = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009;\r
+ break;\r
+\r
+ case E判定.Good:\r
+ fDamage = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003;\r
+ break;\r
+\r
+ case E判定.Poor:\r
+ fDamage = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0;\r
+ break;\r
+\r
+ case E判定.Miss:\r
+ fDamage = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035;\r
+ switch( CDTXMania.ConfigIni.eダメージレベル )\r
+ {\r
+ case Eダメージレベル.少ない:\r
+ fDamage *= 0.6;\r
+ break;\r
+\r
+ case Eダメージレベル.普通:\r
+ fDamage *= 1.0;\r
+ break;\r
+\r
+ case Eダメージレベル.大きい:\r
+ fDamage *= 1.6;\r
+ break;\r
+ }\r
+ break;\r
+\r
+ default:\r
+ fDamage = 0.0;\r
+ break;\r
+ }\r
+#endif\r
+ if ( screenmode == E楽器パート.DRUMS ) // ドラム演奏画面なら、ギター/ベースのダメージも全部ドラムのゲージに集約する\r
+ {\r
+ part = E楽器パート.DRUMS;\r
+ }\r
+ this.actGauge.db現在のゲージ値[ (int) part ] += fDamage;\r
+\r
+ if ( this.actGauge.db現在のゲージ値[ (int) part ] > 1.0 )\r
+ this.actGauge.db現在のゲージ値[ (int) part ] = 1.0;\r
+ }\r
+ //-----------------\r
+ #endregion\r
+ }\r
+}\r
\r
namespace DTXMania\r
{\r
- internal class CAct演奏Guitarゲージ : CActivity\r
+ internal class CAct演奏Guitarゲージ : CAct演奏ゲージ\r
{\r
// プロパティ\r
\r
- public STDGBVALUE<double> db現在のゲージ値;\r
+// public STDGBVALUE<double> db現在のゲージ値;\r
\r
\r
// コンストラクタ\r
\r
#region [ private ]\r
//-----------------\r
- private CCounter ct本体移動;\r
- private CCounter ct本体振動;\r
- private CTexture txゲージ;\r
+ //private CCounter ct本体移動;\r
+ //private CCounter ct本体振動;\r
+ //private CTexture txゲージ;\r
//-----------------\r
#endregion\r
}\r
{\r
internal class CStage演奏ギター画面 : CStage演奏画面共通\r
{\r
- // プロパティ\r
-\r
- public bool bAUTOでないチップが1つでもバーを通過した\r
- {\r
- get;\r
- private set;\r
- }\r
-\r
// コンストラクタ\r
\r
public CStage演奏ギター画面()\r
\r
public override void On活性化()\r
{\r
- this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\r
+ //this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\r
this.n現在のトップChip = ( CDTXMania.DTX.listChip.Count > 0 ) ? 0 : -1;\r
this.n最後に再生したHHの実WAV番号 = -1;\r
this.n最後に再生したHHのチャンネル番号 = 0;\r
{\r
this.n最後に再生したBGMの実WAV番号[ i ] = -1;\r
}\r
- this.r次にくるギターChip = null;\r
- this.r次にくるベースChip = null;\r
+ //this.r次にくるギターChip = null;\r
+ //this.r次にくるベースChip = null;\r
for( int j = 0; j < 10; j++ )\r
{\r
this.r現在の空うちドラムChip[ j ] = null;\r
}\r
this.queWailing[ k ] = new Queue<CDTX.CChip>();\r
}\r
- for( int m = 0; m < 3; m++ )\r
- {\r
- this.b演奏にキーボードを使った[ m ] = false;\r
- this.b演奏にジョイパッドを使った[ m ] = false;\r
- this.b演奏にMIDI入力を使った[ m ] = false;\r
- this.b演奏にマウスを使った[ m ] = false;\r
- }\r
+ //for( int m = 0; m < 3; m++ )\r
+ //{\r
+ // this.b演奏にキーボードを使った[ m ] = false;\r
+ // this.b演奏にジョイパッドを使った[ m ] = false;\r
+ // this.b演奏にMIDI入力を使った[ m ] = false;\r
+ // this.b演奏にマウスを使った[ m ] = false;\r
+ //}\r
this.bAUTOでないチップが1つでもバーを通過した = false;\r
base.On活性化();\r
this.tステータスパネルの選択();\r
this.tパネル文字列の設定();\r
\r
- this.nInputAdjustTimeMs.Drums = CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums; // #23580 2011.1.3 yyagi\r
- this.nInputAdjustTimeMs.Guitar = CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar; // 2011.1.7 ikanick 修正\r
- this.nInputAdjustTimeMs.Bass = CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass; //\r
- this.bIsAutoPlay.Drums = false;\r
- this.bIsAutoPlay.Guitar = CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
- this.bIsAutoPlay.Bass = CDTXMania.ConfigIni.bAutoPlay.Bass;\r
+ // this.nInputAdjustTimeMs.Drums = CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums; // #23580 2011.1.3 yyagi\r
+ // this.nInputAdjustTimeMs.Guitar = CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar; // 2011.1.7 ikanick 修正\r
+ // this.nInputAdjustTimeMs.Bass = CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass; //\r
+ //this.bIsAutoPlay.Drums = false;\r
+ //this.bIsAutoPlay.Guitar = CDTXMania.ConfigIni.bAutoPlay.Guitar;\r
+ //this.bIsAutoPlay.Bass = CDTXMania.ConfigIni.bAutoPlay.Bass;\r
\r
if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass ) // #24063 2011.1.24 yyagi Gt/Bsの譜面情報入れ替え\r
{\r
\r
if( CDTXMania.act現在入力を占有中のプラグイン == null )\r
{\r
- IInputDevice keyboard = CDTXMania.Input管理.Keyboard;\r
- if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.F1 ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
- {\r
- this.bPAUSE = !this.bPAUSE;\r
- if( this.bPAUSE )\r
- {\r
- CDTXMania.Timer.t一時停止();\r
- CDTXMania.DTX.t全チップの再生一時停止();\r
- }\r
- else\r
- {\r
- CDTXMania.Timer.t再開();\r
- CDTXMania.DTX.t全チップの再生再開();\r
- }\r
- }\r
- if( ( !this.bPAUSE && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
- {\r
- this.t入力処理・ギター();\r
- this.t入力処理・ベース();\r
- if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.UpArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift) ) )\r
- { // shift (+ctrl) + Uparrow (BGMAdjust)\r
- CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl) ) ? 1 : 10 );\r
- CDTXMania.DTX.tWave再生位置自動補正();\r
- }\r
- else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.DownArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
- {\r
- CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl ) ) ? -1 : -10 );\r
- CDTXMania.DTX.tWave再生位置自動補正();\r
- }\r
- else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Delete ) )\r
- {\r
- CDTXMania.ConfigIni.b演奏情報を表示する = !CDTXMania.ConfigIni.b演奏情報を表示する;\r
- }\r
- else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.LeftArrow ) ) // #23580 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
- {\r
- ChangeInputAdjustTimeInPlaying( keyboard, -1 );\r
- }\r
- else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.RightArrow ) ) // #23580 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
- {\r
- ChangeInputAdjustTimeInPlaying( keyboard, +1 );\r
- }\r
- else if ( ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) && ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.Escape ) || CDTXMania.Pad.b押されたGB( Eパッド.FT ) ) )\r
- {\r
- this.actFO.tフェードアウト開始();\r
- base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
- this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.演奏中断;\r
- }\r
- }\r
+ this.tキー入力();\r
+ #region キー入力\r
+ //IInputDevice keyboard = CDTXMania.Input管理.Keyboard;\r
+ //if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.F1 ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
+ //{\r
+ // this.bPAUSE = !this.bPAUSE;\r
+ // if( this.bPAUSE )\r
+ // {\r
+ // CDTXMania.Timer.t一時停止();\r
+ // CDTXMania.DTX.t全チップの再生一時停止();\r
+ // }\r
+ // else\r
+ // {\r
+ // CDTXMania.Timer.t再開();\r
+ // CDTXMania.DTX.t全チップの再生再開();\r
+ // }\r
+ //}\r
+ //if( ( !this.bPAUSE && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
+ //{\r
+ // this.t入力処理・ギター();\r
+ // this.t入力処理・ベース();\r
+ // if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.UpArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift) ) )\r
+ // { // shift (+ctrl) + Uparrow (BGMAdjust)\r
+ // CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl) ) ? 1 : 10 );\r
+ // CDTXMania.DTX.tWave再生位置自動補正();\r
+ // }\r
+ // else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.DownArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
+ // {\r
+ // CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl ) ) ? -1 : -10 );\r
+ // CDTXMania.DTX.tWave再生位置自動補正();\r
+ // }\r
+ // else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Delete ) )\r
+ // {\r
+ // CDTXMania.ConfigIni.b演奏情報を表示する = !CDTXMania.ConfigIni.b演奏情報を表示する;\r
+ // }\r
+ // else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.LeftArrow ) ) // #23580 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
+ // {\r
+ // ChangeInputAdjustTimeInPlaying( keyboard, -1 );\r
+ // }\r
+ // else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.RightArrow ) ) // #23580 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
+ // {\r
+ // ChangeInputAdjustTimeInPlaying( keyboard, +1 );\r
+ // }\r
+ // else if ( ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) && ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.Escape ) || CDTXMania.Pad.b押されたGB( Eパッド.FT ) ) )\r
+ // {\r
+ // this.actFO.tフェードアウト開始();\r
+ // base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
+ // this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.演奏中断;\r
+ // }\r
+ //}\r
+ #endregion\r
}\r
}\r
return 0;\r
}\r
- private void ChangeInputAdjustTimeInPlaying( IInputDevice keyboard, int plusminus ) // #23580 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
- {\r
- int part, offset = plusminus;\r
- if ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftShift ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightShift ) ) // Guitar InputAdjustTime\r
- {\r
- part = (int) E楽器パート.GUITAR;\r
- }\r
- else if ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftAlt ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightAlt ) ) // Bass InputAdjustTime\r
- {\r
- part = (int) E楽器パート.BASS;\r
- }\r
- else // Drums InputAdjustTime\r
- {\r
- part = (int) E楽器パート.DRUMS;\r
- }\r
- if ( !keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftControl ) && !keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightControl ) )\r
- {\r
- offset *= 10;\r
- }\r
-\r
- this.nInputAdjustTimeMs[ part ] += offset;\r
- if ( this.nInputAdjustTimeMs[ part ] > 0 )\r
- {\r
- this.nInputAdjustTimeMs[ part ] = 0;\r
- }\r
- else if ( this.nInputAdjustTimeMs[ part ] < -99 )\r
- {\r
- this.nInputAdjustTimeMs[ part ] = -99;\r
- }\r
- CDTXMania.ConfigIni.nInputAdjustTimeMs[ part ] = this.nInputAdjustTimeMs[ part ];\r
- }\r
\r
\r
// その他\r
\r
#region [ private ]\r
//-----------------\r
- private class STHITCOUNTOFRANK\r
- {\r
- // Fields\r
- public int Good;\r
- public int Great;\r
- public int Miss;\r
- public int Perfect;\r
- public int Poor;\r
-\r
- // Properties\r
- public int this[ int index ]\r
- {\r
- get\r
- {\r
- switch( index )\r
- {\r
- case 0:\r
- return this.Perfect;\r
-\r
- case 1:\r
- return this.Great;\r
-\r
- case 2:\r
- return this.Good;\r
-\r
- case 3:\r
- return this.Poor;\r
-\r
- case 4:\r
- return this.Miss;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- set\r
- {\r
- switch( index )\r
- {\r
- case 0:\r
- this.Perfect = value;\r
- return;\r
-\r
- case 1:\r
- this.Great = value;\r
- return;\r
-\r
- case 2:\r
- this.Good = value;\r
- return;\r
-\r
- case 3:\r
- this.Poor = value;\r
- return;\r
-\r
- case 4:\r
- this.Miss = value;\r
- return;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- }\r
- }\r
-\r
- [StructLayout( LayoutKind.Sequential )]\r
- private struct STKARAUCHI\r
- {\r
- public CDTX.CChip HH;\r
- public CDTX.CChip SD;\r
- public CDTX.CChip BD;\r
- public CDTX.CChip HT;\r
- public CDTX.CChip LT;\r
- public CDTX.CChip FT;\r
- public CDTX.CChip CY;\r
- public CDTX.CChip HHO;\r
- public CDTX.CChip RD;\r
- public CDTX.CChip LC;\r
- public CDTX.CChip this[ int index ]\r
- {\r
- get\r
- {\r
- switch( index )\r
- {\r
- case 0:\r
- return this.HH;\r
-\r
- case 1:\r
- return this.SD;\r
-\r
- case 2:\r
- return this.BD;\r
-\r
- case 3:\r
- return this.HT;\r
-\r
- case 4:\r
- return this.LT;\r
-\r
- case 5:\r
- return this.FT;\r
-\r
- case 6:\r
- return this.CY;\r
-\r
- case 7:\r
- return this.HHO;\r
-\r
- case 8:\r
- return this.RD;\r
-\r
- case 9:\r
- return this.LC;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- set\r
- {\r
- switch( index )\r
- {\r
- case 0:\r
- this.HH = value;\r
- return;\r
-\r
- case 1:\r
- this.SD = value;\r
- return;\r
-\r
- case 2:\r
- this.BD = value;\r
- return;\r
-\r
- case 3:\r
- this.HT = value;\r
- return;\r
-\r
- case 4:\r
- this.LT = value;\r
- return;\r
-\r
- case 5:\r
- this.FT = value;\r
- return;\r
-\r
- case 6:\r
- this.CY = value;\r
- return;\r
-\r
- case 7:\r
- this.HHO = value;\r
- return;\r
-\r
- case 8:\r
- this.RD = value;\r
- return;\r
-\r
- case 9:\r
- this.LC = value;\r
- return;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- }\r
- }\r
+ //private class STHITCOUNTOFRANK\r
+ //{\r
+ // // Fields\r
+ // public int Good;\r
+ // public int Great;\r
+ // public int Miss;\r
+ // public int Perfect;\r
+ // public int Poor;\r
+\r
+ // // Properties\r
+ // public int this[ int index ]\r
+ // {\r
+ // get\r
+ // {\r
+ // switch( index )\r
+ // {\r
+ // case 0:\r
+ // return this.Perfect;\r
+\r
+ // case 1:\r
+ // return this.Great;\r
+\r
+ // case 2:\r
+ // return this.Good;\r
+\r
+ // case 3:\r
+ // return this.Poor;\r
+\r
+ // case 4:\r
+ // return this.Miss;\r
+ // }\r
+ // throw new IndexOutOfRangeException();\r
+ // }\r
+ // set\r
+ // {\r
+ // switch( index )\r
+ // {\r
+ // case 0:\r
+ // this.Perfect = value;\r
+ // return;\r
+\r
+ // case 1:\r
+ // this.Great = value;\r
+ // return;\r
+\r
+ // case 2:\r
+ // this.Good = value;\r
+ // return;\r
+\r
+ // case 3:\r
+ // this.Poor = value;\r
+ // return;\r
+\r
+ // case 4:\r
+ // this.Miss = value;\r
+ // return;\r
+ // }\r
+ // throw new IndexOutOfRangeException();\r
+ // }\r
+ // }\r
+ //}\r
+\r
+ //[StructLayout( LayoutKind.Sequential )]\r
+ //private struct STKARAUCHI\r
+ //{\r
+ // public CDTX.CChip HH;\r
+ // public CDTX.CChip SD;\r
+ // public CDTX.CChip BD;\r
+ // public CDTX.CChip HT;\r
+ // public CDTX.CChip LT;\r
+ // public CDTX.CChip FT;\r
+ // public CDTX.CChip CY;\r
+ // public CDTX.CChip HHO;\r
+ // public CDTX.CChip RD;\r
+ // public CDTX.CChip LC;\r
+ // public CDTX.CChip this[ int index ]\r
+ // {\r
+ // get\r
+ // {\r
+ // switch( index )\r
+ // {\r
+ // case 0:\r
+ // return this.HH;\r
+\r
+ // case 1:\r
+ // return this.SD;\r
+\r
+ // case 2:\r
+ // return this.BD;\r
+\r
+ // case 3:\r
+ // return this.HT;\r
+\r
+ // case 4:\r
+ // return this.LT;\r
+\r
+ // case 5:\r
+ // return this.FT;\r
+\r
+ // case 6:\r
+ // return this.CY;\r
+\r
+ // case 7:\r
+ // return this.HHO;\r
+\r
+ // case 8:\r
+ // return this.RD;\r
+\r
+ // case 9:\r
+ // return this.LC;\r
+ // }\r
+ // throw new IndexOutOfRangeException();\r
+ // }\r
+ // set\r
+ // {\r
+ // switch( index )\r
+ // {\r
+ // case 0:\r
+ // this.HH = value;\r
+ // return;\r
+\r
+ // case 1:\r
+ // this.SD = value;\r
+ // return;\r
+\r
+ // case 2:\r
+ // this.BD = value;\r
+ // return;\r
+\r
+ // case 3:\r
+ // this.HT = value;\r
+ // return;\r
+\r
+ // case 4:\r
+ // this.LT = value;\r
+ // return;\r
+\r
+ // case 5:\r
+ // this.FT = value;\r
+ // return;\r
+\r
+ // case 6:\r
+ // this.CY = value;\r
+ // return;\r
+\r
+ // case 7:\r
+ // this.HHO = value;\r
+ // return;\r
+\r
+ // case 8:\r
+ // this.RD = value;\r
+ // return;\r
+\r
+ // case 9:\r
+ // this.LC = value;\r
+ // return;\r
+ // }\r
+ // throw new IndexOutOfRangeException();\r
+ // }\r
+ // }\r
+ //}\r
\r
private CAct演奏AVI actAVI;\r
private CAct演奏BGA actBGA;\r
private CAct演奏Guitarチップファイア actChipFire;\r
private CAct演奏Guitarコンボ actCombo;\r
- private CActFIFOBlack actFI;\r
- private CActFIFOBlack actFO;\r
- private CActFIFOWhite actFOClear;\r
- private CAct演奏Guitarゲージ actGauge;\r
+ //private CActFIFOBlack actFI;\r
+ //private CActFIFOBlack actFO;\r
+ //private CActFIFOWhite actFOClear;\r
+ //private CAct演奏Guitarゲージ actGauge;\r
private CAct演奏Guitar判定文字列 actJudgeString;\r
private CAct演奏GuitarレーンフラッシュGB actLaneFlushGB;\r
private CAct演奏パネル文字列 actPanel;\r
private CAct演奏Guitarステータスパネル actStatusPanels;\r
private CAct演奏GuitarWailingBonus actWailingBonus;\r
private CAct演奏スクロール速度 act譜面スクロール速度;\r
- private bool bPAUSE;\r
- private STDGBVALUE<bool> b演奏にMIDI入力を使った;\r
- private STDGBVALUE<bool> b演奏にキーボードを使った;\r
- private STDGBVALUE<bool> b演奏にジョイパッドを使った;\r
- private STDGBVALUE<bool> b演奏にマウスを使った;\r
+ //private bool bPAUSE;\r
+ //private STDGBVALUE<bool> b演奏にMIDI入力を使った;\r
+ //private STDGBVALUE<bool> b演奏にキーボードを使った;\r
+ //private STDGBVALUE<bool> b演奏にジョイパッドを使った;\r
+ //private STDGBVALUE<bool> b演奏にマウスを使った;\r
private CCounter ctWailingチップ模様アニメ;\r
private STDGBVALUE<CCounter> ctチップ模様アニメ;\r
- private E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
+ //private E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
private readonly int[,] nBGAスコープチャンネルマップ = new int[ , ] { { 0xc4, 0xc7, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe0 }, { 4, 7, 0x55, 0x56, 0x57, 0x58, 0x59, 0x60 } };\r
private readonly int[] nチャンネル0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 8, 0 };\r
private readonly int[] nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 };\r
private readonly int[] nパッド0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 7, 0 };\r
private STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含まない;\r
private STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含む;\r
- private int n現在のトップChip = -1;\r
+ // private int n現在のトップChip = -1;\r
private int[] n最後に再生したBGMの実WAV番号 = new int[ 50 ];\r
private int n最後に再生したHHのチャンネル番号;\r
private int n最後に再生したHHの実WAV番号;\r
private CDTX.CChip r現在の空うちギターChip;\r
private STKARAUCHI r現在の空うちドラムChip;\r
private CDTX.CChip r現在の空うちベースChip;\r
- private CDTX.CChip r次にくるギターChip;\r
- private CDTX.CChip r次にくるベースChip;\r
+ //private CDTX.CChip r次にくるギターChip;\r
+ //private CDTX.CChip r次にくるベースChip;\r
private CTexture txWailing枠;\r
private CTexture txチップ;\r
private CTexture txヒットバー;\r
private CTexture tx背景;\r
- private STDGBVALUE<int> nInputAdjustTimeMs; // #23580 2011.1.3 yyagi\r
- private STDGBVALUE<bool> bIsAutoPlay; // #24239 2011.1.23 yyagi\r
-\r
- private E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip, int nInputAdjustTime )\r
- {\r
- if ( pChip != null )\r
- {\r
- pChip.nLag = (int) ( nTime + nInputAdjustTime - pChip.n発声時刻ms ); // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature\r
- int nDeltaTime = Math.Abs( pChip.nLag );\r
- //Debug.WriteLine("nAbsTime=" + (nTime - pChip.n発声時刻ms) + ", nDeltaTime=" + (nTime + nInputAdjustTime - pChip.n発声時刻ms));\r
- if ( nDeltaTime <= CDTXMania.nPerfect範囲ms )\r
- {\r
- return E判定.Perfect;\r
- }\r
- if ( nDeltaTime <= CDTXMania.nGreat範囲ms )\r
- {\r
- return E判定.Great;\r
- }\r
- if ( nDeltaTime <= CDTXMania.nGood範囲ms )\r
- {\r
- return E判定.Good;\r
- }\r
- if ( nDeltaTime <= CDTXMania.nPoor範囲ms )\r
- {\r
- return E判定.Poor;\r
- }\r
- }\r
- return E判定.Miss;\r
- }\r
+ // private STDGBVALUE<int> nInputAdjustTimeMs; // #23580 2011.1.3 yyagi\r
+ //private STDGBVALUE<bool> bIsAutoPlay; // #24239 2011.1.23 yyagi\r
+\r
+ //private E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip, int nInputAdjustTime )\r
+ //{\r
+ // if ( pChip != null )\r
+ // {\r
+ // pChip.nLag = (int) ( nTime + nInputAdjustTime - pChip.n発声時刻ms ); // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature\r
+ // int nDeltaTime = Math.Abs( pChip.nLag );\r
+ // //Debug.WriteLine("nAbsTime=" + (nTime - pChip.n発声時刻ms) + ", nDeltaTime=" + (nTime + nInputAdjustTime - pChip.n発声時刻ms));\r
+ // if ( nDeltaTime <= CDTXMania.nPerfect範囲ms )\r
+ // {\r
+ // return E判定.Perfect;\r
+ // }\r
+ // if ( nDeltaTime <= CDTXMania.nGreat範囲ms )\r
+ // {\r
+ // return E判定.Great;\r
+ // }\r
+ // if ( nDeltaTime <= CDTXMania.nGood範囲ms )\r
+ // {\r
+ // return E判定.Good;\r
+ // }\r
+ // if ( nDeltaTime <= CDTXMania.nPoor範囲ms )\r
+ // {\r
+ // return E判定.Poor;\r
+ // }\r
+ // }\r
+ // return E判定.Miss;\r
+ //}\r
private CDTX.CChip r空うちChip( E楽器パート part, Eパッド pad )\r
{\r
switch( part )\r
}\r
return null;\r
}\r
- private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag, int nInputAdjustTime )\r
- {\r
- nTime += nInputAdjustTime;\r
+ //private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag, int nInputAdjustTime )\r
+ //{\r
+ // nTime += nInputAdjustTime;\r
\r
- int num5;\r
- if( this.n現在のトップChip == -1 )\r
- {\r
- return null;\r
- }\r
- int count = CDTXMania.DTX.listChip.Count;\r
- int num4 = num5 = this.n現在のトップChip;\r
- if( this.n現在のトップChip >= count )\r
- {\r
- num4 = num5 = count - 1;\r
- }\r
- int num2 = num4;\r
- while( num2 < count )\r
- {\r
- CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
- if( ( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) ) && ( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) )\r
- {\r
- if( chip.n発声時刻ms > nTime )\r
- {\r
- break;\r
- }\r
- num5 = num2;\r
- }\r
- else if( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
- {\r
- if( chip.n発声時刻ms > nTime )\r
- {\r
- break;\r
- }\r
- num5 = num2;\r
- }\r
- else if( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
- {\r
- if( chip.n発声時刻ms > nTime )\r
- {\r
- break;\r
- }\r
- num5 = num2;\r
- }\r
- num2++;\r
- }\r
- int num3 = num5;\r
- while( num3 >= 0 )\r
- {\r
- CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
- if( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) )\r
- {\r
- if( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
- {\r
- break;\r
- }\r
- }\r
- else if( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) )\r
- {\r
- if( ( chip2.nチャンネル番号 >= 0x20 ) && ( chip2.nチャンネル番号 <= 40 ) )\r
- {\r
- break;\r
- }\r
- }\r
- else if( ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) && ( ( chip2.nチャンネル番号 >= 160 ) && ( chip2.nチャンネル番号 <= 0xa8 ) ) )\r
- {\r
- break;\r
- }\r
- num3--;\r
- }\r
- if( ( num2 == count ) && ( num3 < 0 ) )\r
- {\r
- return null;\r
- }\r
- if( num2 == count )\r
- {\r
- return CDTXMania.DTX.listChip[ num3 ];\r
- }\r
- if( num3 < 0 )\r
- {\r
- return CDTXMania.DTX.listChip[ num2 ];\r
- }\r
- CDTX.CChip chip3 = CDTXMania.DTX.listChip[ num2 ];\r
- CDTX.CChip chip4 = CDTXMania.DTX.listChip[ num3 ];\r
- int num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
- int num7 = Math.Abs( (int) ( nTime - chip4.n発声時刻ms ) );\r
- if( num6 >= num7 )\r
- {\r
- return chip4;\r
- }\r
- return chip3;\r
- }\r
+ // int num5;\r
+ // if( this.n現在のトップChip == -1 )\r
+ // {\r
+ // return null;\r
+ // }\r
+ // int count = CDTXMania.DTX.listChip.Count;\r
+ // int num4 = num5 = this.n現在のトップChip;\r
+ // if( this.n現在のトップChip >= count )\r
+ // {\r
+ // num4 = num5 = count - 1;\r
+ // }\r
+ // int num2 = num4;\r
+ // while( num2 < count )\r
+ // {\r
+ // CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
+ // if( ( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) ) && ( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) )\r
+ // {\r
+ // if( chip.n発声時刻ms > nTime )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num5 = num2;\r
+ // }\r
+ // else if( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
+ // {\r
+ // if( chip.n発声時刻ms > nTime )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num5 = num2;\r
+ // }\r
+ // else if( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
+ // {\r
+ // if( chip.n発声時刻ms > nTime )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num5 = num2;\r
+ // }\r
+ // num2++;\r
+ // }\r
+ // int num3 = num5;\r
+ // while( num3 >= 0 )\r
+ // {\r
+ // CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
+ // if( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) )\r
+ // {\r
+ // if( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
+ // {\r
+ // break;\r
+ // }\r
+ // }\r
+ // else if( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) )\r
+ // {\r
+ // if( ( chip2.nチャンネル番号 >= 0x20 ) && ( chip2.nチャンネル番号 <= 40 ) )\r
+ // {\r
+ // break;\r
+ // }\r
+ // }\r
+ // else if( ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) && ( ( chip2.nチャンネル番号 >= 160 ) && ( chip2.nチャンネル番号 <= 0xa8 ) ) )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num3--;\r
+ // }\r
+ // if( ( num2 == count ) && ( num3 < 0 ) )\r
+ // {\r
+ // return null;\r
+ // }\r
+ // if( num2 == count )\r
+ // {\r
+ // return CDTXMania.DTX.listChip[ num3 ];\r
+ // }\r
+ // if( num3 < 0 )\r
+ // {\r
+ // return CDTXMania.DTX.listChip[ num2 ];\r
+ // }\r
+ // CDTX.CChip chip3 = CDTXMania.DTX.listChip[ num2 ];\r
+ // CDTX.CChip chip4 = CDTXMania.DTX.listChip[ num3 ];\r
+ // int num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
+ // int num7 = Math.Abs( (int) ( nTime - chip4.n発声時刻ms ) );\r
+ // if( num6 >= num7 )\r
+ // {\r
+ // return chip4;\r
+ // }\r
+ // return chip3;\r
+ //}\r
// private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag )\r
// {\r
// return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, 0, 0 );\r
// {\r
// return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, nInputAdjustTime, 0 );\r
// }\r
- private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime, int n検索範囲時間ms )\r
- {\r
- nTime += nInputAdjustTime;\r
-\r
- int num5;\r
- int num6;\r
- if( this.n現在のトップChip == -1 )\r
- {\r
- return null;\r
- }\r
- int count = CDTXMania.DTX.listChip.Count;\r
- int num4 = num5 = this.n現在のトップChip;\r
- if( this.n現在のトップChip >= count )\r
- {\r
- num4 = num5 = count - 1;\r
- }\r
- int num2 = num4;\r
- while( num2 < count )\r
- {\r
- CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
- if( ( !chip.bHit && ( nChannelFlag >= 0x11 ) ) && ( nChannelFlag <= 0x1a ) )\r
- {\r
- if( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
- {\r
- if( chip.n発声時刻ms > nTime )\r
- {\r
- break;\r
- }\r
- num5 = num2;\r
- }\r
- }\r
- else if( !chip.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
- {\r
- if( chip.n発声時刻ms > nTime )\r
- {\r
- break;\r
- }\r
- num5 = num2;\r
- }\r
- else if( !chip.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
- {\r
- if( chip.n発声時刻ms > nTime )\r
- {\r
- break;\r
- }\r
- num5 = num2;\r
- }\r
- num2++;\r
- }\r
- int num3 = num5;\r
- while( num3 >= 0 )\r
- {\r
- CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
- if( ( ( ( !chip2.bHit && ( nChannelFlag >= 0x11 ) ) && ( ( nChannelFlag <= 0x1a ) && ( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) )\r
- {\r
- break;\r
- }\r
- num3--;\r
- }\r
- if( ( num2 == count ) && ( num3 < 0 ) )\r
- {\r
- return null;\r
- }\r
- CDTX.CChip chip3 = null;\r
- if( num2 == count )\r
- {\r
- chip3 = CDTXMania.DTX.listChip[ num3 ];\r
- num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
- }\r
- else if( num3 < 0 )\r
- {\r
- chip3 = CDTXMania.DTX.listChip[ num2 ];\r
- num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
- }\r
- else\r
- {\r
- int num7 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
- int num8 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
- if( num7 < num8 )\r
- {\r
- chip3 = CDTXMania.DTX.listChip[ num2 ];\r
- num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
- }\r
- else\r
- {\r
- chip3 = CDTXMania.DTX.listChip[ num3 ];\r
- num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
- }\r
- }\r
- if( ( n検索範囲時間ms > 0 ) && ( num6 > n検索範囲時間ms ) )\r
- {\r
- return null;\r
- }\r
- return chip3;\r
- }\r
- private CDTX.CChip r次にくるギターChipを更新して返す()\r
- {\r
- int nInputAdjustTime = this.bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
- this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, nInputAdjustTime, 500 );\r
- return this.r次にくるギターChip;\r
- }\r
- private CDTX.CChip r次にくるベースChipを更新して返す()\r
- {\r
- int nInputAdjustTime = this.bIsAutoPlay.Bass ? 0 : this.nInputAdjustTimeMs.Bass;\r
- this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, nInputAdjustTime, 500 );\r
- return this.r次にくるベースChip;\r
- }\r
+ //private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime, int n検索範囲時間ms )\r
+ //{\r
+ // nTime += nInputAdjustTime;\r
+\r
+ // int num5;\r
+ // int num6;\r
+ // if( this.n現在のトップChip == -1 )\r
+ // {\r
+ // return null;\r
+ // }\r
+ // int count = CDTXMania.DTX.listChip.Count;\r
+ // int num4 = num5 = this.n現在のトップChip;\r
+ // if( this.n現在のトップChip >= count )\r
+ // {\r
+ // num4 = num5 = count - 1;\r
+ // }\r
+ // int num2 = num4;\r
+ // while( num2 < count )\r
+ // {\r
+ // CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
+ // if( ( !chip.bHit && ( nChannelFlag >= 0x11 ) ) && ( nChannelFlag <= 0x1a ) )\r
+ // {\r
+ // if( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
+ // {\r
+ // if( chip.n発声時刻ms > nTime )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num5 = num2;\r
+ // }\r
+ // }\r
+ // else if( !chip.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
+ // {\r
+ // if( chip.n発声時刻ms > nTime )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num5 = num2;\r
+ // }\r
+ // else if( !chip.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
+ // {\r
+ // if( chip.n発声時刻ms > nTime )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num5 = num2;\r
+ // }\r
+ // num2++;\r
+ // }\r
+ // int num3 = num5;\r
+ // while( num3 >= 0 )\r
+ // {\r
+ // CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
+ // if( ( ( ( !chip2.bHit && ( nChannelFlag >= 0x11 ) ) && ( ( nChannelFlag <= 0x1a ) && ( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num3--;\r
+ // }\r
+ // if( ( num2 == count ) && ( num3 < 0 ) )\r
+ // {\r
+ // return null;\r
+ // }\r
+ // CDTX.CChip chip3 = null;\r
+ // if( num2 == count )\r
+ // {\r
+ // chip3 = CDTXMania.DTX.listChip[ num3 ];\r
+ // num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
+ // }\r
+ // else if( num3 < 0 )\r
+ // {\r
+ // chip3 = CDTXMania.DTX.listChip[ num2 ];\r
+ // num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
+ // }\r
+ // else\r
+ // {\r
+ // int num7 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
+ // int num8 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
+ // if( num7 < num8 )\r
+ // {\r
+ // chip3 = CDTXMania.DTX.listChip[ num2 ];\r
+ // num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
+ // }\r
+ // else\r
+ // {\r
+ // chip3 = CDTXMania.DTX.listChip[ num3 ];\r
+ // num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
+ // }\r
+ // }\r
+ // if( ( n検索範囲時間ms > 0 ) && ( num6 > n検索範囲時間ms ) )\r
+ // {\r
+ // return null;\r
+ // }\r
+ // return chip3;\r
+ //}\r
+ //private CDTX.CChip r次にくるギターChipを更新して返す()\r
+ //{\r
+ // int nInputAdjustTime = this.bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
+ // this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, nInputAdjustTime, 500 );\r
+ // return this.r次にくるギターChip;\r
+ //}\r
+ //private CDTX.CChip r次にくるベースChipを更新して返す()\r
+ //{\r
+ // int nInputAdjustTime = this.bIsAutoPlay.Bass ? 0 : this.nInputAdjustTimeMs.Bass;\r
+ // this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, nInputAdjustTime, 500 );\r
+ // return this.r次にくるベースChip;\r
+ //}\r
private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part )\r
{\r
this.tサウンド再生( rChip, n再生開始システム時刻ms, part, CDTXMania.ConfigIni.n手動再生音量, false, false );\r
}\r
if( !bIsAutoPlay )\r
{\r
- this.t判定にあわせてゲージを増減する( pChip.e楽器パート, eJudgeResult );\r
+ this.t判定にあわせてゲージを増減する( E楽器パート.GUITAR, pChip.e楽器パート, eJudgeResult );\r
}\r
int num = 0;\r
switch( pChip.e楽器パート )\r
}\r
private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane )\r
{\r
- this.t判定にあわせてゲージを増減する( part, E判定.Miss );\r
+ this.t判定にあわせてゲージを増減する( E楽器パート.GUITAR, part, E判定.Miss );\r
switch( part )\r
{\r
case E楽器パート.DRUMS:\r
this.actPanel.t進行描画( 0xb5, 430 );\r
}\r
}\r
- private bool t進行描画・フェードイン・アウト()\r
- {\r
- switch( base.eフェーズID )\r
- {\r
- case CStage.Eフェーズ.共通_フェードイン:\r
- if( this.actFI.On進行描画() != 0 )\r
- {\r
- base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
- }\r
- break;\r
-\r
- case CStage.Eフェーズ.共通_フェードアウト:\r
- case CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト:\r
- if( this.actFO.On進行描画() != 0 )\r
- {\r
- return true;\r
- }\r
- break;\r
-\r
- case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト:\r
- if( this.actFOClear.On進行描画() == 0 )\r
- {\r
- break;\r
- }\r
- return true;\r
- }\r
- return false;\r
- }\r
+ //private bool t進行描画・フェードイン・アウト()\r
+ //{\r
+ // switch( base.eフェーズID )\r
+ // {\r
+ // case CStage.Eフェーズ.共通_フェードイン:\r
+ // if( this.actFI.On進行描画() != 0 )\r
+ // {\r
+ // base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
+ // }\r
+ // break;\r
+\r
+ // case CStage.Eフェーズ.共通_フェードアウト:\r
+ // case CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト:\r
+ // if( this.actFO.On進行描画() != 0 )\r
+ // {\r
+ // return true;\r
+ // }\r
+ // break;\r
+\r
+ // case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト:\r
+ // if( this.actFOClear.On進行描画() == 0 )\r
+ // {\r
+ // break;\r
+ // }\r
+ // return true;\r
+ // }\r
+ // return false;\r
+ //}\r
private void t進行描画・レーンフラッシュGB()\r
{\r
if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && CDTXMania.ConfigIni.bGuitar有効 )\r
{\r
this.act譜面スクロール速度.On進行描画();\r
}\r
- private void t入力メソッド記憶( E楽器パート part )\r
+ //private void t入力メソッド記憶( E楽器パート part )\r
+ //{\r
+ // if( CDTXMania.Pad.st検知したデバイス.Keyboard )\r
+ // {\r
+ // this.b演奏にキーボードを使った[ (int) part ] = true;\r
+ // }\r
+ // if( CDTXMania.Pad.st検知したデバイス.Joypad )\r
+ // {\r
+ // this.b演奏にジョイパッドを使った[ (int) part ] = true;\r
+ // }\r
+ // if( CDTXMania.Pad.st検知したデバイス.MIDIIN )\r
+ // {\r
+ // this.b演奏にMIDI入力を使った[ (int) part ] = true;\r
+ // }\r
+ // if( CDTXMania.Pad.st検知したデバイス.Mouse )\r
+ // {\r
+ // this.b演奏にマウスを使った[ (int) part ] = true;\r
+ // }\r
+ //}\r
+\r
+\r
+ protected override void ドラムスクロール速度アップ()\r
{\r
- if( CDTXMania.Pad.st検知したデバイス.Keyboard )\r
- {\r
- this.b演奏にキーボードを使った[ (int) part ] = true;\r
- }\r
- if( CDTXMania.Pad.st検知したデバイス.Joypad )\r
- {\r
- this.b演奏にジョイパッドを使った[ (int) part ] = true;\r
- }\r
- if( CDTXMania.Pad.st検知したデバイス.MIDIIN )\r
- {\r
- this.b演奏にMIDI入力を使った[ (int) part ] = true;\r
- }\r
- if( CDTXMania.Pad.st検知したデバイス.Mouse )\r
- {\r
- this.b演奏にマウスを使った[ (int) part ] = true;\r
- }\r
+ // ギタレボモードでは何もしない\r
}\r
- private void t入力処理・ギター()\r
+ protected override void ドラムスクロール速度ダウン()\r
+ {\r
+ // ギタレボモードでは何もしない\r
+ }\r
+\r
+ protected override void t入力処理・ドラム()\r
+ {\r
+ // ギタレボモードでは何もしない\r
+ }\r
+ protected override void t入力処理・ギター()\r
{\r
if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.B ) )\r
{\r
}\r
}\r
}\r
- private void t入力処理・ベース()\r
+ protected override void t入力処理・ベース()\r
{\r
if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.B ) )\r
{\r
}\r
image.Dispose();\r
}\r
-#if true // DAMAGELEVELTUNING\r
- // ----------------------------------\r
- public float[,] fDamageGaugeDelta = { // #23625 2011.1.10 ickw_284: tuned damage/recover factors\r
- // drums, guitar, bass\r
- { 0.004f, 0.006f, 0.006f },\r
- { 0.002f, 0.003f, 0.003f },\r
- { 0.000f, 0.000f, 0.000f },\r
- { -0.020f, -0.030f, -0.030f },\r
- { -0.050f, -0.050f, -0.050f }\r
- };\r
- public float[] fDamageLevelFactor = {\r
- 0.5f, 1.0f, 1.5f\r
- };\r
- // ----------------------------------\r
-#endif\r
-\r
- private void t判定にあわせてゲージを増減する(E楽器パート part, E判定 e今回の判定)\r
- {\r
- double fDamage;\r
-\r
-#if true // DAMAGELEVELTUNING\r
- switch (e今回の判定) // #23625 2011.1.10 ickw_284\r
- {\r
- case E判定.Perfect:\r
- case E判定.Great:\r
- case E判定.Good:\r
- case E判定.Poor:\r
- fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
- break;\r
- case E判定.Miss:\r
- fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
- switch (CDTXMania.ConfigIni.eダメージレベル)\r
- {\r
- case Eダメージレベル.少ない:\r
- case Eダメージレベル.普通:\r
- case Eダメージレベル.大きい:\r
- fDamage *= fDamageLevelFactor[(int)CDTXMania.ConfigIni.eダメージレベル];\r
- break;\r
- }\r
- break;\r
-\r
- default:\r
- fDamage = 0.0;\r
- break;\r
- }\r
-#else // before applying #23625 modifications\r
- switch (e今回の判定)\r
- {\r
- case E判定.Perfect:\r
- fDamage = ( part == E楽器パート.DRUMS ) ? 0.01 : 0.015;\r
- break;\r
-\r
- case E判定.Great:\r
- fDamage = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009;\r
- break;\r
-\r
- case E判定.Good:\r
- fDamage = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003;\r
- break;\r
-\r
- case E判定.Poor:\r
- fDamage = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0;\r
- break;\r
-\r
- case E判定.Miss:\r
- fDamage = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035;\r
- switch( CDTXMania.ConfigIni.eダメージレベル )\r
- {\r
- case Eダメージレベル.少ない:\r
- fDamage *= 0.6;\r
- break;\r
-\r
- case Eダメージレベル.普通:\r
- fDamage *= 1.0;\r
- break;\r
-\r
- case Eダメージレベル.大きい:\r
- fDamage *= 1.6;\r
- break;\r
- }\r
- break;\r
-\r
- default:\r
- fDamage = 0.0;\r
- break;\r
- }\r
-#endif\r
- this.actGauge.db現在のゲージ値[(int)part] += fDamage;\r
-\r
- if( this.actGauge.db現在のゲージ値[ (int) part ] > 1.0 )\r
- this.actGauge.db現在のゲージ値[ (int) part ] = 1.0;\r
- }\r
+//#if true // DAMAGELEVELTUNING\r
+// // ----------------------------------\r
+// public float[,] fDamageGaugeDelta = { // #23625 2011.1.10 ickw_284: tuned damage/recover factors\r
+// // drums, guitar, bass\r
+// { 0.004f, 0.006f, 0.006f },\r
+// { 0.002f, 0.003f, 0.003f },\r
+// { 0.000f, 0.000f, 0.000f },\r
+// { -0.020f, -0.030f, -0.030f },\r
+// { -0.050f, -0.050f, -0.050f }\r
+// };\r
+// public float[] fDamageLevelFactor = {\r
+// 0.5f, 1.0f, 1.5f\r
+// };\r
+// // ----------------------------------\r
+//#endif\r
+\r
+// private void t判定にあわせてゲージを増減する(E楽器パート part, E判定 e今回の判定)\r
+// {\r
+// double fDamage;\r
+\r
+//#if true // DAMAGELEVELTUNING\r
+// switch (e今回の判定) // #23625 2011.1.10 ickw_284\r
+// {\r
+// case E判定.Perfect:\r
+// case E判定.Great:\r
+// case E判定.Good:\r
+// case E判定.Poor:\r
+// fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
+// break;\r
+// case E判定.Miss:\r
+// fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
+// switch (CDTXMania.ConfigIni.eダメージレベル)\r
+// {\r
+// case Eダメージレベル.少ない:\r
+// case Eダメージレベル.普通:\r
+// case Eダメージレベル.大きい:\r
+// fDamage *= fDamageLevelFactor[(int)CDTXMania.ConfigIni.eダメージレベル];\r
+// break;\r
+// }\r
+// break;\r
+\r
+// default:\r
+// fDamage = 0.0;\r
+// break;\r
+// }\r
+//#else // before applying #23625 modifications\r
+// switch (e今回の判定)\r
+// {\r
+// case E判定.Perfect:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? 0.01 : 0.015;\r
+// break;\r
+\r
+// case E判定.Great:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009;\r
+// break;\r
+\r
+// case E判定.Good:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003;\r
+// break;\r
+\r
+// case E判定.Poor:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0;\r
+// break;\r
+\r
+// case E判定.Miss:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035;\r
+// switch( CDTXMania.ConfigIni.eダメージレベル )\r
+// {\r
+// case Eダメージレベル.少ない:\r
+// fDamage *= 0.6;\r
+// break;\r
+\r
+// case Eダメージレベル.普通:\r
+// fDamage *= 1.0;\r
+// break;\r
+\r
+// case Eダメージレベル.大きい:\r
+// fDamage *= 1.6;\r
+// break;\r
+// }\r
+// break;\r
+\r
+// default:\r
+// fDamage = 0.0;\r
+// break;\r
+// }\r
+//#endif\r
+// this.actGauge.db現在のゲージ値[(int)part] += fDamage;\r
+\r
+// if( this.actGauge.db現在のゲージ値[ (int) part ] > 1.0 )\r
+// this.actGauge.db現在のゲージ値[ (int) part ] = 1.0;\r
+// }\r
//-----------------\r
#endregion\r
}\r
\r
namespace DTXMania\r
{\r
- internal class CAct演奏Drumsゲージ : CActivity\r
+ internal class CAct演奏Drumsゲージ : CAct演奏ゲージ\r
{\r
// プロパティ\r
\r
- public double db現在のゲージ値\r
- {\r
- get\r
- {\r
- return this.dbゲージ値;\r
- }\r
- set\r
- {\r
- this.dbゲージ値 = value;\r
- if( this.dbゲージ値 > 1.0 )\r
- {\r
- this.dbゲージ値 = 1.0;\r
- }\r
- }\r
- }\r
+// public double db現在のゲージ値\r
+// {\r
+// get\r
+// {\r
+// return this.dbゲージ値;\r
+// }\r
+// set\r
+// {\r
+// this.dbゲージ値 = value;\r
+// if( this.dbゲージ値 > 1.0 )\r
+// {\r
+// this.dbゲージ値 = 1.0;\r
+// }\r
+// }\r
+// }\r
\r
\r
// コンストラクタ\r
public CCounter ct進行;\r
}\r
\r
- private CCounter ct本体移動;\r
- private CCounter ct本体振動;\r
- private double dbゲージ値;\r
+ //private CCounter ct本体移動;\r
+ //private CCounter ct本体振動;\r
+ //private double dbゲージ値;\r
private const int STAR_MAX = 0x18;\r
private ST白い星[] st白い星 = new ST白い星[ 0x18 ];\r
- private CTexture txゲージ;\r
+ //private CTexture txゲージ;\r
//-----------------\r
#endregion\r
}\r
{\r
internal class CStage演奏ドラム画面 : CStage演奏画面共通\r
{\r
- // プロパティ\r
-\r
- public bool bAUTOでないチップが1つでもバーを通過した\r
- {\r
- get;\r
- private set;\r
- }\r
- \r
// コンストラクタ\r
\r
public CStage演奏ドラム画面()\r
\r
public void t演奏結果を格納する( out CScoreIni.C演奏記録 Drums, out CScoreIni.C演奏記録 Guitar, out CScoreIni.C演奏記録 Bass, out CDTX.CChip[] r空打ちドラムチップ )\r
{\r
+ r空打ちドラムチップ = new CDTX.CChip[ 10 ];\r
+\r
Drums = new CScoreIni.C演奏記録();\r
Guitar = new CScoreIni.C演奏記録();\r
Bass = new CScoreIni.C演奏記録();\r
- r空打ちドラムチップ = new CDTX.CChip[ 10 ];\r
if( CDTXMania.DTX.bチップがある.Drums && !CDTXMania.ConfigIni.bギタレボモード )\r
{\r
Drums.nスコア = this.actScore.Get( E楽器パート.DRUMS );\r
\r
public override void On活性化()\r
{\r
- this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\r
+ //this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\r
this.bフィルイン中 = false;\r
this.n現在のトップChip = ( CDTXMania.DTX.listChip.Count > 0 ) ? 0 : -1;\r
// this.n最後に再生したHHの実WAV番号 = -1; // #23921 2011.1.4 yyagi\r
{\r
this.n最後に再生したBGMの実WAV番号[ i ] = -1;\r
}\r
- this.r次にくるギターChip = null;\r
- this.r次にくるベースChip = null;\r
+ //this.r次にくるギターChip = null;\r
+ //this.r次にくるベースChip = null;\r
for( int j = 0; j < 10; j++ )\r
{\r
this.r現在の空うちドラムChip[ j ] = null;\r
}\r
this.r現在の空うちギターChip = null;\r
this.r現在の空うちベースChip = null;\r
- for( int k = 0; k < 3; k++ )\r
+ for ( int k = 0; k < 3; k++ )\r
{\r
- for( int n = 0; n < 5; n++ )\r
+ for ( int n = 0; n < 5; n++ )\r
{\r
this.nヒット数・Auto含まない[ k ] = new STHITCOUNTOFRANK();\r
this.nヒット数・Auto含む[ k ] = new STHITCOUNTOFRANK();\r
this.queWailing[ k ] = new Queue<CDTX.CChip>();\r
this.r現在の歓声Chip[ k ] = null;\r
}\r
- for( int m = 0; m < 3; m++ )\r
- {\r
- this.b演奏にキーボードを使った[ m ] = false;\r
- this.b演奏にジョイパッドを使った[ m ] = false;\r
- this.b演奏にMIDI入力を使った[ m ] = false;\r
- this.b演奏にマウスを使った[ m ] = false;\r
- }\r
+ //for( int m = 0; m < 3; m++ )\r
+ //{\r
+ // this.b演奏にキーボードを使った[ m ] = false;\r
+ // this.b演奏にジョイパッドを使った[ m ] = false;\r
+ // this.b演奏にMIDI入力を使った[ m ] = false;\r
+ // this.b演奏にマウスを使った[ m ] = false;\r
+ //}\r
this.bAUTOでないチップが1つでもバーを通過した = false;\r
base.On活性化();\r
this.tステータスパネルの選択();\r
this.tパネル文字列の設定();\r
\r
- this.nInputAdjustTimeMs.Drums = CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums; // #23580 2011.1.3 yyagi\r
- this.nInputAdjustTimeMs.Guitar = CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar; // 2011.1.7 ikanick 修正\r
- this.nInputAdjustTimeMs.Bass = CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass; //\r
- this.bIsAutoPlay = CDTXMania.ConfigIni.bAutoPlay; // #24239 2011.1.23 yyagi\r
+ // this.nInputAdjustTimeMs.Drums = CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums; // #23580 2011.1.3 yyagi\r
+ // this.nInputAdjustTimeMs.Guitar = CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar; // 2011.1.7 ikanick 修正\r
+ // this.nInputAdjustTimeMs.Bass = CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass; //\r
+ //this.bIsAutoPlay = CDTXMania.ConfigIni.bAutoPlay; // #24239 2011.1.23 yyagi\r
\r
Cスコア cスコア = CDTXMania.stage選曲.r確定されたスコア; // #24074 2011.01.23 add ikanick\r
this.actGraph.dbグラフ値目標_渡 = cスコア.譜面情報.最大スキル[0];\r
this.actFI.tフェードイン開始();\r
base.b初めての進行描画 = false;\r
}\r
- if( ( CDTXMania.ConfigIni.bSTAGEFAILED有効 && ( this.actGauge.db現在のゲージ値 <= -0.1 ) ) && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) )\r
+ if( ( CDTXMania.ConfigIni.bSTAGEFAILED有効 && ( this.actGauge.db現在のゲージ値.Drums <= -0.1 ) ) && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) )\r
{\r
this.actStageFailed.Start();\r
CDTXMania.DTX.t全チップの再生停止();\r
\r
#region [ private ]\r
//-----------------\r
- private class STHITCOUNTOFRANK\r
- {\r
- // Fields\r
- public int Good;\r
- public int Great;\r
- public int Miss;\r
- public int Perfect;\r
- public int Poor;\r
-\r
- // Properties\r
- public int this[ int index ]\r
- {\r
- get\r
- {\r
- switch( index )\r
- {\r
- case 0:\r
- return this.Perfect;\r
-\r
- case 1:\r
- return this.Great;\r
-\r
- case 2:\r
- return this.Good;\r
-\r
- case 3:\r
- return this.Poor;\r
-\r
- case 4:\r
- return this.Miss;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- set\r
- {\r
- switch( index )\r
- {\r
- case 0:\r
- this.Perfect = value;\r
- return;\r
-\r
- case 1:\r
- this.Great = value;\r
- return;\r
-\r
- case 2:\r
- this.Good = value;\r
- return;\r
-\r
- case 3:\r
- this.Poor = value;\r
- return;\r
-\r
- case 4:\r
- this.Miss = value;\r
- return;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- }\r
- }\r
-\r
- [StructLayout( LayoutKind.Sequential )]\r
- private struct STKARAUCHI\r
- {\r
- public CDTX.CChip HH;\r
- public CDTX.CChip SD;\r
- public CDTX.CChip BD;\r
- public CDTX.CChip HT;\r
- public CDTX.CChip LT;\r
- public CDTX.CChip FT;\r
- public CDTX.CChip CY;\r
- public CDTX.CChip HHO;\r
- public CDTX.CChip RD;\r
- public CDTX.CChip LC;\r
- public CDTX.CChip this[ int index ]\r
- {\r
- get\r
- {\r
- switch( index )\r
- {\r
- case 0:\r
- return this.HH;\r
-\r
- case 1:\r
- return this.SD;\r
-\r
- case 2:\r
- return this.BD;\r
-\r
- case 3:\r
- return this.HT;\r
-\r
- case 4:\r
- return this.LT;\r
-\r
- case 5:\r
- return this.FT;\r
-\r
- case 6:\r
- return this.CY;\r
-\r
- case 7:\r
- return this.HHO;\r
-\r
- case 8:\r
- return this.RD;\r
-\r
- case 9:\r
- return this.LC;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- set\r
- {\r
- switch( index )\r
- {\r
- case 0:\r
- this.HH = value;\r
- return;\r
-\r
- case 1:\r
- this.SD = value;\r
- return;\r
-\r
- case 2:\r
- this.BD = value;\r
- return;\r
-\r
- case 3:\r
- this.HT = value;\r
- return;\r
-\r
- case 4:\r
- this.LT = value;\r
- return;\r
-\r
- case 5:\r
- this.FT = value;\r
- return;\r
-\r
- case 6:\r
- this.CY = value;\r
- return;\r
-\r
- case 7:\r
- this.HHO = value;\r
- return;\r
-\r
- case 8:\r
- this.RD = value;\r
- return;\r
-\r
- case 9:\r
- this.LC = value;\r
- return;\r
- }\r
- throw new IndexOutOfRangeException();\r
- }\r
- }\r
- }\r
+ //private class STHITCOUNTOFRANK\r
+ //{\r
+ // // Fields\r
+ // public int Good;\r
+ // public int Great;\r
+ // public int Miss;\r
+ // public int Perfect;\r
+ // public int Poor;\r
+\r
+ // // Properties\r
+ // public int this[ int index ]\r
+ // {\r
+ // get\r
+ // {\r
+ // switch( index )\r
+ // {\r
+ // case 0:\r
+ // return this.Perfect;\r
+\r
+ // case 1:\r
+ // return this.Great;\r
+\r
+ // case 2:\r
+ // return this.Good;\r
+\r
+ // case 3:\r
+ // return this.Poor;\r
+\r
+ // case 4:\r
+ // return this.Miss;\r
+ // }\r
+ // throw new IndexOutOfRangeException();\r
+ // }\r
+ // set\r
+ // {\r
+ // switch( index )\r
+ // {\r
+ // case 0:\r
+ // this.Perfect = value;\r
+ // return;\r
+\r
+ // case 1:\r
+ // this.Great = value;\r
+ // return;\r
+\r
+ // case 2:\r
+ // this.Good = value;\r
+ // return;\r
+\r
+ // case 3:\r
+ // this.Poor = value;\r
+ // return;\r
+\r
+ // case 4:\r
+ // this.Miss = value;\r
+ // return;\r
+ // }\r
+ // throw new IndexOutOfRangeException();\r
+ // }\r
+ // }\r
+ //}\r
+\r
+ //[StructLayout( LayoutKind.Sequential )]\r
+ //private struct STKARAUCHI\r
+ //{\r
+ // public CDTX.CChip HH;\r
+ // public CDTX.CChip SD;\r
+ // public CDTX.CChip BD;\r
+ // public CDTX.CChip HT;\r
+ // public CDTX.CChip LT;\r
+ // public CDTX.CChip FT;\r
+ // public CDTX.CChip CY;\r
+ // public CDTX.CChip HHO;\r
+ // public CDTX.CChip RD;\r
+ // public CDTX.CChip LC;\r
+ // public CDTX.CChip this[ int index ]\r
+ // {\r
+ // get\r
+ // {\r
+ // switch( index )\r
+ // {\r
+ // case 0:\r
+ // return this.HH;\r
+\r
+ // case 1:\r
+ // return this.SD;\r
+\r
+ // case 2:\r
+ // return this.BD;\r
+\r
+ // case 3:\r
+ // return this.HT;\r
+\r
+ // case 4:\r
+ // return this.LT;\r
+\r
+ // case 5:\r
+ // return this.FT;\r
+\r
+ // case 6:\r
+ // return this.CY;\r
+\r
+ // case 7:\r
+ // return this.HHO;\r
+\r
+ // case 8:\r
+ // return this.RD;\r
+\r
+ // case 9:\r
+ // return this.LC;\r
+ // }\r
+ // throw new IndexOutOfRangeException();\r
+ // }\r
+ // set\r
+ // {\r
+ // switch( index )\r
+ // {\r
+ // case 0:\r
+ // this.HH = value;\r
+ // return;\r
+\r
+ // case 1:\r
+ // this.SD = value;\r
+ // return;\r
+\r
+ // case 2:\r
+ // this.BD = value;\r
+ // return;\r
+\r
+ // case 3:\r
+ // this.HT = value;\r
+ // return;\r
+\r
+ // case 4:\r
+ // this.LT = value;\r
+ // return;\r
+\r
+ // case 5:\r
+ // this.FT = value;\r
+ // return;\r
+\r
+ // case 6:\r
+ // this.CY = value;\r
+ // return;\r
+\r
+ // case 7:\r
+ // this.HHO = value;\r
+ // return;\r
+\r
+ // case 8:\r
+ // this.RD = value;\r
+ // return;\r
+\r
+ // case 9:\r
+ // this.LC = value;\r
+ // return;\r
+ // }\r
+ // throw new IndexOutOfRangeException();\r
+ // }\r
+ // }\r
+ //}\r
\r
private CAct演奏AVI actAVI;\r
private CAct演奏BGA actBGA;\r
private CAct演奏DrumsチップファイアGB actChipFireGB;\r
private CAct演奏DrumsコンボDGB actCOMBO;\r
private CAct演奏DrumsDanger actDANGER;\r
- private CActFIFOBlack actFI;\r
- private CActFIFOBlack actFO;\r
- private CActFIFOWhite actFOClear;\r
- private CAct演奏Drumsゲージ actGauge;\r
+ //private CActFIFOBlack actFI;\r
+ //private CActFIFOBlack actFO;\r
+ //private CActFIFOWhite actFOClear;\r
+ //private CAct演奏Drumsゲージ actGauge;\r
private CAct演奏Drumsグラフ actGraph; // #24074 2011.01.23 add ikanick\r
private CAct演奏Drums判定文字列 actJudgeString;\r
private CAct演奏DrumsレーンフラッシュD actLaneFlushD;\r
private CAct演奏Drumsステータスパネル actStatusPanels;\r
private CAct演奏DrumsWailingBonus actWailingBonus;\r
private CAct演奏スクロール速度 act譜面スクロール速度;\r
- private bool bPAUSE;\r
+ //private bool bPAUSE;\r
private bool bフィルイン中;\r
- private STDGBVALUE<bool> b演奏にMIDI入力を使った;\r
- private STDGBVALUE<bool> b演奏にキーボードを使った;\r
- private STDGBVALUE<bool> b演奏にジョイパッドを使った;\r
- private STDGBVALUE<bool> b演奏にマウスを使った;\r
+// private STDGBVALUE<bool> b演奏にMIDI入力を使った;\r
+// private STDGBVALUE<bool> b演奏にキーボードを使った;\r
+// private STDGBVALUE<bool> b演奏にジョイパッドを使った;\r
+// private STDGBVALUE<bool> b演奏にマウスを使った;\r
private CCounter ctWailingチップ模様アニメ;\r
private STDGBVALUE<CCounter> ctチップ模様アニメ;\r
private readonly Eパッド[] eチャンネルtoパッド;\r
- private E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
+ //private E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
private readonly int[,] nBGAスコープチャンネルマップ;\r
private readonly int[] nチャンネル0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 8, 0 };\r
private readonly int[] nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 };\r
private readonly int[] nパッド0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 7, 0 };\r
private STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含まない;\r
private STDGBVALUE<STHITCOUNTOFRANK> nヒット数・Auto含む;\r
- private int n現在のトップChip = -1;\r
+ // private int n現在のトップChip = -1;\r
private int[] n最後に再生したBGMの実WAV番号 = new int[ 50 ];\r
private int n最後に再生したHHのチャンネル番号;\r
private List<int> L最後に再生したHHの実WAV番号; // #23921 2011.1.4 yyagi: change "int" to "List<int>", for recording multiple wav No.\r
private CDTX.CChip r現在の空うちギターChip;\r
private STKARAUCHI r現在の空うちドラムChip;\r
private CDTX.CChip r現在の空うちベースChip;\r
- private CDTX.CChip r次にくるギターChip;\r
- private CDTX.CChip r次にくるベースChip;\r
+ //private CDTX.CChip r次にくるギターChip;\r
+ //private CDTX.CChip r次にくるベースChip;\r
private CTexture txWailing枠;\r
private CTexture txチップ;\r
private CTexture txヒットバー;\r
private CTexture txヒットバーGB;\r
private CTexture txレーンフレームGB;\r
private CTexture tx背景;\r
- private STDGBVALUE<int> nInputAdjustTimeMs; // #23580 2011.1.3 yyagi\r
- private CConfigIni.STAUTOPLAY bIsAutoPlay; // #24239 2011.1.23 yyagi\r
+ // private STDGBVALUE<int> nInputAdjustTimeMs; // #23580 2011.1.3 yyagi\r
+ //private CConfigIni.STAUTOPLAY bIsAutoPlay; // #24239 2011.1.23 yyagi\r
\r
private bool bフィルイン区間の最後のChipである( CDTX.CChip pChip )\r
{\r
}\r
return true;\r
}\r
- private E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip, int nInputAdjustTime )\r
- {\r
- if( pChip != null )\r
- {\r
- pChip.nLag = (int) ( nTime + nInputAdjustTime - pChip.n発声時刻ms ); // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature\r
- int nDeltaTime = Math.Abs( pChip.nLag);\r
-//Debug.WriteLine("nAbsTime=" + (nTime - pChip.n発声時刻ms) + ", nDeltaTime=" + (nTime + nInputAdjustTime - pChip.n発声時刻ms));\r
- if( nDeltaTime <= CDTXMania.nPerfect範囲ms )\r
- {\r
- return E判定.Perfect;\r
- }\r
- if( nDeltaTime <= CDTXMania.nGreat範囲ms )\r
- {\r
- return E判定.Great;\r
- }\r
- if( nDeltaTime <= CDTXMania.nGood範囲ms )\r
- {\r
- return E判定.Good;\r
- }\r
- if( nDeltaTime <= CDTXMania.nPoor範囲ms )\r
- {\r
- return E判定.Poor;\r
- }\r
- }\r
- return E判定.Miss;\r
- }\r
+// private E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip, int nInputAdjustTime )\r
+// {\r
+// if( pChip != null )\r
+// {\r
+// pChip.nLag = (int) ( nTime + nInputAdjustTime - pChip.n発声時刻ms ); // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature\r
+// int nDeltaTime = Math.Abs( pChip.nLag);\r
+////Debug.WriteLine("nAbsTime=" + (nTime - pChip.n発声時刻ms) + ", nDeltaTime=" + (nTime + nInputAdjustTime - pChip.n発声時刻ms));\r
+// if( nDeltaTime <= CDTXMania.nPerfect範囲ms )\r
+// {\r
+// return E判定.Perfect;\r
+// }\r
+// if( nDeltaTime <= CDTXMania.nGreat範囲ms )\r
+// {\r
+// return E判定.Great;\r
+// }\r
+// if( nDeltaTime <= CDTXMania.nGood範囲ms )\r
+// {\r
+// return E判定.Good;\r
+// }\r
+// if( nDeltaTime <= CDTXMania.nPoor範囲ms )\r
+// {\r
+// return E判定.Poor;\r
+// }\r
+// }\r
+// return E判定.Miss;\r
+// }\r
private CDTX.CChip r空うちChip( E楽器パート part, Eパッド pad )\r
{\r
switch( part )\r
}\r
return null;\r
}\r
- private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag, int nInputAdjustTime )\r
- {\r
- nTime += nInputAdjustTime; // #24239 2011.1.23 yyagi InputAdjust\r
+ //private CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( long nTime, int nChannelFlag, int nInputAdjustTime )\r
+ //{\r
+ // nTime += nInputAdjustTime; // #24239 2011.1.23 yyagi InputAdjust\r
\r
- int num5;\r
- if( this.n現在のトップChip == -1 )\r
- {\r
- return null;\r
- }\r
- int count = CDTXMania.DTX.listChip.Count;\r
- int num4 = num5 = this.n現在のトップChip;\r
- if( this.n現在のトップChip >= count )\r
- {\r
- num4 = num5 = count - 1;\r
- }\r
- int num2 = num4;\r
- while( num2 < count )\r
- {\r
- CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
- if( ( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) ) && ( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) )\r
- {\r
- if( chip.n発声時刻ms > nTime )\r
- {\r
- break;\r
- }\r
- num5 = num2;\r
- }\r
- else if( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
- {\r
- if( chip.n発声時刻ms > nTime )\r
- {\r
- break;\r
- }\r
- num5 = num2;\r
- }\r
- else if( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 0xa0 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
- {\r
- if( chip.n発声時刻ms > nTime )\r
- {\r
- break;\r
- }\r
- num5 = num2;\r
- }\r
- num2++;\r
- }\r
- int num3 = num5;\r
- while( num3 >= 0 )\r
- {\r
- CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
- if( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) )\r
- {\r
- if( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
- {\r
- break;\r
- }\r
- }\r
- else if( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) )\r
- {\r
- if( ( chip2.nチャンネル番号 >= 0x20 ) && ( chip2.nチャンネル番号 <= 0x28 ) )\r
- {\r
- break;\r
- }\r
- }\r
- else if( ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 0xa0 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) && ( ( chip2.nチャンネル番号 >= 0xa0 ) && ( chip2.nチャンネル番号 <= 0xa8 ) ) )\r
- {\r
- break;\r
- }\r
- num3--;\r
- }\r
- if( ( num2 == count ) && ( num3 < 0 ) )\r
- {\r
- return null;\r
- }\r
- if( num2 == count )\r
- {\r
- return CDTXMania.DTX.listChip[ num3 ];\r
- }\r
- if( num3 < 0 )\r
- {\r
- return CDTXMania.DTX.listChip[ num2 ];\r
- }\r
- CDTX.CChip chip3 = CDTXMania.DTX.listChip[ num2 ];\r
- CDTX.CChip chip4 = CDTXMania.DTX.listChip[ num3 ];\r
- int num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
- int num7 = Math.Abs( (int) ( nTime - chip4.n発声時刻ms ) );\r
- if( num6 >= num7 )\r
- {\r
- return chip4;\r
- }\r
- return chip3;\r
- }\r
+ // int num5;\r
+ // if( this.n現在のトップChip == -1 )\r
+ // {\r
+ // return null;\r
+ // }\r
+ // int count = CDTXMania.DTX.listChip.Count;\r
+ // int num4 = num5 = this.n現在のトップChip;\r
+ // if( this.n現在のトップChip >= count )\r
+ // {\r
+ // num4 = num5 = count - 1;\r
+ // }\r
+ // int num2 = num4;\r
+ // while( num2 < count )\r
+ // {\r
+ // CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
+ // if( ( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) ) && ( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) )\r
+ // {\r
+ // if( chip.n発声時刻ms > nTime )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num5 = num2;\r
+ // }\r
+ // else if( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
+ // {\r
+ // if( chip.n発声時刻ms > nTime )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num5 = num2;\r
+ // }\r
+ // else if( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 0xa0 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) )\r
+ // {\r
+ // if( chip.n発声時刻ms > nTime )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num5 = num2;\r
+ // }\r
+ // num2++;\r
+ // }\r
+ // int num3 = num5;\r
+ // while( num3 >= 0 )\r
+ // {\r
+ // CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
+ // if( ( nChannelFlag >= 0x11 ) && ( nChannelFlag <= 0x1a ) )\r
+ // {\r
+ // if( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
+ // {\r
+ // break;\r
+ // }\r
+ // }\r
+ // else if( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) )\r
+ // {\r
+ // if( ( chip2.nチャンネル番号 >= 0x20 ) && ( chip2.nチャンネル番号 <= 0x28 ) )\r
+ // {\r
+ // break;\r
+ // }\r
+ // }\r
+ // else if( ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 0xa0 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) && ( ( chip2.nチャンネル番号 >= 0xa0 ) && ( chip2.nチャンネル番号 <= 0xa8 ) ) )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num3--;\r
+ // }\r
+ // if( ( num2 == count ) && ( num3 < 0 ) )\r
+ // {\r
+ // return null;\r
+ // }\r
+ // if( num2 == count )\r
+ // {\r
+ // return CDTXMania.DTX.listChip[ num3 ];\r
+ // }\r
+ // if( num3 < 0 )\r
+ // {\r
+ // return CDTXMania.DTX.listChip[ num2 ];\r
+ // }\r
+ // CDTX.CChip chip3 = CDTXMania.DTX.listChip[ num2 ];\r
+ // CDTX.CChip chip4 = CDTXMania.DTX.listChip[ num3 ];\r
+ // int num6 = Math.Abs( (int) ( nTime - chip3.n発声時刻ms ) );\r
+ // int num7 = Math.Abs( (int) ( nTime - chip4.n発声時刻ms ) );\r
+ // if( num6 >= num7 )\r
+ // {\r
+ // return chip4;\r
+ // }\r
+ // return chip3;\r
+ //}\r
private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime )\r
{\r
return this.r指定時刻に一番近い未ヒットChip( nTime, nChannelFlag, nInputAdjustTime, 0 );\r
}\r
- private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime, int n検索範囲時間ms )\r
- {\r
- nTime += nInputAdjustTime;\r
-\r
- int num5;\r
- int num6;\r
- if( this.n現在のトップChip == -1 )\r
- {\r
- return null;\r
- }\r
- int count = CDTXMania.DTX.listChip.Count;\r
- int num4 = num5 = this.n現在のトップChip;\r
- if( this.n現在のトップChip >= count )\r
- {\r
- num4 = num5 = count - 1;\r
- }\r
- int num2 = num4;\r
- while( num2 < count )\r
- {\r
- CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
- if( ( !chip.bHit && ( nChannelFlag >= 0x11 ) ) && ( nChannelFlag <= 0x1a ) )\r
- {\r
- if( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
- {\r
- if( chip.n発声時刻ms > nTime )\r
- {\r
- break;\r
- }\r
- num5 = num2;\r
- }\r
- }\r
- else if( !chip.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
- {\r
- if( chip.n発声時刻ms > nTime )\r
- {\r
- break;\r
- }\r
- num5 = num2;\r
- }\r
- else if( !chip.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
- {\r
- if( chip.n発声時刻ms > nTime )\r
- {\r
- break;\r
- }\r
- num5 = num2;\r
- }\r
- num2++;\r
- }\r
- int num3 = num5;\r
- while( num3 >= 0 )\r
- {\r
- CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
- if( ( ( ( !chip2.bHit && ( nChannelFlag >= 0x11 ) ) && ( ( nChannelFlag <= 0x1a ) && ( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) )\r
- {\r
- break;\r
- }\r
- num3--;\r
- }\r
- if( ( num2 == count ) && ( num3 < 0 ) )\r
- {\r
- return null;\r
- }\r
- CDTX.CChip chip3 = null;\r
- if( num2 == count )\r
- {\r
- chip3 = CDTXMania.DTX.listChip[ num3 ];\r
- num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
- }\r
- else if( num3 < 0 )\r
- {\r
- chip3 = CDTXMania.DTX.listChip[ num2 ];\r
- num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
- }\r
- else\r
- {\r
- int num7 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
- int num8 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
- if( num7 < num8 )\r
- {\r
- chip3 = CDTXMania.DTX.listChip[ num2 ];\r
- num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
- }\r
- else\r
- {\r
- chip3 = CDTXMania.DTX.listChip[ num3 ];\r
- num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
- }\r
- }\r
- if( ( n検索範囲時間ms > 0 ) && ( num6 > n検索範囲時間ms ) )\r
- {\r
- return null;\r
- }\r
- return chip3;\r
- }\r
- private CDTX.CChip r次にくるギターChipを更新して返す()\r
- {\r
- int nInputAdjustTime = this.bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
- this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, nInputAdjustTime, 500 );\r
- return this.r次にくるギターChip;\r
- }\r
- private CDTX.CChip r次にくるベースChipを更新して返す()\r
- {\r
- int nInputAdjustTime = this.bIsAutoPlay.Bass? 0 : this.nInputAdjustTimeMs.Bass;\r
- this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, nInputAdjustTime, 500 );\r
- return this.r次にくるベースChip;\r
- }\r
+ //private CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannelFlag, int nInputAdjustTime, int n検索範囲時間ms )\r
+ //{\r
+ // nTime += nInputAdjustTime;\r
+\r
+ // int num5;\r
+ // int num6;\r
+ // if( this.n現在のトップChip == -1 )\r
+ // {\r
+ // return null;\r
+ // }\r
+ // int count = CDTXMania.DTX.listChip.Count;\r
+ // int num4 = num5 = this.n現在のトップChip;\r
+ // if( this.n現在のトップChip >= count )\r
+ // {\r
+ // num4 = num5 = count - 1;\r
+ // }\r
+ // int num2 = num4;\r
+ // while( num2 < count )\r
+ // {\r
+ // CDTX.CChip chip = CDTXMania.DTX.listChip[ num2 ];\r
+ // if( ( !chip.bHit && ( nChannelFlag >= 0x11 ) ) && ( nChannelFlag <= 0x1a ) )\r
+ // {\r
+ // if( ( chip.nチャンネル番号 == nChannelFlag ) || ( chip.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) )\r
+ // {\r
+ // if( chip.n発声時刻ms > nTime )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num5 = num2;\r
+ // }\r
+ // }\r
+ // else if( !chip.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
+ // {\r
+ // if( chip.n発声時刻ms > nTime )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num5 = num2;\r
+ // }\r
+ // else if( !chip.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannelFlag ) ) ) )\r
+ // {\r
+ // if( chip.n発声時刻ms > nTime )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num5 = num2;\r
+ // }\r
+ // num2++;\r
+ // }\r
+ // int num3 = num5;\r
+ // while( num3 >= 0 )\r
+ // {\r
+ // CDTX.CChip chip2 = CDTXMania.DTX.listChip[ num3 ];\r
+ // if( ( ( ( !chip2.bHit && ( nChannelFlag >= 0x11 ) ) && ( ( nChannelFlag <= 0x1a ) && ( ( chip2.nチャンネル番号 == nChannelFlag ) || ( chip2.nチャンネル番号 == ( nChannelFlag + 0x20 ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0x2f ) && ( chip2.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( nChannelFlag >= 0x20 ) && ( nChannelFlag <= 40 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) ) || ( !chip2.bHit && ( ( ( nChannelFlag == 0xaf ) && ( chip2.e楽器パート == E楽器パート.BASS ) ) || ( ( ( nChannelFlag >= 160 ) && ( nChannelFlag <= 0xa8 ) ) && ( chip2.nチャンネル番号 == nChannelFlag ) ) ) ) )\r
+ // {\r
+ // break;\r
+ // }\r
+ // num3--;\r
+ // }\r
+ // if( ( num2 == count ) && ( num3 < 0 ) )\r
+ // {\r
+ // return null;\r
+ // }\r
+ // CDTX.CChip chip3 = null;\r
+ // if( num2 == count )\r
+ // {\r
+ // chip3 = CDTXMania.DTX.listChip[ num3 ];\r
+ // num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
+ // }\r
+ // else if( num3 < 0 )\r
+ // {\r
+ // chip3 = CDTXMania.DTX.listChip[ num2 ];\r
+ // num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
+ // }\r
+ // else\r
+ // {\r
+ // int num7 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
+ // int num8 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
+ // if( num7 < num8 )\r
+ // {\r
+ // chip3 = CDTXMania.DTX.listChip[ num2 ];\r
+ // num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num2 ].n発声時刻ms ) );\r
+ // }\r
+ // else\r
+ // {\r
+ // chip3 = CDTXMania.DTX.listChip[ num3 ];\r
+ // num6 = Math.Abs( (int) ( nTime - CDTXMania.DTX.listChip[ num3 ].n発声時刻ms ) );\r
+ // }\r
+ // }\r
+ // if( ( n検索範囲時間ms > 0 ) && ( num6 > n検索範囲時間ms ) )\r
+ // {\r
+ // return null;\r
+ // }\r
+ // return chip3;\r
+ //}\r
+ //private CDTX.CChip r次にくるギターChipを更新して返す()\r
+ //{\r
+ // int nInputAdjustTime = this.bIsAutoPlay.Guitar ? 0 : this.nInputAdjustTimeMs.Guitar;\r
+ // this.r次にくるギターChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0x2f, nInputAdjustTime, 500 );\r
+ // return this.r次にくるギターChip;\r
+ //}\r
+ //private CDTX.CChip r次にくるベースChipを更新して返す()\r
+ //{\r
+ // int nInputAdjustTime = this.bIsAutoPlay.Bass? 0 : this.nInputAdjustTimeMs.Bass;\r
+ // this.r次にくるベースChip = this.r指定時刻に一番近い未ヒットChip( CDTXMania.Timer.n現在時刻, 0xaf, nInputAdjustTime, 500 );\r
+ // return this.r次にくるベースChip;\r
+ //}\r
private void tサウンド再生( CDTX.CChip rChip, long n再生開始システム時刻ms, E楽器パート part )\r
{\r
this.tサウンド再生( rChip, n再生開始システム時刻ms, part, CDTXMania.ConfigIni.n手動再生音量, false, false );\r
}\r
if( !bPChipIsAutoPlay && ( pChip.e楽器パート != E楽器パート.UNKNOWN ) )\r
{\r
- this.t判定にあわせてゲージを増減する( pChip.e楽器パート, eJudgeResult );\r
+ this.t判定にあわせてゲージを増減する( E楽器パート.DRUMS, pChip.e楽器パート, eJudgeResult );\r
}\r
switch( pChip.e楽器パート )\r
{\r
private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane )\r
{\r
this.bAUTOでないチップが1つでもバーを通過した = true;\r
- this.t判定にあわせてゲージを増減する( part, E判定.Miss );\r
+ this.t判定にあわせてゲージを増減する( E楽器パート.DRUMS, part, E判定.Miss );\r
switch( part )\r
{\r
case E楽器パート.DRUMS:\r
{\r
this.actPanel.SetPanelString( string.IsNullOrEmpty( CDTXMania.DTX.PANEL ) ? CDTXMania.DTX.TITLE : CDTXMania.DTX.PANEL );\r
}\r
- private void tキー入力()\r
+ //private void tキー入力()\r
+ //{\r
+ // IInputDevice keyboard = CDTXMania.Input管理.Keyboard;\r
+ // if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.F1 ) &&\r
+ // ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift) ) )\r
+ // { // shift+f1 (pause)\r
+ // this.bPAUSE = !this.bPAUSE;\r
+ // if( this.bPAUSE )\r
+ // {\r
+ // CDTXMania.Timer.t一時停止();\r
+ // CDTXMania.DTX.t全チップの再生一時停止();\r
+ // }\r
+ // else\r
+ // {\r
+ // CDTXMania.Timer.t再開();\r
+ // CDTXMania.DTX.t全チップの再生再開();\r
+ // }\r
+ // }\r
+ // if( ( !this.bPAUSE && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
+ // {\r
+ // this.t入力処理・ドラム();\r
+ // this.t入力処理・ギター();\r
+ // this.t入力処理・ベース();\r
+ // if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.UpArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
+ // { // shift + UpArrow (BGMAdjust)\r
+ // CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl) ) ? 1 : 10 );\r
+ // CDTXMania.DTX.tWave再生位置自動補正();\r
+ // }\r
+ // else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.DownArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
+ // { // shift + DownArrow (BGMAdjust)\r
+ // CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl ) ) ? -1 : -10 );\r
+ // CDTXMania.DTX.tWave再生位置自動補正();\r
+ // }\r
+ // else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.UpArrow ) )\r
+ // { // UpArrow(scrollspeed up)\r
+ // CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1, 1999 );\r
+ // }\r
+ // else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.DownArrow ) )\r
+ // { // DownArrow (scrollspeed down)\r
+ // CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Drums - 1, 0 );\r
+ // }\r
+ // else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Delete ) )\r
+ // { // del (debug info)\r
+ // CDTXMania.ConfigIni.b演奏情報を表示する = !CDTXMania.ConfigIni.b演奏情報を表示する;\r
+ // }\r
+ // else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.LeftArrow ) ) // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
+ // {\r
+ // ChangeInputAdjustTimeInPlaying( keyboard, -1 );\r
+ // }\r
+ // else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.RightArrow ) ) // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
+ // {\r
+ // ChangeInputAdjustTimeInPlaying( keyboard, +1 );\r
+ // }\r
+ // else if ( ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) && ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Escape ) || CDTXMania.Pad.b押されたGB( Eパッド.FT ) ) )\r
+ // { // escape (exit)\r
+ // this.actFO.tフェードアウト開始();\r
+ // base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
+ // this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.演奏中断;\r
+ // }\r
+ // }\r
+ //}\r
+\r
+ protected override void ドラムスクロール速度アップ()\r
{\r
- IInputDevice keyboard = CDTXMania.Input管理.Keyboard;\r
- if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.F1 ) &&\r
- ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift) ) )\r
- { // shift+f1 (pause)\r
- this.bPAUSE = !this.bPAUSE;\r
- if( this.bPAUSE )\r
- {\r
- CDTXMania.Timer.t一時停止();\r
- CDTXMania.DTX.t全チップの再生一時停止();\r
- }\r
- else\r
- {\r
- CDTXMania.Timer.t再開();\r
- CDTXMania.DTX.t全チップの再生再開();\r
- }\r
- }\r
- if( ( !this.bPAUSE && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )\r
- {\r
- this.t入力処理・ドラム();\r
- this.t入力処理・ギター();\r
- this.t入力処理・ベース();\r
- if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.UpArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
- { // shift + UpArrow (BGMAdjust)\r
- CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl) ) ? 1 : 10 );\r
- CDTXMania.DTX.tWave再生位置自動補正();\r
- }\r
- else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.DownArrow ) && ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftShift ) ) )\r
- { // shift + DownArrow (BGMAdjust)\r
- CDTXMania.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDX.DirectInput.Key.RightControl ) ) ? -1 : -10 );\r
- CDTXMania.DTX.tWave再生位置自動補正();\r
- }\r
- else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.UpArrow ) )\r
- { // UpArrow(scrollspeed up)\r
- CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1, 1999 );\r
- }\r
- else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.DownArrow ) )\r
- { // DownArrow (scrollspeed down)\r
- CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Drums - 1, 0 );\r
- }\r
- else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Delete ) )\r
- { // del (debug info)\r
- CDTXMania.ConfigIni.b演奏情報を表示する = !CDTXMania.ConfigIni.b演奏情報を表示する;\r
- }\r
- else if ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.LeftArrow ) ) // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
- {\r
- ChangeInputAdjustTimeInPlaying( keyboard, -1 );\r
- }\r
- else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.RightArrow ) ) // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
- {\r
- ChangeInputAdjustTimeInPlaying( keyboard, +1 );\r
- }\r
- else if ( ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) && ( keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.Escape ) || CDTXMania.Pad.b押されたGB( Eパッド.FT ) ) )\r
- { // escape (exit)\r
- this.actFO.tフェードアウト開始();\r
- base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
- this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.演奏中断;\r
- }\r
- }\r
+ CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1, 1999 );\r
}\r
- private void ChangeInputAdjustTimeInPlaying( IInputDevice keyboard, int plusminus ) // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
+ protected override void ドラムスクロール速度ダウン()\r
{\r
- int part, offset = plusminus;\r
- if ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftShift ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightShift ) ) // Guitar InputAdjustTime\r
- {\r
- part = (int) E楽器パート.GUITAR;\r
- }\r
- else if ( keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftAlt ) || keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightAlt ) ) // Bass InputAdjustTime\r
- {\r
- part = (int) E楽器パート.BASS;\r
- }\r
- else // Drums InputAdjustTime\r
- {\r
- part = (int) E楽器パート.DRUMS;\r
- }\r
- if ( !keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.LeftControl ) && !keyboard.bキーが押されている( (int) SlimDX.DirectInput.Key.RightControl ) )\r
- {\r
- offset *= 10;\r
- }\r
-\r
- this.nInputAdjustTimeMs[ part ] += offset;\r
- if ( this.nInputAdjustTimeMs[ part ] > 0 )\r
- {\r
- this.nInputAdjustTimeMs[ part ] = 0;\r
- }\r
- else if ( this.nInputAdjustTimeMs[ part ] < -99 )\r
- {\r
- this.nInputAdjustTimeMs[ part ] = -99;\r
- }\r
- CDTXMania.ConfigIni.nInputAdjustTimeMs[ part ] = this.nInputAdjustTimeMs[ part ];\r
+ CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Drums - 1, 0 );\r
}\r
+\r
+ \r
private void t進行描画・AVI()\r
{\r
if( ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( !CDTXMania.ConfigIni.bストイックモード && CDTXMania.ConfigIni.bAVI有効 ) )\r
}\r
private void t進行描画・DANGER()\r
{\r
- this.actDANGER.t進行描画( this.actGauge.db現在のゲージ値 < 0.3 );\r
+ this.actDANGER.t進行描画( this.actGauge.db現在のゲージ値.Drums < 0.3 );\r
}\r
private void t進行描画・MIDIBGM()\r
{\r
this.actPanel.t進行描画( 0x150, 0x1ab );\r
}\r
}\r
- private bool t進行描画・フェードイン・アウト()\r
- {\r
- switch( base.eフェーズID )\r
- {\r
- case CStage.Eフェーズ.共通_フェードイン:\r
- if( this.actFI.On進行描画() != 0 )\r
- {\r
- base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
- }\r
- break;\r
-\r
- case CStage.Eフェーズ.共通_フェードアウト:\r
- case CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト:\r
- if( this.actFO.On進行描画() != 0 )\r
- {\r
- return true;\r
- }\r
- break;\r
-\r
- case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト:\r
- if( this.actFOClear.On進行描画() == 0 )\r
- {\r
- break;\r
- }\r
- return true;\r
- }\r
- return false;\r
- }\r
+ //private bool t進行描画・フェードイン・アウト()\r
+ //{\r
+ // switch( base.eフェーズID )\r
+ // {\r
+ // case CStage.Eフェーズ.共通_フェードイン:\r
+ // if( this.actFI.On進行描画() != 0 )\r
+ // {\r
+ // base.eフェーズID = CStage.Eフェーズ.共通_通常状態;\r
+ // }\r
+ // break;\r
+\r
+ // case CStage.Eフェーズ.共通_フェードアウト:\r
+ // case CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト:\r
+ // if( this.actFO.On進行描画() != 0 )\r
+ // {\r
+ // return true;\r
+ // }\r
+ // break;\r
+\r
+ // case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト:\r
+ // if( this.actFOClear.On進行描画() == 0 )\r
+ // {\r
+ // break;\r
+ // }\r
+ // return true;\r
+ // }\r
+ // return false;\r
+ //}\r
private void t進行描画・レーンフラッシュD()\r
{\r
if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )\r
{\r
this.act譜面スクロール速度.On進行描画();\r
}\r
- private void t入力メソッド記憶( E楽器パート part )\r
- {\r
- if( CDTXMania.Pad.st検知したデバイス.Keyboard )\r
- {\r
- this.b演奏にキーボードを使った[ (int) part ] = true;\r
- }\r
- if( CDTXMania.Pad.st検知したデバイス.Joypad )\r
- {\r
- this.b演奏にジョイパッドを使った[ (int) part ] = true;\r
- }\r
- if( CDTXMania.Pad.st検知したデバイス.MIDIIN )\r
- {\r
- this.b演奏にMIDI入力を使った[ (int) part ] = true;\r
- }\r
- if( CDTXMania.Pad.st検知したデバイス.Mouse )\r
- {\r
- this.b演奏にマウスを使った[ (int) part ] = true;\r
- }\r
- }\r
- private void t入力処理・ギター()\r
+ //private void t入力メソッド記憶( E楽器パート part )\r
+ //{\r
+ // if( CDTXMania.Pad.st検知したデバイス.Keyboard )\r
+ // {\r
+ // this.b演奏にキーボードを使った[ (int) part ] = true;\r
+ // }\r
+ // if( CDTXMania.Pad.st検知したデバイス.Joypad )\r
+ // {\r
+ // this.b演奏にジョイパッドを使った[ (int) part ] = true;\r
+ // }\r
+ // if( CDTXMania.Pad.st検知したデバイス.MIDIIN )\r
+ // {\r
+ // this.b演奏にMIDI入力を使った[ (int) part ] = true;\r
+ // }\r
+ // if( CDTXMania.Pad.st検知したデバイス.Mouse )\r
+ // {\r
+ // this.b演奏にマウスを使った[ (int) part ] = true;\r
+ // }\r
+ //}\r
+ protected override void t入力処理・ギター()\r
{\r
if ( CDTXMania.Pad.b押されている( E楽器パート.GUITAR, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.GUITAR, Eパッド.B ) )\r
{\r
}\r
}\r
}\r
- private void t入力処理・ドラム()\r
+ protected override void t入力処理・ドラム()\r
{\r
for( int nPad = 0; nPad < 10; nPad++ )\r
{\r
}\r
}\r
}\r
- private void t入力処理・ベース()\r
+ protected override void t入力処理・ベース()\r
{\r
if ( CDTXMania.Pad.b押されている( E楽器パート.BASS, Eパッド.Decide ) && CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.B ) )\r
{\r
}\r
\r
\r
-#if true // DAMAGELEVELTUNING\r
- // ----------------------------------\r
- public float[,] fDamageGaugeDelta = { // #23625 2011.1.10 ickw_284: tuned damage/recover factors\r
- // drums, guitar, bass\r
- { 0.004f, 0.006f, 0.006f },\r
- { 0.002f, 0.003f, 0.003f },\r
- { 0.000f, 0.000f, 0.000f },\r
- { -0.020f, -0.030f, -0.030f },\r
- { -0.050f, -0.050f, -0.050f }\r
- };\r
- public float[] fDamageLevelFactor = {\r
- 0.5f, 1.0f, 1.5f\r
- };\r
- // ----------------------------------\r
-#endif\r
-\r
- private void t判定にあわせてゲージを増減する( E楽器パート part, E判定 e今回の判定 )\r
- {\r
- double fDamage;\r
-\r
-#if true // DAMAGELEVELTUNING\r
- switch (e今回の判定)\r
- {\r
- case E判定.Perfect:\r
- case E判定.Great:\r
- case E判定.Good:\r
- case E判定.Poor:\r
- fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
- break;\r
- case E判定.Miss:\r
- fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
- switch (CDTXMania.ConfigIni.eダメージレベル)\r
- {\r
- case Eダメージレベル.少ない:\r
- case Eダメージレベル.普通:\r
- case Eダメージレベル.大きい:\r
- fDamage *= fDamageLevelFactor[(int)CDTXMania.ConfigIni.eダメージレベル];\r
- break;\r
- }\r
- break;\r
-\r
- default:\r
- fDamage = 0.0f;\r
- break;\r
- }\r
-#else // before applying #23625 modifications\r
- switch (e今回の判定)\r
- {\r
- case E判定.Perfect:\r
- fDamage = ( part == E楽器パート.DRUMS ) ? 0.01 : 0.015;\r
- break;\r
-\r
- case E判定.Great:\r
- fDamage = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009;\r
- break;\r
-\r
- case E判定.Good:\r
- fDamage = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003;\r
- break;\r
-\r
- case E判定.Poor:\r
- fDamage = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0;\r
- break;\r
-\r
- case E判定.Miss:\r
- fDamage = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035;\r
- switch( CDTXMania.ConfigIni.eダメージレベル )\r
- {\r
- case Eダメージレベル.少ない:\r
- fDamage *= 0.6;\r
- break;\r
-\r
- case Eダメージレベル.普通:\r
- fDamage *= 1.0;\r
- break;\r
-\r
- case Eダメージレベル.大きい:\r
- fDamage *= 1.6;\r
- break;\r
- }\r
- break;\r
-\r
- default:\r
- fDamage = 0.0;\r
- break;\r
- }\r
-#endif\r
- this.actGauge.db現在のゲージ値 += fDamage;\r
-\r
- if( this.actGauge.db現在のゲージ値 > 1.0 )\r
- this.actGauge.db現在のゲージ値 = 1.0;\r
- }\r
+//#if true // DAMAGELEVELTUNING\r
+// // ----------------------------------\r
+// public float[,] fDamageGaugeDelta = { // #23625 2011.1.10 ickw_284: tuned damage/recover factors\r
+// // drums, guitar, bass\r
+// { 0.004f, 0.006f, 0.006f },\r
+// { 0.002f, 0.003f, 0.003f },\r
+// { 0.000f, 0.000f, 0.000f },\r
+// { -0.020f, -0.030f, -0.030f },\r
+// { -0.050f, -0.050f, -0.050f }\r
+// };\r
+// public float[] fDamageLevelFactor = {\r
+// 0.5f, 1.0f, 1.5f\r
+// };\r
+// // ----------------------------------\r
+//#endif\r
+\r
+// private void t判定にあわせてゲージを増減する( E楽器パート part, E判定 e今回の判定 )\r
+// {\r
+// double fDamage;\r
+\r
+//#if true // DAMAGELEVELTUNING\r
+// switch (e今回の判定)\r
+// {\r
+// case E判定.Perfect:\r
+// case E判定.Great:\r
+// case E判定.Good:\r
+// case E判定.Poor:\r
+// fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
+// break;\r
+// case E判定.Miss:\r
+// fDamage = fDamageGaugeDelta[(int)e今回の判定, (int)part];\r
+// switch (CDTXMania.ConfigIni.eダメージレベル)\r
+// {\r
+// case Eダメージレベル.少ない:\r
+// case Eダメージレベル.普通:\r
+// case Eダメージレベル.大きい:\r
+// fDamage *= fDamageLevelFactor[(int)CDTXMania.ConfigIni.eダメージレベル];\r
+// break;\r
+// }\r
+// break;\r
+\r
+// default:\r
+// fDamage = 0.0f;\r
+// break;\r
+// }\r
+//#else // before applying #23625 modifications\r
+// switch (e今回の判定)\r
+// {\r
+// case E判定.Perfect:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? 0.01 : 0.015;\r
+// break;\r
+\r
+// case E判定.Great:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009;\r
+// break;\r
+\r
+// case E判定.Good:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003;\r
+// break;\r
+\r
+// case E判定.Poor:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0;\r
+// break;\r
+\r
+// case E判定.Miss:\r
+// fDamage = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035;\r
+// switch( CDTXMania.ConfigIni.eダメージレベル )\r
+// {\r
+// case Eダメージレベル.少ない:\r
+// fDamage *= 0.6;\r
+// break;\r
+\r
+// case Eダメージレベル.普通:\r
+// fDamage *= 1.0;\r
+// break;\r
+\r
+// case Eダメージレベル.大きい:\r
+// fDamage *= 1.6;\r
+// break;\r
+// }\r
+// break;\r
+\r
+// default:\r
+// fDamage = 0.0;\r
+// break;\r
+// }\r
+//#endif\r
+// this.actGauge.db現在のゲージ値 += fDamage;\r
+\r
+// if( this.actGauge.db現在のゲージ値 > 1.0 )\r
+// this.actGauge.db現在のゲージ値 = 1.0;\r
+// }\r
//-----------------\r
#endregion\r
}\r