/// </summary>\r
internal partial class CStage演奏画面共通 : CStage\r
{\r
- // members\r
- #region[Constants]\r
- private readonly Eパッド[] eチャンネルtoパッド = new Eパッド[]\r
- {\r
- Eパッド.HH, Eパッド.SD, Eパッド.BD, Eパッド.HT,\r
- Eパッド.LT, Eパッド.CY, Eパッド.FT, Eパッド.HHO,\r
- Eパッド.RD, Eパッド.LC\r
- };\r
- private readonly int[] nチャンネル0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 8, 0 };\r
- public static readonly int[] nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 };\r
- private readonly int[] nパッド0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 8, 0 }; // パッド画像のヒット処理用\r
- private readonly int[] nパッド0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 7, 0 };\r
- private readonly Ech定義[] nパッド0Atoチャンネル0A = new Ech定義[]\r
- {\r
- Ech定義.HiHatClose,\r
- Ech定義.Snare,\r
- Ech定義.BassDrum,\r
- Ech定義.HighTom,\r
- Ech定義.LowTom,\r
- Ech定義.FloorTom,\r
- Ech定義.Cymbal,\r
- Ech定義.HiHatOpen,\r
- Ech定義.RideCymbal,\r
- Ech定義.LeftCymbal\r
- };\r
- #endregion\r
-\r
#region [Member_Activities]\r
- private CAct演奏AVI actAVI;\r
- private CAct演奏BGA actBGA;\r
- private CAct演奏チップファイアGB actChipFireGB;\r
- private CAct演奏Combo共通 actCombo;\r
- private CAct演奏Danger共通 actDANGER;\r
- private CActFIFOBlack actFI;\r
- private CActFIFOBlack actFO;\r
- private CActFIFOWhite actFOClear;\r
- private CAct演奏ゲージ共通 actGauge;\r
- private CAct演奏判定文字列共通 actJudgeString;\r
- private CAct演奏DrumsレーンフラッシュD actLaneFlushD;\r
- private CAct演奏レーンフラッシュGB共通 actLaneFlushGB;\r
- private CAct演奏パネル文字列 actPanel;\r
- private CAct演奏演奏情報 actPlayInfo;\r
- private CAct演奏RGB共通 actRGB;\r
- private CAct演奏スコア共通 actScore;\r
- private CAct演奏ステージ失敗 actStageFailed;\r
- private CAct演奏ステータスパネル共通 actStatusPanels;\r
- private CAct演奏WailingBonus共通 actWailingBonus;\r
- private CAct演奏スクロール速度 act譜面スクロール速度;\r
- private CAct演奏DrumsチップファイアD actChipFireD; // drums only\r
- private CAct演奏グラフ actGraph; // drums only #24074 2011.01.23 add ikanick\r
- private CAct演奏Drumsパッド actPad; // drums only\r
- private CAct演奏Lane actLane;\r
+ CAct演奏AVI actAVI;\r
+ CAct演奏BGA actBGA;\r
+ CAct演奏チップファイアGB actChipFireGB;\r
+ CAct演奏Combo共通 actCombo;\r
+ CAct演奏Danger共通 actDANGER;\r
+ CActFIFOBlack actFI;\r
+ CActFIFOBlack actFO;\r
+ CActFIFOWhite actFOClear;\r
+ CAct演奏ゲージ共通 actGauge;\r
+ CAct演奏判定文字列共通 actJudgeString;\r
+ CAct演奏DrumsレーンフラッシュD actLaneFlushD;\r
+ CAct演奏レーンフラッシュGB共通 actLaneFlushGB;\r
+ CActオプションパネル actOptionPanel;\r
+ CAct演奏パネル文字列 actPanel;\r
+ CAct演奏演奏情報 actPlayInfo;\r
+ CAct演奏RGB共通 actRGB;\r
+ CAct演奏スコア共通 actScore;\r
+ CAct演奏ステージ失敗 actStageFailed;\r
+ CAct演奏WailingBonus共通 actWailingBonus;\r
+ CAct演奏スクロール速度 act譜面スクロール速度;\r
+ CAct演奏DrumsチップファイアD actChipFireD;\r
+ // #24074 2011.01.23 add ikanick\r
+ CAct演奏グラフ actGraph;\r
+ CAct演奏Drumsパッド actPad;\r
+ CAct演奏Lane actLane;\r
#endregion\r
\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
-\r
- private E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
-\r
- private STDGBVALUE<CHitCountOfRank> nヒット数_Auto含まない;\r
- private STDGBVALUE<CHitCountOfRank> nヒット数_Auto含む;\r
- private STDGBVALUE<CHitCountOfRank> nヒット数_TargetGhost; // #35411 2015.08.21 chnmr0 add\r
- private STDGBVALUE<int> nコンボ数_TargetGhost;\r
- private STDGBVALUE<int> n最大コンボ数_TargetGhost;\r
- private int n現在のトップChip = -1;\r
- private int[] n最後に再生したBGMの実WAV番号 = new int[50];\r
- private Ech定義 e最後に再生した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 STLANEVALUE<int> n最後に再生した実WAV番号; // #26388 2011.11.8 yyagi: change "n最後に再生した実WAV番号.GUITAR" and "n最後に再生した実WAV番号.BASS"\r
-\r
- private volatile Queue<STMixer> queueMixerSound; // #24820 2013.1.21 yyagi まずは単純にAdd/Removeを1個のキューでまとめて管理するやり方で設計する\r
- private DateTime dtLastQueueOperation;\r
- private bool bIsDirectSound;\r
- private double db再生速度;\r
- private bool bValidScore;\r
-\r
- private STDGBVALUE<Queue<CChip>> queWailing;\r
- private STDGBVALUE<CChip> r現在の歓声Chip;\r
- private CChip[] r空打ちドラムチップ = new CChip[10];\r
- private CChip r現在の空うちギターChip;\r
- private ST空打ち r現在の空うちドラムChip;\r
- private CChip r現在の空うちベースChip;\r
- private CChip r次にくるギターChip;\r
- private CChip r次にくるベースChip;\r
-\r
- private CTexture txWailing枠;\r
- private CTexture txチップ;\r
- private CTexture txチップGB;\r
- private CTexture txヒットバー;\r
- private CTexture txヒットバーGB;\r
- private CTexture tx背景;\r
-\r
- private STDGBVALUE<int> nInputAdjustTimeMs; // #23580 2011.1.3 yyagi\r
- private STAUTOPLAY bIsAutoPlay; // #24239 2011.1.23 yyagi\r
- private CInvisibleChip cInvisibleChip;\r
- private bool bUseOSTimer;\r
- private E判定表示優先度 e判定表示優先度;\r
- private CWailingChip共通[] cWailingChip;\r
-\r
- private STDGBVALUE<CScoreIni.C演奏記録> record;\r
-\r
- // private CTexture txチップGB;\r
- // private CTexture txレーンフレームGB; // drums only\r
- private bool bフィルイン中; // drums only\r
-\r
- // Constructor\r
+ bool bPAUSE;\r
+ STDGBSValue<bool> b演奏にMIDI入力を使った;\r
+ STDGBSValue<bool> b演奏にキーボードを使った;\r
+ STDGBSValue<bool> b演奏にジョイパッドを使った;\r
+ STDGBSValue<bool> b演奏にマウスを使った;\r
+\r
+ CCounter ctWailingチップ模様アニメ;\r
+ STDGBSValue<CCounter> ctチップ模様アニメ;\r
+\r
+ E演奏画面の戻り値 eフェードアウト完了時の戻り値;\r
+\r
+ STDGBSValue<CHitCountOfRank> nヒット数_Auto含まない;\r
+ STDGBSValue<CHitCountOfRank> nヒット数_Auto含む;\r
+ // #35411 2015.08.21 chnmr0 add\r
+ STDGBSValue<CHitCountOfRank> nヒット数_TargetGhost;\r
+ STDGBSValue<int> nコンボ数_TargetGhost;\r
+ STDGBSValue<int> n最大コンボ数_TargetGhost;\r
+ int n現在のトップChip = -1;\r
+ int[] n最後に再生したBGMの実WAV番号 = new int[50];\r
+ EChannel e最後に再生したHHのチャンネル番号;\r
+ // #23921 2011.1.4 yyagi: change "int" to "List<int>", for recording multiple wav No.\r
+ List<int> L最後に再生したHHの実WAV番号;\r
+ // #26388 2011.11.8 yyagi: change "n最後に再生した実WAV番号.GUITAR" and "n最後に再生した実WAV番号.BASS"\r
+ STPadValue<int> n最後に再生した実WAV番号;\r
+ // #24820 2013.1.21 yyagi まずは単純にAdd/Removeを1個のキューでまとめて管理するやり方で設計する\r
+ volatile Queue<STMixer> queueMixerSound;\r
+ DateTime dtLastQueueOperation;\r
+ bool bIsDirectSound;\r
+ double db再生速度;\r
+ bool bValidScore;\r
+ bool bフィルイン中; // drums only\r
+\r
+ STDGBSValue<Queue<CChip>> queWailing;\r
+ STDGBSValue<CChip> r現在の歓声Chip;\r
+ STPadValue<CChip> r空打ちドラムチップ = new STPadValue<CChip>();\r
+ CChip r現在の空うちギターChip;\r
+ ST空打ち r現在の空うちドラムChip;\r
+ CChip r現在の空うちベースChip;\r
+ CChip r次にくるギターChip;\r
+ CChip r次にくるベースChip;\r
+\r
+ CTexture txWailing枠;\r
+ CTexture txチップ;\r
+ CTexture txチップGB;\r
+ CTexture txヒットバー;\r
+ CTexture txヒットバーGB;\r
+ CTexture tx背景;\r
+\r
+ CInvisibleChip cInvisibleChip;\r
+ CWailingChip共通[] cWailingChip;\r
+\r
+ STDGBSValue<CScoreIni.C演奏記録> record;\r
+\r
public CStage演奏画面共通()\r
{\r
base.eステージID = CStage.Eステージ.演奏;\r
base.list子Activities.Add(this.actBGA = new CAct演奏BGA());\r
base.list子Activities.Add(this.actPanel = new CAct演奏パネル文字列());\r
base.list子Activities.Add(this.act譜面スクロール速度 = new CAct演奏スクロール速度());\r
- base.list子Activities.Add(this.actStatusPanels = new CAct演奏ステータスパネル共通());\r
base.list子Activities.Add(this.actWailingBonus = new CAct演奏WailingBonus共通());\r
base.list子Activities.Add(this.actScore = new CAct演奏スコア共通());\r
base.list子Activities.Add(this.actRGB = new CAct演奏RGB共通());\r
base.list子Activities.Add(this.actLaneFlushGB = new CAct演奏レーンフラッシュGB共通());\r
base.list子Activities.Add(this.actJudgeString = new CAct演奏判定文字列共通());\r
base.list子Activities.Add(this.actGauge = new CAct演奏ゲージ共通());\r
- base.list子Activities.Add(this.actGraph = new CAct演奏グラフ()); // #24074 2011.01.23 add ikanick\r
+ base.list子Activities.Add(this.actGraph = new CAct演奏グラフ());\r
base.list子Activities.Add(this.actCombo = new CAct演奏Combo共通());\r
base.list子Activities.Add(this.actPlayInfo = new CAct演奏演奏情報());\r
base.list子Activities.Add(this.actFI = new CActFIFOBlack());\r
base.list子Activities.Add(this.actFO = new CActFIFOBlack());\r
base.list子Activities.Add(this.actFOClear = new CActFIFOWhite());\r
base.list子Activities.Add(this.actLane = new CAct演奏Lane());\r
+ list子Activities.Add(actOptionPanel = new CActオプションパネル(EOptionPanelDirection.Vertical));\r
}\r
\r
- // メソッド\r
#region [ PlayRecordSave ]\r
private void t演奏結果を格納する_ドラム()\r
{\r
record.Drums = new CScoreIni.C演奏記録();\r
CScoreIni.C演奏記録 Drums = Record.Drums;\r
+ bool allauto = CDTXMania.Instance.ConfigIni.bIsAutoPlay(EPart.Drums);\r
if (CDTXMania.Instance.DTX.bチップがある.Drums && CDTXMania.Instance.ConfigIni.bDrums有効)\r
{\r
- Drums.nスコア = (long)this.actScore.Get(E楽器パート.DRUMS);\r
- Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(CDTXMania.Instance.DTX.LEVEL.Drums, CDTXMania.Instance.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.actCombo.dgbコンボ数.Drums.n最高値, E楽器パート.DRUMS, bIsAutoPlay);\r
- Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.Instance.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.nヒット数_Auto含まない.Drums.Great, this.nヒット数_Auto含まない.Drums.Good, this.nヒット数_Auto含まない.Drums.Poor, this.nヒット数_Auto含まない.Drums.Miss, E楽器パート.DRUMS, bIsAutoPlay);\r
- Drums.nPerfect数 = CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数_Auto含む.Drums.Perfect : this.nヒット数_Auto含まない.Drums.Perfect;\r
- Drums.nGreat数 = CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数_Auto含む.Drums.Great : this.nヒット数_Auto含まない.Drums.Great;\r
- Drums.nGood数 = CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数_Auto含む.Drums.Good : this.nヒット数_Auto含まない.Drums.Good;\r
- Drums.nPoor数 = CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数_Auto含む.Drums.Poor : this.nヒット数_Auto含まない.Drums.Poor;\r
- Drums.nMiss数 = CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数_Auto含む.Drums.Miss : this.nヒット数_Auto含まない.Drums.Miss;\r
+ Drums.nスコア = (long)this.actScore.Get(EPart.Drums);\r
+ Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(CDTXMania.Instance.DTX.LEVEL.Drums, CDTXMania.Instance.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect,\r
+ this.actCombo.dgbコンボ数.Drums.n最高値,\r
+ EPart.Drums);\r
+ Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.Instance.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.nヒット数_Auto含まない.Drums.Great, this.nヒット数_Auto含まない.Drums.Good, this.nヒット数_Auto含まない.Drums.Poor, this.nヒット数_Auto含まない.Drums.Miss, EPart.Drums, true);\r
+ Drums.nPerfect数 = allauto ? this.nヒット数_Auto含む.Drums.Perfect : this.nヒット数_Auto含まない.Drums.Perfect;\r
+ Drums.nGreat数 = allauto ? this.nヒット数_Auto含む.Drums.Great : this.nヒット数_Auto含まない.Drums.Great;\r
+ Drums.nGood数 = allauto ? this.nヒット数_Auto含む.Drums.Good : this.nヒット数_Auto含まない.Drums.Good;\r
+ Drums.nPoor数 = allauto ? this.nヒット数_Auto含む.Drums.Poor : this.nヒット数_Auto含まない.Drums.Poor;\r
+ Drums.nMiss数 = allauto ? this.nヒット数_Auto含む.Drums.Miss : this.nヒット数_Auto含まない.Drums.Miss;\r
Drums.nPerfect数_Auto含まない = this.nヒット数_Auto含まない.Drums.Perfect;\r
Drums.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Drums.Great;\r
Drums.nGood数_Auto含まない = this.nヒット数_Auto含まない.Drums.Good;\r
Drums.nMiss数_Auto含まない = this.nヒット数_Auto含まない.Drums.Miss;\r
Drums.n最大コンボ数 = this.actCombo.dgbコンボ数.Drums.n最高値;\r
Drums.n全チップ数 = CDTXMania.Instance.DTX.n可視チップ数.Drums;\r
- for (int i = 0; i < (int)Eレーン.MAX; i++)\r
+ for ( EPad i = EPad.Min; i < EPad.BassPadMax; i++ )\r
{\r
- Drums.bAutoPlay[i] = bIsAutoPlay[i];\r
+ Drums.bAutoPlay[i] = CDTXMania.Instance.ConfigIni.bAutoPlay[i];\r
}\r
Drums.bTight = CDTXMania.Instance.ConfigIni.bTight;\r
- for (E楽器パート i = E楽器パート.DRUMS; i <= E楽器パート.BASS; i++)\r
+ for (EPart i = EPart.Drums; i <= EPart.Bass; i++)\r
{\r
- Drums.bSudden[i] = CDTXMania.Instance.ConfigIni.bSudden[i];\r
- Drums.bHidden[i] = CDTXMania.Instance.ConfigIni.bHidden[i];\r
- Drums.eInvisible[i] = CDTXMania.Instance.ConfigIni.eInvisible[i];\r
+ Drums.eSudHidInv[i] = CDTXMania.Instance.ConfigIni.eSudHidInv[i];\r
Drums.bReverse[i] = CDTXMania.Instance.ConfigIni.bReverse[i];\r
Drums.eRandom[i] = CDTXMania.Instance.ConfigIni.eRandom[i];\r
Drums.bLight[i] = CDTXMania.Instance.ConfigIni.bLight[i];\r
- Drums.bLeft[i] = CDTXMania.Instance.ConfigIni.bLeft[i];\r
- Drums.f譜面スクロール速度[i] = ((float)(CDTXMania.Instance.ConfigIni.n譜面スクロール速度[i] + 1)) * 0.5f;\r
+ Drums.f譜面スクロール速度[i] = ((float)(CDTXMania.Instance.ConfigIni.nScrollSpeed[i] + 1)) * 0.5f;\r
}\r
Drums.eDark = CDTXMania.Instance.ConfigIni.eDark;\r
- Drums.n演奏速度分子 = CDTXMania.Instance.ConfigIni.n演奏速度;\r
+ Drums.n演奏速度分子 = CDTXMania.Instance.ConfigIni.nPlaySpeed;\r
Drums.n演奏速度分母 = 20;\r
- Drums.eHHGroup = CDTXMania.Instance.ConfigIni.eHHGroup;\r
- Drums.eFTGroup = CDTXMania.Instance.ConfigIni.eFTGroup;\r
- Drums.eCYGroup = CDTXMania.Instance.ConfigIni.eCYGroup;\r
- Drums.eHitSoundPriorityHH = CDTXMania.Instance.ConfigIni.eHitSoundPriorityHH;\r
- Drums.eHitSoundPriorityFT = CDTXMania.Instance.ConfigIni.eHitSoundPriorityFT;\r
- Drums.eHitSoundPriorityCY = CDTXMania.Instance.ConfigIni.eHitSoundPriorityCY;\r
+ Drums.e譜面レーンタイプ.Drums = CDTXMania.Instance.DTX.n使用レーン数.Drums;\r
+ Drums.e譜面レーンタイプ.Guitar= CDTXMania.Instance.DTX.n使用レーン数.Guitar;\r
+ Drums.e譜面レーンタイプ.Bass = CDTXMania.Instance.DTX.n使用レーン数.Bass;\r
+ Drums.eHHGroup = CDTXMania.Instance.ConfigIni.eHHGroup.Value;\r
+ Drums.eFTGroup = CDTXMania.Instance.ConfigIni.eFTGroup.Value;\r
+ Drums.eCYGroup = CDTXMania.Instance.ConfigIni.eCYGroup.Value;\r
+ Drums.eHitSoundPriorityHH = CDTXMania.Instance.ConfigIni.eHitSoundPriorityHH.Value;\r
+ Drums.eHitSoundPriorityFT = CDTXMania.Instance.ConfigIni.eHitSoundPriorityFT.Value;\r
+ Drums.eHitSoundPriorityCY = CDTXMania.Instance.ConfigIni.eHitSoundPriorityCY.Value;\r
Drums.bGuitar有効 = CDTXMania.Instance.ConfigIni.bGuitar有効;\r
Drums.bDrums有効 = CDTXMania.Instance.ConfigIni.bDrums有効;\r
- Drums.bSTAGEFAILED有効 = CDTXMania.Instance.ConfigIni.bSTAGEFAILED有効;\r
- Drums.eダメージレベル = CDTXMania.Instance.ConfigIni.eダメージレベル;\r
+ Drums.bSTAGEFAILED有効 = CDTXMania.Instance.ConfigIni.bStageFailed;\r
+ Drums.eダメージレベル = CDTXMania.Instance.ConfigIni.eDamageLevel;\r
+ Drums.eMetronome = CDTXMania.Instance.ConfigIni.eClickType;\r
Drums.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Drums;\r
Drums.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Drums;\r
Drums.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Drums;\r
Drums.nPoorになる範囲ms = CDTXMania.Instance.nPoor範囲ms;\r
Drums.strDTXManiaのバージョン = CDTXMania.VERSION;\r
Drums.最終更新日時 = DateTime.Now.ToString();\r
- Drums.Hash = CScoreIni.t演奏セクションのMD5を求めて返す(Drums);\r
- Drums.nRisky = CDTXMania.Instance.ConfigIni.nRisky; // #35461 chnmr0 add\r
- Drums.bギターとベースを入れ替えた = CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass; // #35417 chnmr0 add\r
+ // #35461 chnmr0 add\r
+ Drums.nRisky = CDTXMania.Instance.ConfigIni.nRisky;\r
+ // #35417 chnmr0 add\r
+ Drums.bギターとベースを入れ替えた = CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass;\r
}\r
}\r
private void t演奏結果を格納する_ギター()\r
{\r
record.Guitar = new CScoreIni.C演奏記録();\r
CScoreIni.C演奏記録 Guitar = Record.Guitar;\r
+ bool allauto = CDTXMania.Instance.ConfigIni.bIsAutoPlay(EPart.Guitar);\r
if (CDTXMania.Instance.DTX.bチップがある.Guitar)\r
{\r
- Guitar.nスコア = (long)this.actScore.Get(E楽器パート.GUITAR);\r
- Guitar.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(CDTXMania.Instance.DTX.LEVEL.Guitar, CDTXMania.Instance.DTX.n可視チップ数.Guitar, this.nヒット数_Auto含まない.Guitar.Perfect, this.actCombo.dgbコンボ数.Guitar.n最高値, E楽器パート.GUITAR, bIsAutoPlay);\r
- Guitar.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.Instance.DTX.n可視チップ数.Guitar, this.nヒット数_Auto含まない.Guitar.Perfect, this.nヒット数_Auto含まない.Guitar.Great, this.nヒット数_Auto含まない.Guitar.Good, this.nヒット数_Auto含まない.Guitar.Poor, this.nヒット数_Auto含まない.Guitar.Miss, E楽器パート.GUITAR, bIsAutoPlay);\r
- Guitar.nPerfect数 = CDTXMania.Instance.ConfigIni.bギターが全部オートプレイである ? this.nヒット数_Auto含む.Guitar.Perfect : this.nヒット数_Auto含まない.Guitar.Perfect;\r
- Guitar.nGreat数 = CDTXMania.Instance.ConfigIni.bギターが全部オートプレイである ? this.nヒット数_Auto含む.Guitar.Great : this.nヒット数_Auto含まない.Guitar.Great;\r
- Guitar.nGood数 = CDTXMania.Instance.ConfigIni.bギターが全部オートプレイである ? this.nヒット数_Auto含む.Guitar.Good : this.nヒット数_Auto含まない.Guitar.Good;\r
- Guitar.nPoor数 = CDTXMania.Instance.ConfigIni.bギターが全部オートプレイである ? this.nヒット数_Auto含む.Guitar.Poor : this.nヒット数_Auto含まない.Guitar.Poor;\r
- Guitar.nMiss数 = CDTXMania.Instance.ConfigIni.bギターが全部オートプレイである ? this.nヒット数_Auto含む.Guitar.Miss : this.nヒット数_Auto含まない.Guitar.Miss;\r
+ Guitar.nスコア = (long)this.actScore.Get(EPart.Guitar);\r
+ Guitar.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(CDTXMania.Instance.DTX.LEVEL.Guitar, CDTXMania.Instance.DTX.n可視チップ数.Guitar, this.nヒット数_Auto含まない.Guitar.Perfect, this.actCombo.dgbコンボ数.Guitar.n最高値, EPart.Guitar);\r
+ Guitar.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.Instance.DTX.n可視チップ数.Guitar, this.nヒット数_Auto含まない.Guitar.Perfect, this.nヒット数_Auto含まない.Guitar.Great, this.nヒット数_Auto含まない.Guitar.Good, this.nヒット数_Auto含まない.Guitar.Poor, this.nヒット数_Auto含まない.Guitar.Miss, EPart.Guitar, true);\r
+ Guitar.nPerfect数 = allauto ? this.nヒット数_Auto含む.Guitar.Perfect : this.nヒット数_Auto含まない.Guitar.Perfect;\r
+ Guitar.nGreat数 = allauto ? this.nヒット数_Auto含む.Guitar.Great : this.nヒット数_Auto含まない.Guitar.Great;\r
+ Guitar.nGood数 = allauto ? this.nヒット数_Auto含む.Guitar.Good : this.nヒット数_Auto含まない.Guitar.Good;\r
+ Guitar.nPoor数 = allauto ? this.nヒット数_Auto含む.Guitar.Poor : this.nヒット数_Auto含まない.Guitar.Poor;\r
+ Guitar.nMiss数 = allauto ? this.nヒット数_Auto含む.Guitar.Miss : this.nヒット数_Auto含まない.Guitar.Miss;\r
Guitar.nPerfect数_Auto含まない = this.nヒット数_Auto含まない.Guitar.Perfect;\r
Guitar.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Guitar.Great;\r
Guitar.nGood数_Auto含まない = this.nヒット数_Auto含まない.Guitar.Good;\r
Guitar.nMiss数_Auto含まない = this.nヒット数_Auto含まない.Guitar.Miss;\r
Guitar.n最大コンボ数 = this.actCombo.dgbコンボ数.Guitar.n最高値;\r
Guitar.n全チップ数 = CDTXMania.Instance.DTX.n可視チップ数.Guitar;\r
- for (int i = 0; i < (int)Eレーン.MAX; i++)\r
+ for (EPad i = EPad.Min; i < EPad.BassPadMax; i++)\r
{\r
- Guitar.bAutoPlay[i] = bIsAutoPlay[i];\r
+ Guitar.bAutoPlay[i] = CDTXMania.Instance.ConfigIni.bAutoPlay[i];\r
}\r
Guitar.bTight = CDTXMania.Instance.ConfigIni.bTight;\r
- for (E楽器パート i = E楽器パート.DRUMS; i <= E楽器パート.BASS; i++)\r
+ for (EPart i = EPart.Drums; i <= EPart.Bass; i++)\r
{\r
- Guitar.bSudden[i] = CDTXMania.Instance.ConfigIni.bSudden[i];\r
- Guitar.bHidden[i] = CDTXMania.Instance.ConfigIni.bHidden[i];\r
- Guitar.eInvisible[i] = CDTXMania.Instance.ConfigIni.eInvisible[i];\r
+ Guitar.eSudHidInv[i] = CDTXMania.Instance.ConfigIni.eSudHidInv[i];\r
Guitar.bReverse[i] = CDTXMania.Instance.ConfigIni.bReverse[i];\r
Guitar.eRandom[i] = CDTXMania.Instance.ConfigIni.eRandom[i];\r
Guitar.bLight[i] = CDTXMania.Instance.ConfigIni.bLight[i];\r
- Guitar.bLeft[i] = CDTXMania.Instance.ConfigIni.bLeft[i];\r
- Guitar.f譜面スクロール速度[i] = ((float)(CDTXMania.Instance.ConfigIni.n譜面スクロール速度[i] + 1)) * 0.5f;\r
+ Guitar.f譜面スクロール速度[i] = ((float)(CDTXMania.Instance.ConfigIni.nScrollSpeed[i] + 1)) * 0.5f;\r
}\r
Guitar.eDark = CDTXMania.Instance.ConfigIni.eDark;\r
- Guitar.n演奏速度分子 = CDTXMania.Instance.ConfigIni.n演奏速度;\r
+ Guitar.n演奏速度分子 = CDTXMania.Instance.ConfigIni.nPlaySpeed;\r
Guitar.n演奏速度分母 = 20;\r
Guitar.eHHGroup = CDTXMania.Instance.ConfigIni.eHHGroup;\r
Guitar.eFTGroup = CDTXMania.Instance.ConfigIni.eFTGroup;\r
Guitar.eCYGroup = CDTXMania.Instance.ConfigIni.eCYGroup;\r
+ Guitar.e譜面レーンタイプ.Drums = CDTXMania.Instance.DTX.n使用レーン数.Drums;\r
+ Guitar.e譜面レーンタイプ.Guitar = CDTXMania.Instance.DTX.n使用レーン数.Guitar;\r
+ Guitar.e譜面レーンタイプ.Bass = CDTXMania.Instance.DTX.n使用レーン数.Bass;\r
Guitar.eHitSoundPriorityHH = CDTXMania.Instance.ConfigIni.eHitSoundPriorityHH;\r
Guitar.eHitSoundPriorityFT = CDTXMania.Instance.ConfigIni.eHitSoundPriorityFT;\r
Guitar.eHitSoundPriorityCY = CDTXMania.Instance.ConfigIni.eHitSoundPriorityCY;\r
Guitar.bGuitar有効 = CDTXMania.Instance.ConfigIni.bGuitar有効;\r
Guitar.bDrums有効 = CDTXMania.Instance.ConfigIni.bDrums有効;\r
- Guitar.bSTAGEFAILED有効 = CDTXMania.Instance.ConfigIni.bSTAGEFAILED有効;\r
- Guitar.eダメージレベル = CDTXMania.Instance.ConfigIni.eダメージレベル;\r
+ Guitar.bSTAGEFAILED有効 = CDTXMania.Instance.ConfigIni.bStageFailed;\r
+ Guitar.eダメージレベル = CDTXMania.Instance.ConfigIni.eDamageLevel;\r
+ Guitar.eMetronome = CDTXMania.Instance.ConfigIni.eClickType;\r
Guitar.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Guitar;\r
Guitar.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Guitar;\r
Guitar.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Guitar;\r
Guitar.nPoorになる範囲ms = CDTXMania.Instance.nPoor範囲ms;\r
Guitar.strDTXManiaのバージョン = CDTXMania.VERSION;\r
Guitar.最終更新日時 = DateTime.Now.ToString();\r
- Guitar.Hash = CScoreIni.t演奏セクションのMD5を求めて返す(Guitar);\r
- Guitar.bギターとベースを入れ替えた = CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass; // #35417 chnmr0 add\r
+ // #35417 chnmr0 add\r
+ Guitar.bギターとベースを入れ替えた = CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass;\r
}\r
}\r
private void t演奏結果を格納する_ベース()\r
{\r
record.Bass = new CScoreIni.C演奏記録();\r
CScoreIni.C演奏記録 Bass = Record.Bass;\r
+ bool allauto = CDTXMania.Instance.ConfigIni.bIsAutoPlay(EPart.Bass);\r
if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
{\r
- Bass.nスコア = (long)this.actScore.Get(E楽器パート.BASS);\r
- Bass.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(CDTXMania.Instance.DTX.LEVEL.Bass, CDTXMania.Instance.DTX.n可視チップ数.Bass, this.nヒット数_Auto含まない.Bass.Perfect, this.actCombo.dgbコンボ数.Bass.n最高値, E楽器パート.BASS, bIsAutoPlay);\r
- Bass.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.Instance.DTX.n可視チップ数.Bass, this.nヒット数_Auto含まない.Bass.Perfect, this.nヒット数_Auto含まない.Bass.Great, this.nヒット数_Auto含まない.Bass.Good, this.nヒット数_Auto含まない.Bass.Poor, this.nヒット数_Auto含まない.Bass.Miss, E楽器パート.BASS, bIsAutoPlay);\r
- Bass.nPerfect数 = CDTXMania.Instance.ConfigIni.bベースが全部オートプレイである ? this.nヒット数_Auto含む.Bass.Perfect : this.nヒット数_Auto含まない.Bass.Perfect;\r
- Bass.nGreat数 = CDTXMania.Instance.ConfigIni.bベースが全部オートプレイである ? this.nヒット数_Auto含む.Bass.Great : this.nヒット数_Auto含まない.Bass.Great;\r
- Bass.nGood数 = CDTXMania.Instance.ConfigIni.bベースが全部オートプレイである ? this.nヒット数_Auto含む.Bass.Good : this.nヒット数_Auto含まない.Bass.Good;\r
- Bass.nPoor数 = CDTXMania.Instance.ConfigIni.bベースが全部オートプレイである ? this.nヒット数_Auto含む.Bass.Poor : this.nヒット数_Auto含まない.Bass.Poor;\r
- Bass.nMiss数 = CDTXMania.Instance.ConfigIni.bベースが全部オートプレイである ? this.nヒット数_Auto含む.Bass.Miss : this.nヒット数_Auto含まない.Bass.Miss;\r
+ Bass.nスコア = (long)this.actScore.Get(EPart.Bass);\r
+ Bass.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(CDTXMania.Instance.DTX.LEVEL.Bass, CDTXMania.Instance.DTX.n可視チップ数.Bass, this.nヒット数_Auto含まない.Bass.Perfect, this.actCombo.dgbコンボ数.Bass.n最高値, EPart.Bass);\r
+ Bass.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.Instance.DTX.n可視チップ数.Bass, this.nヒット数_Auto含まない.Bass.Perfect, this.nヒット数_Auto含まない.Bass.Great, this.nヒット数_Auto含まない.Bass.Good, this.nヒット数_Auto含まない.Bass.Poor, this.nヒット数_Auto含まない.Bass.Miss, EPart.Bass, true);\r
+ Bass.nPerfect数 = allauto ? this.nヒット数_Auto含む.Bass.Perfect : this.nヒット数_Auto含まない.Bass.Perfect;\r
+ Bass.nGreat数 = allauto ? this.nヒット数_Auto含む.Bass.Great : this.nヒット数_Auto含まない.Bass.Great;\r
+ Bass.nGood数 = allauto ? this.nヒット数_Auto含む.Bass.Good : this.nヒット数_Auto含まない.Bass.Good;\r
+ Bass.nPoor数 = allauto ? this.nヒット数_Auto含む.Bass.Poor : this.nヒット数_Auto含まない.Bass.Poor;\r
+ Bass.nMiss数 = allauto ? this.nヒット数_Auto含む.Bass.Miss : this.nヒット数_Auto含まない.Bass.Miss;\r
Bass.nPerfect数_Auto含まない = this.nヒット数_Auto含まない.Bass.Perfect;\r
Bass.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Bass.Great;\r
Bass.nGood数_Auto含まない = this.nヒット数_Auto含まない.Bass.Good;\r
Bass.nMiss数_Auto含まない = this.nヒット数_Auto含まない.Bass.Miss;\r
Bass.n最大コンボ数 = this.actCombo.dgbコンボ数.Bass.n最高値;\r
Bass.n全チップ数 = CDTXMania.Instance.DTX.n可視チップ数.Bass;\r
- for (int i = 0; i < (int)Eレーン.MAX; i++)\r
+ for (EPad i = EPad.Min; i < EPad.BassPadMax; i++)\r
{\r
- Bass.bAutoPlay[i] = bIsAutoPlay[i];\r
+ Bass.bAutoPlay[i] = CDTXMania.Instance.ConfigIni.bAutoPlay[i];\r
}\r
Bass.bTight = CDTXMania.Instance.ConfigIni.bTight;\r
- for (E楽器パート i = E楽器パート.DRUMS; i <= E楽器パート.BASS; i++)\r
+ for (EPart i = EPart.Drums; i <= EPart.Bass; i++)\r
{\r
- Bass.bSudden[i] = CDTXMania.Instance.ConfigIni.bSudden[i];\r
- Bass.bHidden[i] = CDTXMania.Instance.ConfigIni.bHidden[i];\r
- Bass.eInvisible[i] = CDTXMania.Instance.ConfigIni.eInvisible[i];\r
+ Bass.eSudHidInv[i] = CDTXMania.Instance.ConfigIni.eSudHidInv[i];\r
Bass.bReverse[i] = CDTXMania.Instance.ConfigIni.bReverse[i];\r
Bass.eRandom[i] = CDTXMania.Instance.ConfigIni.eRandom[i];\r
Bass.bLight[i] = CDTXMania.Instance.ConfigIni.bLight[i];\r
- Bass.bLeft[i] = CDTXMania.Instance.ConfigIni.bLeft[i];\r
- Bass.f譜面スクロール速度[i] = ((float)(CDTXMania.Instance.ConfigIni.n譜面スクロール速度[i] + 1)) * 0.5f;\r
+ Bass.f譜面スクロール速度[i] = ((float)(CDTXMania.Instance.ConfigIni.nScrollSpeed[i] + 1)) * 0.5f;\r
}\r
Bass.eDark = CDTXMania.Instance.ConfigIni.eDark;\r
- Bass.n演奏速度分子 = CDTXMania.Instance.ConfigIni.n演奏速度;\r
+ Bass.n演奏速度分子 = CDTXMania.Instance.ConfigIni.nPlaySpeed;\r
Bass.n演奏速度分母 = 20;\r
Bass.eHHGroup = CDTXMania.Instance.ConfigIni.eHHGroup;\r
Bass.eFTGroup = CDTXMania.Instance.ConfigIni.eFTGroup;\r
Bass.eCYGroup = CDTXMania.Instance.ConfigIni.eCYGroup;\r
+ Bass.e譜面レーンタイプ.Drums = CDTXMania.Instance.DTX.n使用レーン数.Drums;\r
+ Bass.e譜面レーンタイプ.Guitar = CDTXMania.Instance.DTX.n使用レーン数.Guitar;\r
+ Bass.e譜面レーンタイプ.Bass = CDTXMania.Instance.DTX.n使用レーン数.Bass;\r
Bass.eHitSoundPriorityHH = CDTXMania.Instance.ConfigIni.eHitSoundPriorityHH;\r
Bass.eHitSoundPriorityFT = CDTXMania.Instance.ConfigIni.eHitSoundPriorityFT;\r
Bass.eHitSoundPriorityCY = CDTXMania.Instance.ConfigIni.eHitSoundPriorityCY;\r
Bass.bGuitar有効 = CDTXMania.Instance.ConfigIni.bGuitar有効;\r
Bass.bDrums有効 = CDTXMania.Instance.ConfigIni.bDrums有効;\r
- Bass.bSTAGEFAILED有効 = CDTXMania.Instance.ConfigIni.bSTAGEFAILED有効;\r
- Bass.eダメージレベル = CDTXMania.Instance.ConfigIni.eダメージレベル;\r
- Bass.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Bass; // #24280 2011.1.29 yyagi\r
- Bass.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Bass; //\r
- Bass.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Bass; //\r
- Bass.b演奏にマウスを使用した = this.b演奏にマウスを使った.Bass; //\r
+ Bass.bSTAGEFAILED有効 = CDTXMania.Instance.ConfigIni.bStageFailed;\r
+ Bass.eダメージレベル = CDTXMania.Instance.ConfigIni.eDamageLevel;\r
+ // #24280 2011.1.29 yyagi\r
+ Bass.eMetronome = CDTXMania.Instance.ConfigIni.eClickType;\r
+ Bass.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Bass;\r
+ Bass.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Bass;\r
+ Bass.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Bass;\r
+ Bass.b演奏にマウスを使用した = this.b演奏にマウスを使った.Bass;\r
Bass.nPerfectになる範囲ms = CDTXMania.Instance.nPerfect範囲ms;\r
Bass.nGreatになる範囲ms = CDTXMania.Instance.nGreat範囲ms;\r
Bass.nGoodになる範囲ms = CDTXMania.Instance.nGood範囲ms;\r
Bass.nPoorになる範囲ms = CDTXMania.Instance.nPoor範囲ms;\r
Bass.strDTXManiaのバージョン = CDTXMania.VERSION;\r
Bass.最終更新日時 = DateTime.Now.ToString();\r
- Bass.Hash = CScoreIni.t演奏セクションのMD5を求めて返す(Bass);\r
- Bass.bギターとベースを入れ替えた = CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass; // #35417 chnmr0 add\r
+ // #35417 chnmr0 add\r
+ Bass.bギターとベースを入れ替えた = CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass;\r
}\r
}\r
#endregion\r
this.dtLastQueueOperation = DateTime.MinValue;\r
this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続;\r
this.n現在のトップChip = (CDTXMania.Instance.DTX.listChip.Count > 0) ? 0 : -1;\r
+ n最後に再生した実WAV番号 = new STPadValue<int>();\r
this.L最後に再生したHHの実WAV番号 = new List<int>(16);\r
this.e最後に再生したHHのチャンネル番号 = 0;\r
- this.n最後に再生した実WAV番号.Guitar = -1;\r
- this.n最後に再生した実WAV番号.Bass = -1;\r
+ this.n最後に再生した実WAV番号.GtPick = -1;\r
+ this.n最後に再生した実WAV番号.BsPick = -1;\r
for (int i = 0; i < 50; i++)\r
{\r
this.n最後に再生したBGMの実WAV番号[i] = -1;\r
this.r現在の空うちギターChip = null;\r
this.r現在の空うちベースChip = null;\r
cInvisibleChip = new CInvisibleChip(CDTXMania.Instance.ConfigIni.nChipDisplayTimeMs, CDTXMania.Instance.ConfigIni.nChipFadeoutTimeMs);\r
- this.n最大コンボ数_TargetGhost = new STDGBVALUE<int>(); // #35411 2015.08.21 chnmr0 add\r
+ this.n最大コンボ数_TargetGhost = new STDGBSValue<int>();\r
\r
- for (E楽器パート k = E楽器パート.DRUMS; k <= E楽器パート.BASS; k++)\r
+ for (EPart k = EPart.Drums; k <= EPart.Bass; k++)\r
{\r
this.nヒット数_Auto含まない[k] = new CHitCountOfRank();\r
this.nヒット数_Auto含む[k] = new CHitCountOfRank();\r
- this.nヒット数_TargetGhost[k] = new CHitCountOfRank(); // #35411 2015.08.21 chnmr0 add\r
+ this.nヒット数_TargetGhost[k] = new CHitCountOfRank();\r
this.queWailing[k] = new Queue<CChip>();\r
this.r現在の歓声Chip[k] = null;\r
- cInvisibleChip.eInvisibleMode[k] = CDTXMania.Instance.ConfigIni.eInvisible[k];\r
if (CDTXMania.Instance.DTXVmode.Enabled)\r
{\r
- CDTXMania.Instance.ConfigIni.n譜面スクロール速度[k] = CDTXMania.Instance.ConfigIni.nViewerScrollSpeed[k];\r
+ CDTXMania.Instance.ConfigIni.nScrollSpeed[k] = CDTXMania.Instance.ConfigIni.nViewerScrollSpeed[k];\r
}\r
\r
- // #23580 2011.1.3 yyagi\r
- this.nInputAdjustTimeMs[k] = CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[k];\r
- // 2011.1.7 ikanick 修正\r
- // this.演奏判定ライン座標.n判定位置[k] = CDTXMania.Instance.ConfigIni.e判定位置[k];//#31602 2013.6.23 yyagi\r
- // this.演奏判定ライン座標.nJudgeLinePosYDelta[k] = CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset[k];\r
this.b演奏にキーボードを使った[k] = false;\r
this.b演奏にジョイパッドを使った[k] = false;\r
this.b演奏にMIDI入力を使った[k] = false;\r
}\r
\r
cInvisibleChip.Reset();\r
- base.On活性化();\r
-\r
- this.actPanel.SetPanelString(CDTXMania.Instance.DTX.TITLE + " (" + CDTXMania.Instance.stage選曲.r確定された曲.ar難易度ラベル[CDTXMania.Instance.stage選曲.n確定された曲の難易度] + ")");\r
- this.bIsAutoPlay = CDTXMania.Instance.ConfigIni.bAutoPlay; // #24239 2011.1.23 yyagi\r
- actGauge.Init(CDTXMania.Instance.ConfigIni.nRisky); // #23559 2011.7.28 yyagi\r
- e判定表示優先度 = CDTXMania.Instance.ConfigIni.e判定表示優先度;\r
- CDTXMania.Instance.Skin.tRemoveMixerAll(); // 効果音のストリームをミキサーから解除しておく\r
+ actGauge.Init(CDTXMania.Instance.ConfigIni.nRisky);\r
+ // 効果音のストリームをミキサーから解除しておく\r
+ CDTXMania.Instance.Skin.tRemoveMixerAll();\r
queueMixerSound = new Queue<STMixer>(64);\r
bIsDirectSound = (CDTXMania.Instance.Sound管理.GetCurrentSoundDeviceType() == "DirectSound");\r
- bUseOSTimer = CDTXMania.Instance.ConfigIni.bUseOSTimer;\r
this.bPAUSE = false;\r
\r
if (CDTXMania.Instance.DTXVmode.Enabled)\r
{\r
db再生速度 = CDTXMania.Instance.DTX.dbDTXVPlaySpeed;\r
- CDTXMania.Instance.ConfigIni.n演奏速度 = (int)(CDTXMania.Instance.DTX.dbDTXVPlaySpeed * 20 + 0.5);\r
+ CDTXMania.Instance.ConfigIni.nPlaySpeed.Value = (int)(CDTXMania.Instance.DTX.dbDTXVPlaySpeed * 20 + 0.5);\r
}\r
else\r
{\r
- db再生速度 = ((double)CDTXMania.Instance.ConfigIni.n演奏速度) / 20.0;\r
+ db再生速度 = ((double)CDTXMania.Instance.ConfigIni.nPlaySpeed) / 20.0;\r
}\r
\r
bValidScore = (CDTXMania.Instance.DTXVmode.Enabled) ? false : true;\r
\r
- cWailingChip = new CWailingChip共通[3]; // 0:未使用, 1:Gutiar, 2:Bass\r
+ cWailingChip = new CWailingChip共通[3];\r
+ // 0:未使用, 1:Gutiar, 2:Bass\r
cWailingChip[1] = new CWailingChip共通();\r
cWailingChip[2] = new CWailingChip共通();\r
\r
// Debug.WriteLine( "CH=" + pChip.nチャンネル番号.ToString( "x2" ) + ", 整数値=" + pChip.n整数値 + ", time=" + pChip.n発声時刻ms );\r
if (pChip.n発声時刻ms <= 0)\r
{\r
- if (pChip.eチャンネル番号 == Ech定義.MixerAdd)\r
+ if (pChip.eチャンネル番号 == EChannel.MixerAdd)\r
{\r
pChip.bHit = true;\r
// Trace.TraceInformation( "first [DA] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString( "x2" ) + ", wav=" + pChip.n整数値 + ", time=" + pChip.n発声時刻ms );\r
if (CDTXMania.Instance.DTX.listWAV.ContainsKey(pChip.n整数値_内部番号))\r
{\r
CDTX.CWAV wc = CDTXMania.Instance.DTX.listWAV[pChip.n整数値_内部番号];\r
- for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPoliphonicSounds; i++)\r
+ for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPolyphonicSounds; i++)\r
{\r
if (wc.rSound[i] != null)\r
{\r
}\r
#endregion\r
\r
- if (CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass) // #24063 2011.1.24 yyagi Gt/Bsの譜面情報入れ替え\r
+ if (CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass) // #24063 2011.1.24 yyagi Gt/Bsの譜面情報入れ替え\r
{\r
CDTXMania.Instance.DTX.SwapGuitarBassInfos();\r
}\r
\r
\r
- for (E楽器パート inst = E楽器パート.DRUMS; inst <= E楽器パート.BASS; ++inst)\r
+ for (EPart inst = EPart.Drums; inst <= EPart.Bass; ++inst)\r
{\r
// MODIFY_BEGIN #25398 2011.06.07 FROM\r
if (CDTXMania.Instance.bコンパクトモード)\r
}\r
else\r
{\r
- if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
+ if (CDTXMania.Instance.ConfigIni.b楽器有効(inst))\r
{\r
- this.actGraph.dbTarget[inst] = CDTXMania.Instance.stage選曲.r確定されたスコア.譜面情報.最大スキル[inst]; // #24074 2011.01.23 add ikanick\r
+ this.actGraph.dbTarget[inst] = CDTXMania.Instance.stage選曲.r確定されたスコア.譜面情報.最大スキル[inst]; // #24074 2011.01.23 add ikanick\r
\r
- // #35411 2015.08.21 chnmr0 add\r
// ゴースト利用可のなとき、0で初期化\r
- if (CDTXMania.Instance.ConfigIni.eTargetGhost.Drums != ETargetGhostData.NONE)\r
+ if (CDTXMania.Instance.ConfigIni.eTargetGhost[inst] != ETargetGhostData.None)\r
{\r
- if (CDTXMania.Instance.DTX.listTargetGhsotLag[E楽器パート.DRUMS] != null)\r
+ if (CDTXMania.Instance.DTX.listTargetGhsotLag[inst] != null)\r
{\r
this.actGraph.dbTarget[inst] = 0;\r
}\r
}\r
// MODIFY_END #25398\r
}\r
+\r
+ for (EPart part = EPart.Drums; part <= EPart.Bass; ++part)\r
+ {\r
+ if (CDTXMania.Instance.ConfigIni.b楽器有効(part))\r
+ {\r
+ actOptionPanel.Pos[part] = new Coordinates.CXY(CDTXMania.Instance.ConfigIni.cdInstX[part][CDTXMania.Instance.ConfigIni.eActiveInst]\r
+ - CDTXMania.Instance.Coordinates.ImgOptionPanel.W, 0);\r
+ }\r
+ }\r
+\r
+ base.On活性化();\r
+\r
+ // PANELの設定は、base.On活性化()の後に(actPanelの活性化の後)行うこと。\r
+ // さもないと、actPanelが活性化されていないため、パネル文字列の設定が機能しなくなる。\r
+ string strLabel = (CDTXMania.Instance.stage選曲.r確定された曲 == null)?\r
+ null : CDTXMania.Instance.stage選曲.r確定された曲.ar難易度ラベル[ CDTXMania.Instance.stage選曲.n確定された曲の難易度 ];\r
+ string strPanel = CDTXMania.Instance.DTX.TITLE;\r
+ //string strSETDEFlabel = CDTXMania.Instance.stage選曲.r確定された曲.strタイトル;\r
+ if ( !string.IsNullOrWhiteSpace( strLabel ) && !strPanel.ToLower().Contains(strLabel.ToLower() )\r
+ // && (strPanel == strSETDEFlabel)\r
+ )\r
+ {\r
+ strPanel += " (" + strLabel + ")";\r
+ }\r
+ this.actPanel.SetPanelString( strPanel );\r
}\r
}\r
public override void On非活性化()\r
{\r
- if (base.b活性化してる)\r
+ if (b活性化してる)\r
{\r
- this.L最後に再生したHHの実WAV番号.Clear(); // #23921 2011.1.4 yyagi\r
- this.L最後に再生したHHの実WAV番号 = null; //\r
- for (E楽器パート i = 0; i <= E楽器パート.BASS; i++)\r
+ // #23921 2011.1.4 yyagi\r
+ L最後に再生したHHの実WAV番号.Clear();\r
+ L最後に再生したHHの実WAV番号 = null;\r
+ for (EPart i = 0; i <= EPart.Bass; i++)\r
{\r
- this.queWailing[i].Clear();\r
- this.queWailing[i] = null;\r
+ queWailing[i].Clear();\r
+ queWailing[i] = null;\r
}\r
- this.ctWailingチップ模様アニメ = null;\r
- this.ctチップ模様アニメ.Drums = null;\r
- this.ctチップ模様アニメ.Guitar = null;\r
- this.ctチップ模様アニメ.Bass = null;\r
+ ctWailingチップ模様アニメ = null;\r
+ ctチップ模様アニメ.Drums = null;\r
+ ctチップ模様アニメ.Guitar = null;\r
+ ctチップ模様アニメ.Bass = null;\r
queueMixerSound.Clear();\r
queueMixerSound = null;\r
cInvisibleChip.Dispose();\r
}\r
public override void OnManagedリソースの作成()\r
{\r
- if (base.b活性化してる)\r
- {\r
- this.txチップ = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums chips.png"));\r
- this.txチップGB = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayGuitar chips.png"));\r
- this.txヒットバー = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums hit-bar.png"));\r
- this.txヒットバーGB = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums hit-bar guitar.png"));\r
- this.txWailing枠 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay wailing cursor.png"));\r
- this.t背景テクスチャの生成();\r
+ if (b活性化してる)\r
+ {\r
+ txチップ = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums chips.png"));\r
+ txチップGB = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayGuitar chips.png"));\r
+ txヒットバー = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums hit-bar.png"));\r
+ txヒットバーGB = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums hit-bar guitar.png"));\r
+ txWailing枠 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay wailing cursor.png"));\r
+ t背景テクスチャの生成();\r
base.OnManagedリソースの作成();\r
}\r
\r
}\r
public override void OnManagedリソースの解放()\r
{\r
- if (base.b活性化してる)\r
+ if (b活性化してる)\r
{\r
- base.OnManagedリソースの解放();\r
TextureFactory.tテクスチャの解放(ref this.tx背景);\r
TextureFactory.tテクスチャの解放(ref this.txWailing枠);\r
TextureFactory.tテクスチャの解放(ref this.txヒットバーGB);\r
TextureFactory.tテクスチャの解放(ref this.txヒットバー);\r
TextureFactory.tテクスチャの解放(ref this.txチップGB);\r
TextureFactory.tテクスチャの解放(ref this.txチップ);\r
+ base.OnManagedリソースの解放();\r
}\r
}\r
public override int On進行描画()\r
{\r
- if (base.b活性化してる)\r
+ if (b活性化してる)\r
{\r
bool bIsFinishedPlaying = false;\r
bool bIsFinishedFadeout = false;\r
\r
- if (base.b初めての進行描画)\r
+ if (b初めての進行描画)\r
{\r
- this.PrepareAVITexture();\r
+ PrepareAVITexture();\r
\r
CSound管理.rc演奏用タイマ.tリセット();\r
CDTXMania.Instance.Timer.tリセット();\r
if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
{\r
- this.ctチップ模様アニメ.Drums = new CCounter(0, 0x30, 10, CDTXMania.Instance.Timer);\r
+ ctチップ模様アニメ.Drums = new CCounter(0, 48, 10, CDTXMania.Instance.Timer);\r
}\r
if (CDTXMania.Instance.ConfigIni.bGuitar有効)\r
{\r
- this.ctチップ模様アニメ.Guitar = new CCounter(0, 0x17, 20, CDTXMania.Instance.Timer);\r
- this.ctチップ模様アニメ.Bass = new CCounter(0, 0x17, 20, CDTXMania.Instance.Timer);\r
- this.ctWailingチップ模様アニメ = new CCounter(0, 4, 50, CDTXMania.Instance.Timer);\r
+ ctチップ模様アニメ.Guitar = new CCounter(0, 48, 20, CDTXMania.Instance.Timer);\r
+ ctチップ模様アニメ.Bass = new CCounter(0, 48, 20, CDTXMania.Instance.Timer);\r
+ ctWailingチップ模様アニメ = new CCounter(0, 4, 50, CDTXMania.Instance.Timer);\r
}\r
\r
// this.actChipFireD.Start( Eレーン.HH ); // #31554 2013.6.12 yyagi\r
// 一発Start()を掛けてJITの結果を生成させておく。\r
\r
base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;\r
- this.actFI.tフェードイン開始();\r
+ actFI.tフェードイン開始();\r
\r
- if (CDTXMania.Instance.DTXVmode.Enabled) // DTXVモードなら\r
+ if (CDTXMania.Instance.DTXVmode.Enabled)\r
{\r
#region [ DTXV用の再生設定にする(全AUTOなど) ]\r
tDTXV用の設定();\r
}\r
\r
CDTXMania.Instance.Sound管理.tDisableUpdateBufferAutomatically();\r
- base.b初めての進行描画 = false;\r
+ b初めての進行描画 = false;\r
}\r
\r
#region [ stage failed ]\r
- if (CDTXMania.Instance.ConfigIni.bSTAGEFAILED有効 && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態))\r
+ if (CDTXMania.Instance.ConfigIni.bStageFailed && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態))\r
{\r
if (actGauge.IsFailed)\r
{\r
- this.actStageFailed.Start();\r
+ actStageFailed.Start();\r
CDTXMania.Instance.DTX.t全チップの再生停止();\r
base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED;\r
}\r
}\r
#endregion\r
\r
- this.t進行描画_背景();\r
- this.t進行描画_AVI();\r
- this.t進行描画_BGA();\r
- this.t進行描画_レーン();\r
- this.t進行描画_MIDIBGM();\r
- if (CDTXMania.Instance.ConfigIni.bGuitar有効)\r
- {\r
- this.t進行描画_レーンフラッシュGB();\r
- }\r
- this.t進行描画_パネル文字列();\r
- this.t進行描画_スコア();\r
- this.t進行描画_ステータスパネル();\r
- this.t進行描画_ゲージ();\r
- this.t進行描画_グラフ(); // #24074 2011.01.23 add ikanick\r
- if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
- {\r
- this.t進行描画_レーンフラッシュD();\r
- }\r
- this.t進行描画_DANGER();\r
- this.t進行描画_判定ライン();\r
- if (this.e判定表示優先度 == E判定表示優先度.Chipより下)\r
+ // Background\r
+ if (CDTXMania.Instance.ConfigIni.eDark == EDark.Off)\r
{\r
- if (CDTXMania.Instance.ConfigIni.bGuitar有効)\r
+ if (tx背景 != null)\r
{\r
- this.t進行描画_RGBボタン();\r
+ tx背景.t2D描画(CDTXMania.Instance.Device, 0, 0);\r
}\r
- this.t進行描画_判定文字列();\r
- this.t進行描画_コンボ();\r
- }\r
- this.t進行描画_WailingBonus();\r
- this.t進行描画_譜面スクロール速度();\r
- this.t進行描画_チップアニメ();\r
- bIsFinishedPlaying = this.t進行描画_チップ();\r
- this.t進行描画_演奏情報();\r
- if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
- {\r
- this.t進行描画_ドラムパッド();\r
}\r
- if (this.e判定表示優先度 == E判定表示優先度.Chipより上)\r
+\r
+ // AVI / BGA\r
+ if (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED &&\r
+ base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)\r
{\r
- if (CDTXMania.Instance.ConfigIni.bGuitar有効)\r
+ actAVI.t進行描画(\r
+ CDTXMania.Instance.ConfigIni.cdMovieX[CDTXMania.Instance.ConfigIni.eActiveInst],\r
+ CDTXMania.Instance.ConfigIni.cdMovieY[CDTXMania.Instance.ConfigIni.eActiveInst],\r
+ CDTXMania.Instance.Coordinates.Movie.W,\r
+ CDTXMania.Instance.Coordinates.Movie.H);\r
+ actBGA.On進行描画();\r
+ #region [MIDIBGM 処理?]\r
+ if (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED)\r
{\r
- this.t進行描画_RGBボタン();\r
+ CStage.Eフェーズ eフェーズid1 = base.eフェーズID;\r
}\r
- this.t進行描画_判定文字列();\r
- this.t進行描画_コンボ();\r
- }\r
+ #endregion\r
+ actLane.On進行描画();\r
+ actLaneFlushGB.On進行描画();\r
+ actPanel.On進行描画();\r
+ actScore.On進行描画();\r
+ actOptionPanel.On進行描画();\r
+ actGauge.On進行描画();\r
+ actGraph.On進行描画();\r
+ actLaneFlushD.On進行描画();\r
+ actDANGER.t進行描画(actGauge.IsDanger);\r
+ act譜面スクロール速度.On進行描画();\r
+ t進行描画_判定ライン();\r
+ actWailingBonus.On進行描画();\r
+\r
+ // RGB, Judge, Combo (Priority Under Chip)\r
+ if (CDTXMania.Instance.ConfigIni.eJudgePriority == EJudgeDisplayPriority.Under)\r
+ {\r
+ actRGB.On進行描画();\r
+ actJudgeString.On進行描画();\r
+ actCombo.On進行描画();\r
+ }\r
+ t進行描画_チップアニメ();\r
+ bIsFinishedPlaying = t進行描画_チップ();\r
+ actPad.On進行描画();\r
\r
- this.t進行描画_Wailing枠();\r
- if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
- {\r
- this.t進行描画_チップファイアD();\r
+ // RGB, Judge, Combo (Priority Over Chip)\r
+ if (CDTXMania.Instance.ConfigIni.eJudgePriority == EJudgeDisplayPriority.Over)\r
+ {\r
+ actRGB.On進行描画();\r
+ actJudgeString.On進行描画();\r
+ actCombo.On進行描画();\r
+ }\r
+\r
+ actChipFireD.On進行描画();\r
+ actChipFireGB.On進行描画();\r
+ actPlayInfo.On進行描画();\r
+\r
+ // Wailing\r
+ if ((CDTXMania.Instance.ConfigIni.eDark != EDark.Full) &&\r
+ CDTXMania.Instance.ConfigIni.bGuitar有効)\r
+ {\r
+ int GtWailingFrameX = CDTXMania.Instance.ConfigIni.GetLaneX(ELane.GtW) +\r
+ (CDTXMania.Instance.ConfigIni.GetLaneW(ELane.GtW) - CDTXMania.Instance.Coordinates.ImgGtWailingFrame.W) / 2;\r
+ int BsWailingFrameX = CDTXMania.Instance.ConfigIni.GetLaneX(ELane.BsW) +\r
+ (CDTXMania.Instance.ConfigIni.GetLaneW(ELane.BsW) - CDTXMania.Instance.Coordinates.ImgGtWailingFrame.W) / 2;\r
+ int GtWailingFrameY = C演奏判定ライン座標共通.n判定ラインY座標(EPart.Guitar, true, true);\r
+ int BsWailingFrameY = C演奏判定ライン座標共通.n判定ラインY座標(EPart.Bass, true, true);\r
+\r
+ if (txWailing枠 != null)\r
+ {\r
+ if (CDTXMania.Instance.DTX.bチップがある.Guitar)\r
+ {\r
+ txWailing枠.t2D描画(CDTXMania.Instance.Device, GtWailingFrameX, GtWailingFrameY);\r
+ }\r
+ if (CDTXMania.Instance.DTX.bチップがある.Bass)\r
+ {\r
+ txWailing枠.t2D描画(CDTXMania.Instance.Device, BsWailingFrameX, BsWailingFrameY);\r
+ }\r
+ }\r
+ }\r
}\r
- if(CDTXMania.Instance.ConfigIni.bGuitar有効)\r
+\r
+ // Stage Failed\r
+ if (((base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED) ||\r
+ (base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) &&\r
+ ((actStageFailed.On進行描画() != 0) &&\r
+ (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)))\r
{\r
- this.t進行描画_チップファイアGB();\r
+ eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージ失敗;\r
+ base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト;\r
+ actFO.tフェードアウト開始();\r
}\r
- this.t進行描画_STAGEFAILED();\r
\r
bIsFinishedFadeout = this.t進行描画_フェードイン_アウト();\r
if (bIsFinishedPlaying && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態))\r
{\r
if (CDTXMania.Instance.Timer.b停止していない)\r
{\r
- this.actPanel.Stop(); // PANEL表示停止\r
- CDTXMania.Instance.Timer.t一時停止(); // 再生時刻カウンタ停止\r
+ actPanel.Stop();\r
+ CDTXMania.Instance.Timer.t一時停止();\r
}\r
Thread.Sleep(5);\r
// DTXCからの次のメッセージを待ち続ける\r
\r
if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
{\r
- r空打ちドラムチップ = new CChip[10];\r
- for (int i = 0; i < 10; i++)\r
+ for (EPad pad = EPad.DrumsPadMin; pad < EPad.DrumsPadMax; pad++)\r
{\r
- r空打ちドラムチップ[i] = this.r空うちChip(E楽器パート.DRUMS, (Eパッド)i);\r
- if (r空打ちドラムチップ[i] == null)\r
+ r空打ちドラムチップ[pad] = r空うちChip(EPart.Drums, pad);\r
+ if (r空打ちドラムチップ[pad] == null)\r
{\r
- r空打ちドラムチップ[i] = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(\r
- CSound管理.rc演奏用タイマ.n現在時刻,\r
- this.nパッド0Atoチャンネル0A[i],\r
- this.nInputAdjustTimeMs.Drums);\r
+ r空打ちドラムチップ[pad] = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(\r
+ CSound管理.rc演奏用タイマ.n現在時刻,\r
+ EnumConverter.ChannelFromPad(pad),\r
+ CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs.Drums);\r
}\r
}\r
}\r
\r
- if (CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass) // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
+ if (CDTXMania.Instance.ConfigIni.bIsSwappedGuitarBass) // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える\r
{\r
CScoreIni.C演奏記録 t;\r
t = record.Guitar;\r
}\r
\r
// その他\r
- public CChip[] GetNoChipDrums()\r
+ public STPadValue<CChip> GetNoChipDrums()\r
{\r
return r空打ちドラムチップ;\r
}\r
- public STDGBVALUE<CScoreIni.C演奏記録> Record\r
+ public STDGBSValue<CScoreIni.C演奏記録> Record\r
{\r
get\r
{\r
//Debug.WriteLine( "☆queueLength=" + queueMixerSound.Count );\r
DateTime dtnow = DateTime.Now;\r
TimeSpan ts = dtnow - dtLastQueueOperation;\r
- if (ts.Milliseconds > 7)\r
+ int nInterval = ( CDTXMania.Instance.ConfigIni.bVSyncWait ) ? 7 : 1;\r
+ int nMaxDequeueCount = ( CDTXMania.Instance.ConfigIni.bVSyncWait ) ? 2 : 1;\r
+ if (ts.Milliseconds > nInterval)\r
{\r
- for (int i = 0; i < 2 && queueMixerSound.Count > 0; i++)\r
+ for (int i = 0; i < nMaxDequeueCount && queueMixerSound.Count > 0; i++)\r
{\r
dtLastQueueOperation = dtnow;\r
STMixer stm = queueMixerSound.Dequeue();\r
/// </summary>\r
protected void PrepareAVITexture()\r
{\r
- if (CDTXMania.Instance.ConfigIni.bAVI有効)\r
+ if (CDTXMania.Instance.ConfigIni.bAVI)\r
{\r
foreach (CChip pChip in CDTXMania.Instance.DTX.listChip)\r
{\r
- if (pChip.eチャンネル番号 == Ech定義.Movie || pChip.eチャンネル番号 == Ech定義.MovieFull)\r
+ if (pChip.eチャンネル番号 == EChannel.Movie || pChip.eチャンネル番号 == EChannel.MovieFull)\r
{\r
// 最初に再生するAVIチップに合わせて、テクスチャを準備しておく\r
if (pChip.rAVI != null)\r
}\r
}\r
\r
- protected E判定 e指定時刻からChipのJUDGEを返す(long nTime, CChip pChip, int nInputAdjustTime, bool saveLag = true)\r
+ protected EJudge e指定時刻からChipのJUDGEを返す(long nTime, CChip pChip, int nInputAdjustTime, bool saveLag = true)\r
{\r
if (pChip != null)\r
{\r
int lag = (int)(nTime + nInputAdjustTime - pChip.n発声時刻ms);\r
if (saveLag)\r
{\r
- pChip.nLag = lag; // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature\r
- if (pChip.e楽器パート != E楽器パート.UNKNOWN)\r
+ pChip.nLag = lag;\r
+ // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature\r
+ if (pChip.e楽器パート != EPart.Unknown)\r
{\r
pChip.extendInfoForGhost = this.actCombo.dgbコンボ数[pChip.e楽器パート].n現在値 > 0 ? true : false;\r
}\r
//Debug.WriteLine("nAbsTime=" + (nTime - pChip.n発声時刻ms) + ", nDeltaTime=" + (nTime + nInputAdjustTime - pChip.n発声時刻ms));\r
if (nDeltaTime <= CDTXMania.Instance.nPerfect範囲ms)\r
{\r
- return E判定.Perfect;\r
+ return EJudge.Perfect;\r
}\r
if (nDeltaTime <= CDTXMania.Instance.nGreat範囲ms)\r
{\r
- return E判定.Great;\r
+ return EJudge.Great;\r
}\r
if (nDeltaTime <= CDTXMania.Instance.nGood範囲ms)\r
{\r
- return E判定.Good;\r
+ return EJudge.Good;\r
}\r
if (nDeltaTime <= CDTXMania.Instance.nPoor範囲ms)\r
{\r
- return E判定.Poor;\r
+ return EJudge.Poor;\r
}\r
}\r
- return E判定.Miss;\r
+ return EJudge.Miss;\r
}\r
- protected CChip r空うちChip(E楽器パート part, Eパッド pad)\r
+\r
+ protected CChip r空うちChip(EPart part, EPad pad)\r
{\r
switch (part)\r
{\r
- case E楽器パート.DRUMS:\r
+ case EPart.Drums:\r
switch (pad)\r
{\r
- case Eパッド.HH:\r
+ case EPad.HH:\r
if (this.r現在の空うちドラムChip.HH != null)\r
{\r
return this.r現在の空うちドラムChip.HH;\r
}\r
- if (CDTXMania.Instance.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける)\r
+ if (CDTXMania.Instance.ConfigIni.eHHGroup != EHHGroup.HO_HC)\r
{\r
- if (CDTXMania.Instance.ConfigIni.eHHGroup == EHHGroup.左シンバルのみ打ち分ける)\r
+ if (CDTXMania.Instance.ConfigIni.eHHGroup == EHHGroup.LC_HH)\r
{\r
return this.r現在の空うちドラムChip.HHO;\r
}\r
}\r
return this.r現在の空うちドラムChip.LC;\r
\r
- case Eパッド.SD:\r
+ case EPad.SD:\r
return this.r現在の空うちドラムChip.SD;\r
\r
- case Eパッド.BD:\r
+ case EPad.BD:\r
return this.r現在の空うちドラムChip.BD;\r
\r
- case Eパッド.HT:\r
+ case EPad.HT:\r
return this.r現在の空うちドラムChip.HT;\r
\r
- case Eパッド.LT:\r
+ case EPad.LT:\r
if (this.r現在の空うちドラムChip.LT != null)\r
{\r
return this.r現在の空うちドラムChip.LT;\r
}\r
- if (CDTXMania.Instance.ConfigIni.eFTGroup == EFTGroup.共通)\r
+ if (CDTXMania.Instance.ConfigIni.eFTGroup == EFTGroup.Group)\r
{\r
return this.r現在の空うちドラムChip.FT;\r
}\r
return null;\r
\r
- case Eパッド.FT:\r
+ case EPad.FT:\r
if (this.r現在の空うちドラムChip.FT != null)\r
{\r
return this.r現在の空うちドラムChip.FT;\r
}\r
- if (CDTXMania.Instance.ConfigIni.eFTGroup == EFTGroup.共通)\r
+ if (CDTXMania.Instance.ConfigIni.eFTGroup == EFTGroup.Group)\r
{\r
return this.r現在の空うちドラムChip.LT;\r
}\r
return null;\r
\r
- case Eパッド.CY:\r
+ case EPad.CY:\r
if (this.r現在の空うちドラムChip.CY != null)\r
{\r
return this.r現在の空うちドラムChip.CY;\r
}\r
- if (CDTXMania.Instance.ConfigIni.eCYGroup == ECYGroup.共通)\r
+ if (CDTXMania.Instance.ConfigIni.eCYGroup == ECYGroup.Group)\r
{\r
return this.r現在の空うちドラムChip.RD;\r
}\r
return null;\r
\r
- case Eパッド.HHO:\r
+ case EPad.HHO:\r
if (this.r現在の空うちドラムChip.HHO != null)\r
{\r
return this.r現在の空うちドラムChip.HHO;\r
}\r
- if (CDTXMania.Instance.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける)\r
+ if (CDTXMania.Instance.ConfigIni.eHHGroup != EHHGroup.HO_HC)\r
{\r
- if (CDTXMania.Instance.ConfigIni.eHHGroup == EHHGroup.左シンバルのみ打ち分ける)\r
+ if (CDTXMania.Instance.ConfigIni.eHHGroup == EHHGroup.LC_HH)\r
{\r
return this.r現在の空うちドラムChip.HH;\r
}\r
}\r
return this.r現在の空うちドラムChip.LC;\r
\r
- case Eパッド.RD:\r
+ case EPad.RD:\r
if (this.r現在の空うちドラムChip.RD != null)\r
{\r
return this.r現在の空うちドラムChip.RD;\r
}\r
- if (CDTXMania.Instance.ConfigIni.eCYGroup == ECYGroup.共通)\r
+ if (CDTXMania.Instance.ConfigIni.eCYGroup == ECYGroup.Group)\r
{\r
return this.r現在の空うちドラムChip.CY;\r
}\r
return null;\r
\r
- case Eパッド.LC:\r
+ case EPad.LC:\r
if (this.r現在の空うちドラムChip.LC != null)\r
{\r
return this.r現在の空うちドラムChip.LC;\r
}\r
- if ((CDTXMania.Instance.ConfigIni.eHHGroup != EHHGroup.ハイハットのみ打ち分ける) && (CDTXMania.Instance.ConfigIni.eHHGroup != EHHGroup.全部共通))\r
+ if ((CDTXMania.Instance.ConfigIni.eHHGroup != EHHGroup.HO_HC) && (CDTXMania.Instance.ConfigIni.eHHGroup != EHHGroup.Group))\r
{\r
return null;\r
}\r
}\r
break;\r
\r
- case E楽器パート.GUITAR:\r
+ case EPart.Guitar:\r
return this.r現在の空うちギターChip;\r
\r
- case E楽器パート.BASS:\r
+ case EPart.Bass:\r
return this.r現在の空うちベースChip;\r
}\r
return null;\r
}\r
- protected CChip r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(long nTime, Ech定義 eChannel, int nInputAdjustTime)\r
+\r
+ protected CChip r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(long nTime, EChannel eChannel, int nInputAdjustTime)\r
{\r
return r指定時刻に一番近い未ヒットChip(nTime, eChannel, nInputAdjustTime, 0, HitState.DontCare);\r
}\r
- protected void tサウンド再生(CChip rChip, long n再生開始システム時刻ms, E楽器パート part)\r
+\r
+ protected void tサウンド再生(CChip rChip, long n再生開始システム時刻ms, EPart part)\r
{\r
- this.tサウンド再生(rChip, n再生開始システム時刻ms, part, CDTXMania.Instance.ConfigIni.n手動再生音量);\r
+ this.tサウンド再生(rChip, n再生開始システム時刻ms, part, CDTXMania.Instance.ConfigIni.nChipVolume);\r
}\r
- protected void tサウンド再生(CChip pChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ = false, bool b音程をずらして再生 = false)\r
+\r
+ protected void tサウンド再生(CChip pChip, long n再生開始システム時刻ms, EPart part, int n音量, bool bモニタ = false, bool b音程をずらして再生 = false)\r
{\r
// mute sound (auto)\r
// 4A: HH\r
bool overwrite = false;\r
switch (part)\r
{\r
- case E楽器パート.DRUMS:\r
+ case EPart.Drums:\r
#region [ DRUMS ]\r
{\r
int index = -1;\r
// 4D: 87: LC\r
// 2A: 88: Gt\r
// AA: 89: Bs\r
- else if (Ech定義.SE24 == pChip.eチャンネル番号) // 仮に今だけ追加 HHは消音処理があるので overwriteフラグ系の処理は改めて不要\r
+ else if (EChannel.SE24 == pChip.eチャンネル番号) // 仮に今だけ追加 HHは消音処理があるので overwriteフラグ系の処理は改めて不要\r
{\r
index = 0;\r
}\r
- else if ((Ech定義.SE25 <= pChip.eチャンネル番号) && (pChip.eチャンネル番号 <= Ech定義.SE27)) // 仮に今だけ追加\r
+ else if ((EChannel.SE25 <= pChip.eチャンネル番号) && (pChip.eチャンネル番号 <= EChannel.SE27)) // 仮に今だけ追加\r
{\r
pChip.ConvertSE25_26_27toCY_RCY_LCY();\r
- index = pChip.eチャンネル番号 - Ech定義.HiHatClose;\r
+ index = pChip.nDrumsIndex;\r
overwrite = true;\r
}\r
else\r
{\r
return;\r
}\r
- int nLane = CStage演奏画面共通.nチャンネル0Atoレーン07[index];\r
- if ((nLane == 1) && // 今回演奏するのがHC or HO\r
- (index == 0 || (\r
- index == 7 &&\r
- this.e最後に再生したHHのチャンネル番号 != Ech定義.HiHatOpen &&\r
- this.e最後に再生したHHのチャンネル番号 != Ech定義.HiHatOpen_Hidden))\r
- // HCを演奏するか、またはHO演奏&以前HO演奏でない&以前不可視HO演奏でない\r
+ EChannel actChannel = EChannel.HiHatClose + index;\r
+ ELane nLane = EnumConverter.LaneFromChannel(actChannel);\r
+ if ((nLane == ELane.HH) && // 今回演奏するのがHC or HO\r
+ (index == 0 || (index == 7 &&\r
+ this.e最後に再生したHHのチャンネル番号 != EChannel.HiHatOpen &&\r
+ this.e最後に再生したHHのチャンネル番号 != EChannel.HiHatOpen_Hidden))\r
+ // HCを演奏するか、またはHO演奏&以前HO演奏でない&以前不可視HO演奏でない\r
)\r
// #24772 2011.4.4 yyagi\r
// == HH mute condition == \r
// HO Yes No\r
{\r
// #23921 2011.1.4 yyagi: 2種類以上のオープンハイハットが発音済みだと、最後のHHOしか消せない問題に対応。\r
-#if TEST_NOTEOFFMODE // 2011.1.1 yyagi test\r
- if (CDTXMania.Instance.DTX.b演奏で直前の音を消音する.HH)\r
- {\r
-#endif\r
- for (int i = 0; i < this.L最後に再生したHHの実WAV番号.Count; i++) // #23921 2011.1.4 yyagi\r
+ for (int i = 0; i < this.L最後に再生したHHの実WAV番号.Count; i++) // #23921 2011.1.4 yyagi\r
{\r
- // CDTXMania.Instance.DTX.tWavの再生停止(this.L最後に再生したHHの実WAV番号);\r
- CDTXMania.Instance.DTX.tWavの再生停止(this.L最後に再生したHHの実WAV番号[i]); // #23921 yyagi ストック分全て消音する\r
+ CDTXMania.Instance.DTX.tWavの再生停止(this.L最後に再生したHHの実WAV番号[i]); // #23921 yyagi ストック分全て消音する\r
}\r
this.L最後に再生したHHの実WAV番号.Clear();\r
-#if TEST_NOTEOFFMODE // 2011.1.1 yyagi test\r
- }\r
-#endif\r
- //this.n最後に再生したHHの実WAV番号 = pChip.n整数値_内部番号;\r
this.e最後に再生したHHのチャンネル番号 = pChip.eチャンネル番号;\r
}\r
-#if TEST_NOTEOFFMODE // 2011.1.4 yyagi test\r
- if (CDTXMania.Instance.DTX.b演奏で直前の音を消音する.HH)\r
+ if (index == 0 || index == 7)\r
{\r
-#endif\r
- if (index == 0 || index == 7 || index == 0x20 || index == 0x27) // #23921 HOまたは不可視HO演奏時はそのチップ番号をストックしておく\r
- { // #24772 HC, 不可視HCも消音キューに追加\r
- if (this.L最後に再生したHHの実WAV番号.Count >= 16) // #23921 ただしストック数が16以上になるようなら、頭の1個を削って常に16未満に抑える\r
- { // (ストックが増えてList<>のrealloc()が発生するのを予防する)\r
+ // #23921 HOまたは不可視HO演奏時はそのチップ番号をストックしておく\r
+ // #24772 HC, 不可視HCも消音キューに追加\r
+ if (this.L最後に再生したHHの実WAV番号.Count >= 16)\r
+ {\r
+ // #23921 ただしストック数が16以上になるようなら、頭の1個を削って常に16未満に抑える\r
+ // (ストックが増えてList<>のrealloc()が発生するのを予防する)\r
this.L最後に再生したHHの実WAV番号.RemoveAt(0);\r
}\r
- if (!this.L最後に再生したHHの実WAV番号.Contains(pChip.n整数値_内部番号)) // チップ音がまだストックされてなければ\r
+ if (!this.L最後に再生したHHの実WAV番号.Contains(pChip.n整数値_内部番号))\r
{\r
- this.L最後に再生したHHの実WAV番号.Add(pChip.n整数値_内部番号); // ストックする\r
+ // チップ音がまだストックされてなければストックする \r
+ this.L最後に再生したHHの実WAV番号.Add(pChip.n整数値_内部番号);\r
}\r
}\r
-#if TEST_NOTEOFFMODE // 2011.1.4 yyagi test\r
- }\r
-#endif\r
if (overwrite)\r
{\r
- CDTXMania.Instance.DTX.tWavの再生停止(this.n最後に再生した実WAV番号[index]);\r
+\r
+ CDTXMania.Instance.DTX.tWavの再生停止(this.n最後に再生した実WAV番号[EnumConverter.PadFromChannel(actChannel)]);\r
}\r
- CDTXMania.Instance.DTX.tチップの再生(pChip, n再生開始システム時刻ms, nLane, n音量, bモニタ);\r
- this.n最後に再生した実WAV番号[nLane] = pChip.n整数値_内部番号; // nLaneでなくindexにすると、LC(1A-11=09)とギター(enumで09)がかぶってLC音が消されるので注意\r
+ CDTXMania.Instance.DTX.tチップの再生(pChip, n再生開始システム時刻ms, n音量, bモニタ);\r
+ this.n最後に再生した実WAV番号[EnumConverter.PadFromLane(nLane)] = pChip.n整数値_内部番号;\r
+ // nLaneでなくindexにすると、LC(1A-11=09)とギター(enumで09)がかぶってLC音が消されるので注意\r
return;\r
}\r
- #endregion\r
- case E楽器パート.GUITAR:\r
+ #endregion\r
+ case EPart.Guitar:\r
#region [ GUITAR ]\r
-#if TEST_NOTEOFFMODE // 2011.1.1 yyagi test\r
- if (CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Guitar) {\r
-#endif\r
- CDTXMania.Instance.DTX.tWavの再生停止(this.n最後に再生した実WAV番号.Guitar);\r
-#if TEST_NOTEOFFMODE\r
- }\r
-#endif\r
- CDTXMania.Instance.DTX.tチップの再生(pChip, n再生開始システム時刻ms, (int)Eレーン.Guitar, n音量, bモニタ, b音程をずらして再生);\r
- this.n最後に再生した実WAV番号.Guitar = pChip.n整数値_内部番号;\r
+ CDTXMania.Instance.DTX.tWavの再生停止(this.n最後に再生した実WAV番号.GtPick);\r
+ CDTXMania.Instance.DTX.tチップの再生(pChip, n再生開始システム時刻ms, n音量, bモニタ, b音程をずらして再生);\r
+ this.n最後に再生した実WAV番号.GtPick = pChip.n整数値_内部番号;\r
return;\r
- #endregion\r
- case E楽器パート.BASS:\r
+ #endregion\r
+ case EPart.Bass:\r
#region [ BASS ]\r
-#if TEST_NOTEOFFMODE\r
- if (CDTXMania.Instance.DTX.b演奏で直前の音を消音する.Bass) {\r
-#endif\r
- CDTXMania.Instance.DTX.tWavの再生停止(this.n最後に再生した実WAV番号.Bass);\r
-#if TEST_NOTEOFFMODE\r
- }\r
-#endif\r
- CDTXMania.Instance.DTX.tチップの再生(pChip, n再生開始システム時刻ms, (int)Eレーン.Bass, n音量, bモニタ, b音程をずらして再生);\r
- this.n最後に再生した実WAV番号.Bass = pChip.n整数値_内部番号;\r
+ CDTXMania.Instance.DTX.tWavの再生停止(this.n最後に再生した実WAV番号.BsPick);\r
+ CDTXMania.Instance.DTX.tチップの再生(pChip, n再生開始システム時刻ms, n音量, bモニタ, b音程をずらして再生);\r
+ this.n最後に再生した実WAV番号.BsPick = pChip.n整数値_内部番号;\r
return;\r
- #endregion\r
+ #endregion\r
\r
default:\r
break;\r
}\r
}\r
\r
- protected E判定 tチップのヒット処理(long nHitTime, CChip pChip, bool bCorrectLane = true)\r
+ protected EJudge tチップのヒット処理(long nHitTime, CChip pChip, bool bCorrectLane = true)\r
{\r
pChip.bHit = true;\r
- if (pChip.e楽器パート != E楽器パート.UNKNOWN)\r
+ if (pChip.e楽器パート != EPart.Unknown)\r
{\r
cInvisibleChip.StartSemiInvisible(pChip.e楽器パート);\r
}\r
- bool bPChipIsAutoPlay = pChip.bAssignAutoPlayState(bIsAutoPlay);// 2011.6.10 yyagi\r
- E判定 eJudgeResult = E判定.Auto;\r
+ bool bPChipIsAutoPlay = pChip.bAssignAutoPlayState();// 2011.6.10 yyagi\r
+ EJudge eJudgeResult = EJudge.Auto;\r
\r
// ゴースト処理 #35411 2015.08.20 chnmr0\r
- bool bIsPerfectGhost = CDTXMania.Instance.ConfigIni.eAutoGhost[pChip.e楽器パート] == EAutoGhostData.PERFECT ||\r
- CDTXMania.Instance.DTX.listAutoGhostLag[pChip.e楽器パート] == null;\r
- int nInputAdjustTime = bPChipIsAutoPlay && bIsPerfectGhost ? 0 : this.nInputAdjustTimeMs[pChip.e楽器パート];\r
- eJudgeResult = (bCorrectLane) ? this.e指定時刻からChipのJUDGEを返す(nHitTime, pChip, nInputAdjustTime) : E判定.Miss;\r
+ bool bIsPerfectGhost = CDTXMania.Instance.ConfigIni.eAutoGhost[pChip.e楽器パート] == EAutoGhostData.Perfect ||\r
+ CDTXMania.Instance.DTX.listAutoGhostLag[pChip.e楽器パート] == null;\r
+ int nInputAdjustTime = bPChipIsAutoPlay && bIsPerfectGhost ? 0 : CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[pChip.e楽器パート];\r
+ eJudgeResult = (bCorrectLane) ? this.e指定時刻からChipのJUDGEを返す(nHitTime, pChip, nInputAdjustTime) : EJudge.Miss;\r
\r
- if (pChip.e楽器パート != E楽器パート.UNKNOWN)\r
+ if (pChip.e楽器パート != EPart.Unknown)\r
{\r
- int nLane = -1;\r
+ ELane nLane = ELane.Max;\r
switch (pChip.e楽器パート)\r
{\r
- case E楽器パート.DRUMS:\r
- nLane = CStage演奏画面共通.nチャンネル0Atoレーン07[pChip.nDrumsIndex];\r
+ case EPart.Drums:\r
+ nLane = EnumConverter.LaneFromChannel(pChip.eチャンネル番号);\r
break;\r
- case E楽器パート.GUITAR:\r
- nLane = 10;\r
+ case EPart.Guitar:\r
+ nLane = ELane.GtR;\r
break;\r
- case E楽器パート.BASS:\r
- nLane = 11;\r
+ case EPart.Bass:\r
+ nLane = ELane.BsR;\r
break;\r
}\r
- this.actJudgeString.Start(nLane, bPChipIsAutoPlay && bIsPerfectGhost ? E判定.Auto : eJudgeResult, pChip.nLag);\r
+ this.actJudgeString.Start(nLane, bPChipIsAutoPlay && bIsPerfectGhost ? EJudge.Auto : eJudgeResult, pChip.nLag);\r
}\r
\r
// ダメージ\r
- if (!bPChipIsAutoPlay && (pChip.e楽器パート != E楽器パート.UNKNOWN))\r
+ if (!bPChipIsAutoPlay && (pChip.e楽器パート != EPart.Unknown))\r
{\r
actGauge.Damage(pChip.e楽器パート, eJudgeResult);\r
}\r
\r
// インビジブル\r
- if (eJudgeResult == E判定.Poor || eJudgeResult == E判定.Miss || eJudgeResult == E判定.Bad)\r
+ if (eJudgeResult == EJudge.Poor || eJudgeResult == EJudge.Miss || eJudgeResult == EJudge.Bad)\r
{\r
cInvisibleChip.ShowChipTemporally(pChip.e楽器パート);\r
}\r
\r
// コンボ\r
- if (pChip.e楽器パート != E楽器パート.UNKNOWN)\r
+ if (pChip.e楽器パート != EPart.Unknown)\r
{\r
switch (eJudgeResult)\r
{\r
- case E判定.Miss:\r
- case E判定.Bad:\r
+ case EJudge.Miss:\r
+ case EJudge.Bad:\r
this.nヒット数_Auto含む[pChip.e楽器パート].Miss++;\r
if (!bPChipIsAutoPlay)\r
{\r
\r
bool incrementCombo = false;\r
\r
- if (pChip.e楽器パート == E楽器パート.DRUMS)\r
+ if (pChip.e楽器パート == EPart.Drums)\r
{\r
- if (CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである || !bPChipIsAutoPlay)\r
+ if (CDTXMania.Instance.ConfigIni.bIsAutoPlay(EPart.Drums) || !bPChipIsAutoPlay)\r
{\r
// Dr. : 演奏したレーンだけコンボを増やす\r
incrementCombo = true;\r
}\r
}\r
- else if (pChip.e楽器パート == E楽器パート.GUITAR || pChip.e楽器パート == E楽器パート.BASS)\r
+ else if (pChip.e楽器パート == EPart.Guitar || pChip.e楽器パート == EPart.Bass)\r
{\r
incrementCombo = true;\r
}\r
\r
- switch (eJudgeResult)\r
- {\r
- case E判定.Perfect:\r
- case E判定.Great:\r
- case E判定.Good:\r
- this.actCombo.dgbコンボ数[pChip.e楽器パート].IncrementCombo();\r
- break;\r
+ if( incrementCombo == true )\r
+ {\r
+ switch (eJudgeResult)\r
+ {\r
+ case EJudge.Perfect:\r
+ case EJudge.Great:\r
+ case EJudge.Good:\r
+ this.actCombo.dgbコンボ数[pChip.e楽器パート].IncrementCombo();\r
+ break;\r
\r
- default:\r
- this.actCombo.dgbコンボ数[pChip.e楽器パート].ResetCombo();\r
- break;\r
- }\r
+ default:\r
+ this.actCombo.dgbコンボ数[pChip.e楽器パート].ResetCombo();\r
+ break;\r
+ }\r
+ }\r
}\r
\r
// スコア\r
- if ((!bPChipIsAutoPlay && (pChip.e楽器パート != E楽器パート.UNKNOWN)) && (eJudgeResult != E判定.Miss) && (eJudgeResult != E判定.Bad))\r
+ if ((!bPChipIsAutoPlay && (pChip.e楽器パート != EPart.Unknown)) && (eJudgeResult != EJudge.Miss) && (eJudgeResult != EJudge.Bad))\r
{\r
int nCombos = this.actCombo.dgbコンボ数[pChip.e楽器パート].n現在値;\r
long nScoreDelta = 0;\r
long[] nComboScoreDelta = new long[] { 350L, 200L, 50L, 0L };\r
- if ((nCombos <= 500) || (eJudgeResult == E判定.Good))\r
+ if ((nCombos <= 500) || (eJudgeResult == EJudge.Good))\r
{\r
nScoreDelta = nComboScoreDelta[(int)eJudgeResult] * nCombos;\r
}\r
- else if ((eJudgeResult == E判定.Perfect) || (eJudgeResult == E判定.Great))\r
+ else if ((eJudgeResult == EJudge.Perfect) || (eJudgeResult == EJudge.Great))\r
{\r
nScoreDelta = nComboScoreDelta[(int)eJudgeResult] * 500L;\r
}\r
- this.actScore.Add(pChip.e楽器パート, bIsAutoPlay, nScoreDelta);\r
+ this.actScore.Add(pChip.e楽器パート, nScoreDelta);\r
}\r
\r
// グラフ\r
- if (pChip.e楽器パート != E楽器パート.UNKNOWN)\r
+ if (pChip.e楽器パート != EPart.Unknown)\r
{\r
- E楽器パート inst = pChip.e楽器パート;\r
+ EPart inst = pChip.e楽器パート;\r
// #24074 2011.01.23 add ikanick\r
this.actGraph.dbCurrent[inst] =\r
- CScoreIni.t演奏型スキルを計算して返す(\r
- CDTXMania.Instance.DTX.n可視チップ数[inst],\r
- this.nヒット数_Auto含まない[inst].Perfect,\r
- this.nヒット数_Auto含まない[inst].Great,\r
- this.nヒット数_Auto含まない[inst].Good,\r
- this.nヒット数_Auto含まない[inst].Poor,\r
- this.nヒット数_Auto含まない[inst].Miss,\r
- inst, bIsAutoPlay);\r
+ CScoreIni.t演奏型スキルを計算して返す(\r
+ CDTXMania.Instance.DTX.n可視チップ数[inst],\r
+ this.nヒット数_Auto含まない[inst].Perfect,\r
+ this.nヒット数_Auto含まない[inst].Great,\r
+ this.nヒット数_Auto含まない[inst].Good,\r
+ this.nヒット数_Auto含まない[inst].Poor,\r
+ this.nヒット数_Auto含まない[inst].Miss,\r
+ inst, true);\r
\r
// #35411 2015.09.07 add chnmr0\r
if (\r
- CDTXMania.Instance.DTX.listTargetGhsotLag[inst] != null &&\r
- CDTXMania.Instance.ConfigIni.eTargetGhost[inst] == ETargetGhostData.ONLINE &&\r
- CDTXMania.Instance.DTX.n可視チップ数[inst] > 0)\r
+ CDTXMania.Instance.DTX.listTargetGhsotLag[inst] != null &&\r
+ CDTXMania.Instance.ConfigIni.eTargetGhost[inst] == ETargetGhostData.Online &&\r
+ CDTXMania.Instance.DTX.n可視チップ数[inst] > 0)\r
{\r
// Online Stats の計算式\r
this.actGraph.dbTarget[inst] = 100 *\r
- (this.nヒット数_Auto含まない[inst].Perfect * 17 +\r
- this.nヒット数_Auto含まない[inst].Great * 7 +\r
- this.actCombo.dgbコンボ数[inst].n最高値 * 3) /\r
- (20.0 * CDTXMania.Instance.DTX.n可視チップ数[inst]);\r
+ (this.nヒット数_Auto含まない[inst].Perfect * 17 +\r
+ this.nヒット数_Auto含まない[inst].Great * 7 +\r
+ this.actCombo.dgbコンボ数[inst].n最高値 * 3) /\r
+ (20.0 * CDTXMania.Instance.DTX.n可視チップ数[inst]);\r
}\r
}\r
return eJudgeResult;\r
}\r
\r
- private void tチップのヒット処理_BadならびにTight時のMiss(E楽器パート part, int nLane = 0)\r
+ private void tチップのヒット処理_BadならびにTight時のMiss(EPart part, ELane nLane = ELane.LC)\r
{\r
cInvisibleChip.StartSemiInvisible(part);\r
cInvisibleChip.ShowChipTemporally(part);\r
- actGauge.Damage(part, E判定.Miss);\r
+ actGauge.Damage(part, EJudge.Miss);\r
switch (part)\r
{\r
- case E楽器パート.DRUMS:\r
- if ((nLane >= 0) && (nLane <= 7))\r
- {\r
- this.actJudgeString.Start(nLane, bIsAutoPlay[nLane] ? E判定.Auto : E判定.Miss, 999);\r
- }\r
+ case EPart.Drums:\r
+ this.actJudgeString.Start(nLane, CDTXMania.Instance.ConfigIni.bAutoPlay[EnumConverter.PadFromLane(nLane)] ?\r
+ EJudge.Auto : EJudge.Miss, 999);\r
this.actCombo.dgbコンボ数.Drums.ResetCombo();\r
return;\r
\r
- case E楽器パート.GUITAR:\r
- this.actJudgeString.Start(10, E判定.Bad, 999);\r
+ case EPart.Guitar:\r
+ this.actJudgeString.Start(ELane.GtR, EJudge.Bad, 999);\r
this.actCombo.dgbコンボ数.Guitar.ResetCombo();\r
return;\r
\r
- case E楽器パート.BASS:\r
- this.actJudgeString.Start(11, E判定.Bad, 999);\r
+ case EPart.Bass:\r
+ this.actJudgeString.Start(ELane.BsR, EJudge.Bad, 999);\r
this.actCombo.dgbコンボ数.Bass.ResetCombo();\r
break;\r
\r
/// <param name="nInputAdjustTime"></param>\r
/// <param name="n検索範囲時間ms">指定時刻から検索する範囲ms</param>\r
/// <returns></returns>\r
- protected CChip r指定時刻に一番近い未ヒットChip(long nTime, Ech定義 search, int nInputAdjustTime, int n検索範囲時間ms = 0, HitState hs = HitState.NotHit)\r
+ protected CChip r指定時刻に一番近い未ヒットChip(long nTime, EChannel search, int nInputAdjustTime, int n検索範囲時間ms = 0, HitState hs = HitState.NotHit)\r
{\r
CChip ret = null;\r
\r
nTime += nInputAdjustTime;\r
- if (this.n現在のトップChip >= 0 && this.n現在のトップChip < CDTXMania.Instance.DTX.listChip.Count)\r
+ if (this.n現在のトップChip >= 0 && this.n現在のトップChip <= CDTXMania.Instance.DTX.listChip.Count)\r
{\r
int idxFuture = -1;\r
int idxPast = -1;\r
Func<CChip, Func<CChip, bool>, bool> Found = (chip, futureOrPast) =>\r
{\r
return futureOrPast(chip) &&\r
- ((hs == HitState.NotHit && !chip.bHit) || (hs == HitState.Hit && chip.bHit) || (hs == HitState.DontCare)) &&\r
- !chip.b空打ちチップである &&\r
- (\r
- ((search == chip.eチャンネル番号 || search + 0x20 == chip.eチャンネル番号) && chip.bDrums可視チップ_LP_LBD含まない) ||\r
- (search == chip.eチャンネル番号 && chip.bGuitar可視チップ_Wailing含む) ||\r
- (search == chip.eチャンネル番号 && chip.bBass可視チップ_Wailing含む) ||\r
- (search == Ech定義.Guitar_WailingSound && chip.bGuitar可視チップ) ||\r
- (search == Ech定義.Bass_WailingSound && chip.bBass可視チップ)\r
- );\r
+ ((hs == HitState.NotHit && !chip.bHit) || (hs == HitState.Hit && chip.bHit) || (hs == HitState.DontCare)) &&\r
+ !chip.b空打ちチップである &&\r
+ (\r
+ ((search == chip.eチャンネル番号 || search + 0x20 == chip.eチャンネル番号) && chip.bDrums可視チップ_LP_LBD含まない) ||\r
+ (search == chip.eチャンネル番号 && chip.bGuitar可視チップ_Wailing含む) ||\r
+ (search == chip.eチャンネル番号 && chip.bBass可視チップ_Wailing含む) ||\r
+ (search == EChannel.Guitar_WailingSound && chip.bGuitar可視チップ) ||\r
+ (search == EChannel.Bass_WailingSound && chip.bBass可視チップ)\r
+ );\r
};\r
Func<CChip, bool> Future = (chip) => { return chip.n発声時刻ms > nTime; };\r
Func<CChip, bool> Past = (chip) => { return chip.n発声時刻ms <= nTime; };\r
return ret;\r
}\r
\r
- protected CChip r次に来る指定楽器Chipを更新して返す(E楽器パート inst)\r
+ protected CChip r次に来る指定楽器Chipを更新して返す(EPart inst)\r
{\r
CChip ret = null;\r
int nInputAdjustTime;\r
- if (inst == E楽器パート.GUITAR)\r
+ if (inst == EPart.Guitar)\r
{\r
- nInputAdjustTime = this.bIsAutoPlay.GtPick ? 0 : this.nInputAdjustTimeMs.Guitar;\r
- ret = this.r指定時刻に一番近い未ヒットChip(CSound管理.rc演奏用タイマ.n現在時刻, Ech定義.Guitar_WailingSound, nInputAdjustTime, 500);\r
+ nInputAdjustTime = CDTXMania.Instance.ConfigIni.bAutoPlay.GtPick ?\r
+ 0 : CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs.Guitar;\r
+ ret = this.r指定時刻に一番近い未ヒットChip(CSound管理.rc演奏用タイマ.n現在時刻, EChannel.Guitar_WailingSound, nInputAdjustTime, 500);\r
this.r次にくるギターChip = ret;\r
}\r
- else if (inst == E楽器パート.BASS)\r
+ else if (inst == EPart.Bass)\r
{\r
- nInputAdjustTime = this.bIsAutoPlay.BsPick ? 0 : this.nInputAdjustTimeMs.Bass;\r
- ret = this.r指定時刻に一番近い未ヒットChip(CSound管理.rc演奏用タイマ.n現在時刻, Ech定義.Bass_WailingSound, nInputAdjustTime, 500);\r
+ nInputAdjustTime = CDTXMania.Instance.ConfigIni.bAutoPlay.BsPick ?\r
+ 0 : CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs.Bass;\r
+ ret = this.r指定時刻に一番近い未ヒットChip(CSound管理.rc演奏用タイマ.n現在時刻, EChannel.Bass_WailingSound, nInputAdjustTime, 500);\r
this.r次にくるベースChip = ret;\r
}\r
return ret;\r
}\r
\r
- protected void ChangeInputAdjustTimeInPlaying(IInputDevice keyboard, int plusminus) // #23580 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
+ protected void ChangeInputAdjustTimeInPlaying(IInputDevice keyboard, int plusminus) // #23580 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\r
{\r
- E楽器パート part;\r
+ EPart part;\r
int offset = plusminus;\r
- if (keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.LeftShift) || keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.RightShift)) // Guitar InputAdjustTime\r
+ if (keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.LeftShift) || keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.RightShift)) // Guitar InputAdjustTime\r
{\r
- part = E楽器パート.GUITAR;\r
+ part = EPart.Guitar;\r
}\r
- else if (keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.LeftAlt) || keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.RightAlt)) // Bass InputAdjustTime\r
+ else if (keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.LeftAlt) || keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.RightAlt)) // Bass InputAdjustTime\r
{\r
- part = E楽器パート.BASS;\r
+ part = EPart.Bass;\r
}\r
else\r
{\r
// Drums InputAdjustTime\r
- part = E楽器パート.DRUMS;\r
+ part = EPart.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] > 99)\r
- {\r
- this.nInputAdjustTimeMs[part] = 99;\r
- }\r
- else if (this.nInputAdjustTimeMs[part] < -99)\r
- {\r
- this.nInputAdjustTimeMs[part] = -99;\r
- }\r
- CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[part] = this.nInputAdjustTimeMs[part];\r
+ CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[part].Value = CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[part] + offset;\r
}\r
\r
private void t入力処理_ドラム()\r
{\r
- for (int nPad = 0; nPad < (int)Eパッド.MAX; nPad++) // #27029 2012.1.4 from: <10 to <=10; Eパッドの要素が1つ(HP)増えたため。\r
- // 2012.1.5 yyagi: (int)Eパッド.MAX に変更。Eパッドの要素数への依存を無くすため。\r
+ for (EPad ePad = EPad.DrumsPadMin; ePad < EPad.DrumsPadMax; ePad++) // #27029 2012.1.4 from: <10 to <=10; Eパッドの要素が1つ(HP)増えたため。\r
+ // 2012.1.5 yyagi: (int)Eパッド.MAX に変更。Eパッドの要素数への依存を無くすため。\r
{\r
- List<STInputEvent> listInputEvent = CDTXMania.Instance.Pad.GetEvents(E楽器パート.DRUMS, (Eパッド)nPad);\r
+ List<STInputEvent> listInputEvent = CDTXMania.Instance.Pad.GetEvents(ePad);\r
\r
if ((listInputEvent == null) || (listInputEvent.Count == 0))\r
+ {\r
continue;\r
+ }\r
\r
- this.t入力メソッド記憶(E楽器パート.DRUMS);\r
+ this.t入力メソッド記憶(EPart.Drums);\r
\r
#region [ 打ち分けグループ調整 ]\r
//-----------------------------\r
EFTGroup eFTGroup = CDTXMania.Instance.ConfigIni.eFTGroup;\r
ECYGroup eCYGroup = CDTXMania.Instance.ConfigIni.eCYGroup;\r
\r
- if (!CDTXMania.Instance.DTX.bチップがある.Ride && (eCYGroup == ECYGroup.打ち分ける))\r
+ if (!CDTXMania.Instance.DTX.bチップがある.Ride && (eCYGroup == ECYGroup.Off))\r
{\r
- eCYGroup = ECYGroup.共通;\r
+ eCYGroup = ECYGroup.Group;\r
}\r
- if (!CDTXMania.Instance.DTX.bチップがある.HHOpen && (eHHGroup == EHHGroup.全部打ち分ける))\r
+ if (!CDTXMania.Instance.DTX.bチップがある.HHOpen && (eHHGroup == EHHGroup.Off))\r
{\r
- eHHGroup = EHHGroup.左シンバルのみ打ち分ける;\r
+ eHHGroup = EHHGroup.LC_HH;\r
}\r
- if (!CDTXMania.Instance.DTX.bチップがある.HHOpen && (eHHGroup == EHHGroup.ハイハットのみ打ち分ける))\r
+ if (!CDTXMania.Instance.DTX.bチップがある.HHOpen && (eHHGroup == EHHGroup.HO_HC))\r
{\r
- eHHGroup = EHHGroup.全部共通;\r
+ eHHGroup = EHHGroup.Group;\r
}\r
- if (!CDTXMania.Instance.DTX.bチップがある.LeftCymbal && (eHHGroup == EHHGroup.全部打ち分ける))\r
+ if (!CDTXMania.Instance.DTX.bチップがある.LeftCymbal && (eHHGroup == EHHGroup.Off))\r
{\r
- eHHGroup = EHHGroup.ハイハットのみ打ち分ける;\r
+ eHHGroup = EHHGroup.HO_HC;\r
}\r
- if (!CDTXMania.Instance.DTX.bチップがある.LeftCymbal && (eHHGroup == EHHGroup.左シンバルのみ打ち分ける))\r
+ if (!CDTXMania.Instance.DTX.bチップがある.LeftCymbal && (eHHGroup == EHHGroup.LC_HH))\r
{\r
- eHHGroup = EHHGroup.全部共通;\r
+ eHHGroup = EHHGroup.Group;\r
}\r
//-----------------------------\r
#endregion\r
continue;\r
\r
long nTime = inputEvent.nTimeStamp - CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻;\r
- int nPad09 = (nPad == (int)Eパッド.HP) ? (int)Eパッド.BD : nPad; // #27029 2012.1.5 yyagi\r
- int nInputAdjustTime = bIsAutoPlay[CStage演奏画面共通.nチャンネル0Atoレーン07[(int)nPad09]] ? 0 : nInputAdjustTimeMs.Drums;\r
-\r
+ EPad nPad09 = (ePad == EPad.HP) ? EPad.BD : ePad; // #27029 2012.1.5 yyagi\r
+ int nInputAdjustTime = CDTXMania.Instance.ConfigIni.bAutoPlay[nPad09] ? 0 : CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs.Drums;\r
bool bHitted = false;\r
\r
#region [ (A) ヒットしていればヒット処理して次の inputEvent へ ]\r
//-----------------------------\r
- switch (((Eパッド)nPad))\r
+ switch (ePad)\r
{\r
- case Eパッド.HH:\r
+ case EPad.HH:\r
#region [ HHとLC(groupingしている場合) のヒット処理 ]\r
//-----------------------------\r
{\r
if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.HH)\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
-\r
- CChip chipHC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatClose, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1); // HiHat Close\r
- CChip chipHO = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatOpen, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1); // HiHat Open\r
- CChip chipLC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1); // LC\r
- E判定 e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+\r
+ CChip chipHC = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.HiHatClose, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1); // HiHat Close\r
+ CChip chipHO = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.HiHatOpen, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1); // HiHat Open\r
+ CChip chipLC = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1); // LC\r
+ EJudge e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : EJudge.Miss;\r
switch (eHHGroup)\r
{\r
- case EHHGroup.ハイハットのみ打ち分ける:\r
+ case EHHGroup.HO_HC:\r
#region [ HCとLCのヒット処理 ]\r
//-----------------------------\r
- if ((e判定HC != E判定.Miss) && (e判定LC != E判定.Miss))\r
+ if ((e判定HC != EJudge.Miss) && (e判定LC != EJudge.Miss))\r
{\r
if (chipHC.n発声位置 < chipLC.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHC, inputEvent.nVelocity);\r
}\r
else if (chipHC.n発声位置 > chipLC.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipLC, inputEvent.nVelocity);\r
}\r
else\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipLC, inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if (e判定HC != E判定.Miss)\r
+ else if (e判定HC != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHC, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
- else if (e判定LC != E判定.Miss)\r
+ else if (e判定LC != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipLC, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
if (!bHitted)\r
break;\r
continue;\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case EHHGroup.左シンバルのみ打ち分ける:\r
+ case EHHGroup.LC_HH:\r
#region [ HCとHOのヒット処理 ]\r
//-----------------------------\r
- if ((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss))\r
+ if ((e判定HC != EJudge.Miss) && (e判定HO != EJudge.Miss))\r
{\r
if (chipHC.n発声位置 < chipHO.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHC, inputEvent.nVelocity);\r
}\r
else if (chipHC.n発声位置 > chipHO.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHO, inputEvent.nVelocity);\r
}\r
else\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHO, inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if (e判定HC != E判定.Miss)\r
+ else if (e判定HC != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHC, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
- else if (e判定HO != E判定.Miss)\r
+ else if (e判定HO != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHO, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
if (!bHitted)\r
break;\r
continue;\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case EHHGroup.全部共通:\r
+ case EHHGroup.Group:\r
#region [ HC,HO,LCのヒット処理 ]\r
//-----------------------------\r
- if (((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss)) && (e判定LC != E判定.Miss))\r
+ if (((e判定HC != EJudge.Miss) && (e判定HO != EJudge.Miss)) && (e判定LC != EJudge.Miss))\r
{\r
CChip chip;\r
CChip[] chipArray = new CChip[] { chipHC, chipHO, chipLC };\r
chipArray[1] = chipArray[2];\r
chipArray[2] = chip;\r
}\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipArray[0], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipArray[0], inputEvent.nVelocity);\r
if (chipArray[0].n発声位置 == chipArray[1].n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipArray[1], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipArray[1], inputEvent.nVelocity);\r
}\r
if (chipArray[0].n発声位置 == chipArray[2].n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipArray[2], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipArray[2], inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if ((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss))\r
+ else if ((e判定HC != EJudge.Miss) && (e判定HO != EJudge.Miss))\r
{\r
if (chipHC.n発声位置 < chipHO.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHC, inputEvent.nVelocity);\r
}\r
else if (chipHC.n発声位置 > chipHO.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHO, inputEvent.nVelocity);\r
}\r
else\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHO, inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if ((e判定HC != E判定.Miss) && (e判定LC != E判定.Miss))\r
+ else if ((e判定HC != EJudge.Miss) && (e判定LC != EJudge.Miss))\r
{\r
if (chipHC.n発声位置 < chipLC.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHC, inputEvent.nVelocity);\r
}\r
else if (chipHC.n発声位置 > chipLC.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipLC, inputEvent.nVelocity);\r
}\r
else\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipLC, inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if ((e判定HO != E判定.Miss) && (e判定LC != E判定.Miss))\r
+ else if ((e判定HO != EJudge.Miss) && (e判定LC != EJudge.Miss))\r
{\r
if (chipHO.n発声位置 < chipLC.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHO, inputEvent.nVelocity);\r
}\r
else if (chipHO.n発声位置 > chipLC.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipLC, inputEvent.nVelocity);\r
}\r
else\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipLC, inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if (e判定HC != E判定.Miss)\r
+ else if (e判定HC != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHC, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
- else if (e判定HO != E判定.Miss)\r
+ else if (e判定HO != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHO, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
- else if (e判定LC != E判定.Miss)\r
+ else if (e判定LC != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipLC, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
if (!bHitted)\r
break;\r
continue;\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
default:\r
#region [ 全部打ち分け時のヒット処理 ]\r
//-----------------------------\r
- if (e判定HC != E判定.Miss)\r
+ if (e判定HC != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HH, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HH, chipHC, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
if (!bHitted)\r
break;\r
continue;\r
- //-----------------------------\r
+ //-----------------------------\r
#endregion\r
}\r
if (!bHitted)\r
continue;\r
}\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case Eパッド.SD:\r
+ case EPad.SD:\r
#region [ SDのヒット処理 ]\r
//-----------------------------\r
- if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.SD) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- if (!this.tドラムヒット処理(nTime, Eパッド.SD, this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.Snare, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
+ if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.SD) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ if (!this.tドラムヒット処理(nTime, EPad.SD, this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.Snare, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
break;\r
continue;\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case Eパッド.BD:\r
+ case EPad.BD:\r
#region [ BDのヒット処理 ]\r
//-----------------------------\r
- if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.BD) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- if (!this.tドラムヒット処理(nTime, Eパッド.BD, this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.BassDrum, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
+ if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.BD) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ if (!this.tドラムヒット処理(nTime, EPad.BD, this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.BassDrum, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
break;\r
continue;\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case Eパッド.HT:\r
+ case EPad.HT:\r
#region [ HTのヒット処理 ]\r
//-----------------------------\r
- if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.HT) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- if (this.tドラムヒット処理(nTime, Eパッド.HT, this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HighTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
+ if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.HT) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ if (this.tドラムヒット処理(nTime, EPad.HT, this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.HighTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
continue;\r
break;\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case Eパッド.LT:\r
+ case EPad.LT:\r
#region [ LTとFT(groupingしている場合)のヒット処理 ]\r
//-----------------------------\r
{\r
- if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.LT) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- CChip chipLT = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LowTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
- CChip chipFT = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.FloorTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
- E判定 e判定LT = (chipLT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLT, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定FT = (chipFT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipFT, nInputAdjustTime) : E判定.Miss;\r
+ if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.LT) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ CChip chipLT = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.LowTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+ CChip chipFT = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.FloorTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+ EJudge e判定LT = (chipLT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLT, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定FT = (chipFT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipFT, nInputAdjustTime) : EJudge.Miss;\r
switch (eFTGroup)\r
{\r
- case EFTGroup.打ち分ける:\r
+ case EFTGroup.Off:\r
#region [ LTのヒット処理 ]\r
//-----------------------------\r
- if (e判定LT != E判定.Miss)\r
+ if (e判定LT != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.LT, chipLT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.LT, chipLT, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
break;\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case EFTGroup.共通:\r
+ case EFTGroup.Group:\r
#region [ LTとFTのヒット処理 ]\r
//-----------------------------\r
- if ((e判定LT != E判定.Miss) && (e判定FT != E判定.Miss))\r
+ if ((e判定LT != EJudge.Miss) && (e判定FT != EJudge.Miss))\r
{\r
if (chipLT.n発声位置 < chipFT.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.LT, chipLT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.LT, chipLT, inputEvent.nVelocity);\r
}\r
else if (chipLT.n発声位置 > chipFT.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.LT, chipFT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.LT, chipFT, inputEvent.nVelocity);\r
}\r
else\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.LT, chipLT, inputEvent.nVelocity);\r
- this.tドラムヒット処理(nTime, Eパッド.LT, chipFT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.LT, chipLT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.LT, chipFT, inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if (e判定LT != E判定.Miss)\r
+ else if (e判定LT != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.LT, chipLT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.LT, chipLT, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
- else if (e判定FT != E判定.Miss)\r
+ else if (e判定FT != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.LT, chipFT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.LT, chipFT, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
break;\r
- //-----------------------------\r
+ //-----------------------------\r
#endregion\r
}\r
if (!bHitted)\r
continue;\r
}\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case Eパッド.FT:\r
+ case EPad.FT:\r
#region [ FTとLT(groupingしている場合)のヒット処理 ]\r
//-----------------------------\r
{\r
- if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.FT) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- CChip chipLT = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LowTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
- CChip chipFT = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.FloorTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
- E判定 e判定LT = (chipLT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLT, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定FT = (chipFT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipFT, nInputAdjustTime) : E判定.Miss;\r
+ if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.FT) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ CChip chipLT = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.LowTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+ CChip chipFT = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.FloorTom, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+ EJudge e判定LT = (chipLT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLT, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定FT = (chipFT != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipFT, nInputAdjustTime) : EJudge.Miss;\r
switch (eFTGroup)\r
{\r
- case EFTGroup.打ち分ける:\r
+ case EFTGroup.Off:\r
#region [ FTのヒット処理 ]\r
//-----------------------------\r
- if (e判定FT != E判定.Miss)\r
+ if (e判定FT != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.FT, chipFT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.FT, chipFT, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
//-----------------------------\r
#endregion\r
break;\r
\r
- case EFTGroup.共通:\r
+ case EFTGroup.Group:\r
#region [ FTとLTのヒット処理 ]\r
//-----------------------------\r
- if ((e判定LT != E判定.Miss) && (e判定FT != E判定.Miss))\r
+ if ((e判定LT != EJudge.Miss) && (e判定FT != EJudge.Miss))\r
{\r
if (chipLT.n発声位置 < chipFT.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.FT, chipLT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.FT, chipLT, inputEvent.nVelocity);\r
}\r
else if (chipLT.n発声位置 > chipFT.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.FT, chipFT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.FT, chipFT, inputEvent.nVelocity);\r
}\r
else\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.FT, chipLT, inputEvent.nVelocity);\r
- this.tドラムヒット処理(nTime, Eパッド.FT, chipFT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.FT, chipLT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.FT, chipFT, inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if (e判定LT != E判定.Miss)\r
+ else if (e判定LT != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.FT, chipLT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.FT, chipLT, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
- else if (e判定FT != E判定.Miss)\r
+ else if (e判定FT != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.FT, chipFT, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.FT, chipFT, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
//-----------------------------\r
continue;\r
}\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case Eパッド.CY:\r
+ case EPad.CY:\r
#region [ CY(とLCとRD:groupingしている場合)のヒット処理 ]\r
//-----------------------------\r
{\r
- if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.CY) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- CChip chipCY = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.Cymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
- CChip chipRD = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.RideCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
- CChip chipLC = CDTXMania.Instance.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
- E判定 e判定CY = (chipCY != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipCY, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定RD = (chipRD != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipRD, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
+ if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.CY) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ CChip chipCY = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.Cymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+ CChip chipRD = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.RideCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+ CChip chipLC = CDTXMania.Instance.ConfigIni.bCymbalFree ? this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
+ EJudge e判定CY = (chipCY != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipCY, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定RD = (chipRD != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipRD, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : EJudge.Miss;\r
CChip[] chipArray = new CChip[] { chipCY, chipRD, chipLC };\r
- E判定[] e判定Array = new E判定[] { e判定CY, e判定RD, e判定LC };\r
- const int NumOfChips = 3; // chipArray.GetLength(0)\r
+ EJudge[] e判定Array = new EJudge[] { e判定CY, e判定RD, e判定LC };\r
+ const int NumOfChips = 3; // chipArray.GetLength(0)\r
\r
// CY/RD/LC群を, n発生位置の小さい順に並べる + nullを大きい方に退かす\r
SortChipsByNTime(chipArray, e判定Array, NumOfChips);\r
switch (eCYGroup)\r
{\r
- case ECYGroup.打ち分ける:\r
- if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
+ case ECYGroup.Off:\r
+ if (!CDTXMania.Instance.ConfigIni.bCymbalFree)\r
{\r
- if (e判定CY != E判定.Miss)\r
+ if (e判定CY != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.CY, chipCY, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.CY, chipCY, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
if (!bHitted)\r
}\r
for (int i = 0; i < NumOfChips; i++)\r
{\r
- if ((e判定Array[i] != E判定.Miss) && ((chipArray[i] == chipCY) || (chipArray[i] == chipLC)))\r
+ if ((e判定Array[i] != EJudge.Miss) && ((chipArray[i] == chipCY) || (chipArray[i] == chipLC)))\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.CY, chipArray[i], inputEvent.nVelocity);\r
bHitted = true;\r
break;\r
}\r
//num10++;\r
}\r
- if (e判定CY != E判定.Miss)\r
+ if (e判定CY != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.CY, chipCY, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.CY, chipCY, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
if (!bHitted)\r
break;\r
continue;\r
\r
- case ECYGroup.共通:\r
- if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
+ case ECYGroup.Group:\r
+ if (!CDTXMania.Instance.ConfigIni.bCymbalFree)\r
{\r
for (int i = 0; i < NumOfChips; i++)\r
{\r
- if ((e判定Array[i] != E判定.Miss) && ((chipArray[i] == chipCY) || (chipArray[i] == chipRD)))\r
+ if ((e判定Array[i] != EJudge.Miss) && ((chipArray[i] == chipCY) || (chipArray[i] == chipRD)))\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.CY, chipArray[i], inputEvent.nVelocity);\r
bHitted = true;\r
break;\r
}\r
}\r
for (int i = 0; i < NumOfChips; i++)\r
{\r
- if (e判定Array[i] != E判定.Miss)\r
+ if (e判定Array[i] != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.CY, chipArray[i], inputEvent.nVelocity);\r
bHitted = true;\r
break;\r
}\r
continue;\r
}\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case Eパッド.HHO:\r
+ case EPad.HHO:\r
#region [ HO(とHCとLC:groupingしている場合)のヒット処理 ]\r
//-----------------------------\r
{\r
if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.HH)\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
-\r
- CChip chipHC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatClose, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
- CChip chipHO = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatOpen, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
- CChip chipLC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
- E判定 e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+\r
+ CChip chipHC = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.HiHatClose, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+ CChip chipHO = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.HiHatOpen, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+ CChip chipLC = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+ EJudge e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : EJudge.Miss;\r
switch (eHHGroup)\r
{\r
- case EHHGroup.全部打ち分ける:\r
- if (e判定HO != E判定.Miss)\r
+ case EHHGroup.Off:\r
+ if (e判定HO != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHO, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
if (!bHitted)\r
break;\r
continue;\r
\r
- case EHHGroup.ハイハットのみ打ち分ける:\r
- if ((e判定HO != E判定.Miss) && (e判定LC != E判定.Miss))\r
+ case EHHGroup.HO_HC:\r
+ if ((e判定HO != EJudge.Miss) && (e判定LC != EJudge.Miss))\r
{\r
if (chipHO.n発声位置 < chipLC.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHO, inputEvent.nVelocity);\r
}\r
else if (chipHO.n発声位置 > chipLC.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipLC, inputEvent.nVelocity);\r
}\r
else\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipLC, inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if (e判定HO != E判定.Miss)\r
+ else if (e判定HO != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHO, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
- else if (e判定LC != E判定.Miss)\r
+ else if (e判定LC != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipLC, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
if (!bHitted)\r
break;\r
continue;\r
\r
- case EHHGroup.左シンバルのみ打ち分ける:\r
- if ((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss))\r
+ case EHHGroup.LC_HH:\r
+ if ((e判定HC != EJudge.Miss) && (e判定HO != EJudge.Miss))\r
{\r
if (chipHC.n発声位置 < chipHO.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHC, inputEvent.nVelocity);\r
}\r
else if (chipHC.n発声位置 > chipHO.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHO, inputEvent.nVelocity);\r
}\r
else\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHO, inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if (e判定HC != E判定.Miss)\r
+ else if (e判定HC != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHC, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
- else if (e判定HO != E判定.Miss)\r
+ else if (e判定HO != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHO, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
if (!bHitted)\r
break;\r
continue;\r
\r
- case EHHGroup.全部共通:\r
- if (((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss)) && (e判定LC != E判定.Miss))\r
+ case EHHGroup.Group:\r
+ if (((e判定HC != EJudge.Miss) && (e判定HO != EJudge.Miss)) && (e判定LC != EJudge.Miss))\r
{\r
CChip chip;\r
CChip[] chipArray = new CChip[] { chipHC, chipHO, chipLC };\r
chipArray[1] = chipArray[2];\r
chipArray[2] = chip;\r
}\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipArray[0], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipArray[0], inputEvent.nVelocity);\r
if (chipArray[0].n発声位置 == chipArray[1].n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipArray[1], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipArray[1], inputEvent.nVelocity);\r
}\r
if (chipArray[0].n発声位置 == chipArray[2].n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipArray[2], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipArray[2], inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if ((e判定HC != E判定.Miss) && (e判定HO != E判定.Miss))\r
+ else if ((e判定HC != EJudge.Miss) && (e判定HO != EJudge.Miss))\r
{\r
if (chipHC.n発声位置 < chipHO.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHC, inputEvent.nVelocity);\r
}\r
else if (chipHC.n発声位置 > chipHO.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHO, inputEvent.nVelocity);\r
}\r
else\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHO, inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if ((e判定HC != E判定.Miss) && (e判定LC != E判定.Miss))\r
+ else if ((e判定HC != EJudge.Miss) && (e判定LC != EJudge.Miss))\r
{\r
if (chipHC.n発声位置 < chipLC.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHC, inputEvent.nVelocity);\r
}\r
else if (chipHC.n発声位置 > chipLC.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipLC, inputEvent.nVelocity);\r
}\r
else\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipLC, inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if ((e判定HO != E判定.Miss) && (e判定LC != E判定.Miss))\r
+ else if ((e判定HO != EJudge.Miss) && (e判定LC != EJudge.Miss))\r
{\r
if (chipHO.n発声位置 < chipLC.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHO, inputEvent.nVelocity);\r
}\r
else if (chipHO.n発声位置 > chipLC.n発声位置)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipLC, inputEvent.nVelocity);\r
}\r
else\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipLC, inputEvent.nVelocity);\r
}\r
bHitted = true;\r
}\r
- else if (e判定HC != E判定.Miss)\r
+ else if (e判定HC != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHC, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
- else if (e判定HO != E判定.Miss)\r
+ else if (e判定HO != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipHO, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipHO, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
- else if (e判定LC != E判定.Miss)\r
+ else if (e判定LC != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.HHO, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.HHO, chipLC, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
if (!bHitted)\r
continue;\r
}\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case Eパッド.RD:\r
+ case EPad.RD:\r
#region [ RD(とCYとLC:groupingしている場合)のヒット処理 ]\r
//-----------------------------\r
{\r
- if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.RD) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- CChip chipCY = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.Cymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
- CChip chipRD = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.RideCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
- CChip chipLC = CDTXMania.Instance.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
- E判定 e判定CY = (chipCY != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipCY, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定RD = (chipRD != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipRD, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
+ if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.RD) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ CChip chipCY = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.Cymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+ CChip chipRD = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.RideCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1);\r
+ CChip chipLC = CDTXMania.Instance.ConfigIni.bCymbalFree ? this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
+ EJudge e判定CY = (chipCY != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipCY, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定RD = (chipRD != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipRD, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : EJudge.Miss;\r
CChip[] chipArray = new CChip[] { chipCY, chipRD, chipLC };\r
- E判定[] e判定Array = new E判定[] { e判定CY, e判定RD, e判定LC };\r
- const int NumOfChips = 3; // chipArray.GetLength(0)\r
+ EJudge[] e判定Array = new EJudge[] { e判定CY, e判定RD, e判定LC };\r
+ const int NumOfChips = 3; // chipArray.GetLength(0)\r
\r
// HH/CY群を, n発生位置の小さい順に並べる + nullを大きい方に退かす\r
SortChipsByNTime(chipArray, e判定Array, NumOfChips);\r
switch (eCYGroup)\r
{\r
- case ECYGroup.打ち分ける:\r
- if (e判定RD != E判定.Miss)\r
+ case ECYGroup.Off:\r
+ if (e判定RD != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.RD, chipRD, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.RD, chipRD, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
break;\r
\r
- case ECYGroup.共通:\r
- if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
+ case ECYGroup.Group:\r
+ if (!CDTXMania.Instance.ConfigIni.bCymbalFree)\r
{\r
for (int i = 0; i < NumOfChips; i++)\r
{\r
- if ((e判定Array[i] != E判定.Miss) && ((chipArray[i] == chipCY) || (chipArray[i] == chipRD)))\r
+ if ((e判定Array[i] != EJudge.Miss) && ((chipArray[i] == chipCY) || (chipArray[i] == chipRD)))\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.CY, chipArray[i], inputEvent.nVelocity);\r
bHitted = true;\r
break;\r
}\r
}\r
for (int i = 0; i < NumOfChips; i++)\r
{\r
- if (e判定Array[i] != E判定.Miss)\r
+ if (e判定Array[i] != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.CY, chipArray[i], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.CY, chipArray[i], inputEvent.nVelocity);\r
bHitted = true;\r
break;\r
}\r
break;\r
}\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case Eパッド.LC:\r
+ case EPad.LC:\r
#region [ LC(とHC/HOとCYと:groupingしている場合)のヒット処理 ]\r
//-----------------------------\r
{\r
- if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.LC) // #23857 2010.12.12 yyagi: to support VelocityMin\r
- continue; // 電子ドラムによる意図的なクロストークを無効にする\r
- CChip chipHC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatClose, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1); // HC\r
- CChip chipHO = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.HiHatOpen, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1); // HO\r
- CChip chipLC = this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1); // LC\r
- CChip chipCY = CDTXMania.Instance.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.Cymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
- CChip chipRD = CDTXMania.Instance.ConfigIni.bシンバルフリー ? this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.RideCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
- E判定 e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定CY = (chipCY != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipCY, nInputAdjustTime) : E判定.Miss;\r
- E判定 e判定RD = (chipRD != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipRD, nInputAdjustTime) : E判定.Miss;\r
+ if (inputEvent.nVelocity <= CDTXMania.Instance.ConfigIni.nVelocityMin.LC) // #23857 2010.12.12 yyagi: to support VelocityMin\r
+ continue; // 電子ドラムによる意図的なクロストークを無効にする\r
+ CChip chipHC = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.HiHatClose, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1); // HC\r
+ CChip chipHO = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.HiHatOpen, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1); // HO\r
+ CChip chipLC = this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.LeftCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1); // LC\r
+ CChip chipCY = CDTXMania.Instance.ConfigIni.bCymbalFree ? this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.Cymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
+ CChip chipRD = CDTXMania.Instance.ConfigIni.bCymbalFree ? this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.RideCymbal, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1) : null;\r
+ EJudge e判定HC = (chipHC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHC, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定HO = (chipHO != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipHO, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定LC = (chipLC != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipLC, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定CY = (chipCY != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipCY, nInputAdjustTime) : EJudge.Miss;\r
+ EJudge e判定RD = (chipRD != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipRD, nInputAdjustTime) : EJudge.Miss;\r
CChip[] chipArray = new CChip[] { chipHC, chipHO, chipLC, chipCY, chipRD };\r
- E判定[] e判定Array = new E判定[] { e判定HC, e判定HO, e判定LC, e判定CY, e判定RD };\r
- const int NumOfChips = 5; // chipArray.GetLength(0)\r
+ EJudge[] e判定Array = new EJudge[] { e判定HC, e判定HO, e判定LC, e判定CY, e判定RD };\r
+ const int NumOfChips = 5; // chipArray.GetLength(0)\r
\r
// HH/CY群を, n発生位置の小さい順に並べる + nullを大きい方に退かす\r
SortChipsByNTime(chipArray, e判定Array, NumOfChips);\r
switch (eHHGroup)\r
{\r
- case EHHGroup.全部打ち分ける:\r
- case EHHGroup.左シンバルのみ打ち分ける:\r
- if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
+ case EHHGroup.Off:\r
+ case EHHGroup.LC_HH:\r
+ if (!CDTXMania.Instance.ConfigIni.bCymbalFree)\r
{\r
- if (e判定LC != E判定.Miss)\r
+ if (e判定LC != EJudge.Miss)\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.LC, chipLC, inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.LC, chipLC, inputEvent.nVelocity);\r
bHitted = true;\r
}\r
if (!bHitted)\r
}\r
for (int i = 0; i < NumOfChips; i++)\r
{\r
- if ((e判定Array[i] != E判定.Miss) && (((chipArray[i] == chipLC) || (chipArray[i] == chipCY)) || ((chipArray[i] == chipRD) && (CDTXMania.Instance.ConfigIni.eCYGroup == ECYGroup.共通))))\r
+ if ((e判定Array[i] != EJudge.Miss) && (((chipArray[i] == chipLC) || (chipArray[i] == chipCY)) || ((chipArray[i] == chipRD) && (CDTXMania.Instance.ConfigIni.eCYGroup == ECYGroup.Group))))\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.LC, chipArray[i], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.LC, chipArray[i], inputEvent.nVelocity);\r
bHitted = true;\r
break;\r
}\r
break;\r
continue;\r
\r
- case EHHGroup.ハイハットのみ打ち分ける:\r
- case EHHGroup.全部共通:\r
- if (!CDTXMania.Instance.ConfigIni.bシンバルフリー)\r
+ case EHHGroup.HO_HC:\r
+ case EHHGroup.Group:\r
+ if (!CDTXMania.Instance.ConfigIni.bCymbalFree)\r
{\r
for (int i = 0; i < NumOfChips; i++)\r
{\r
- if ((e判定Array[i] != E判定.Miss) && (((chipArray[i] == chipLC) || (chipArray[i] == chipHC)) || (chipArray[i] == chipHO)))\r
+ if ((e判定Array[i] != EJudge.Miss) && (((chipArray[i] == chipLC) || (chipArray[i] == chipHC)) || (chipArray[i] == chipHO)))\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.LC, chipArray[i], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.LC, chipArray[i], inputEvent.nVelocity);\r
bHitted = true;\r
break;\r
}\r
}\r
for (int i = 0; i < NumOfChips; i++)\r
{\r
- if ((e判定Array[i] != E判定.Miss) && ((chipArray[i] != chipRD) || (CDTXMania.Instance.ConfigIni.eCYGroup == ECYGroup.共通)))\r
+ if ((e判定Array[i] != EJudge.Miss) && ((chipArray[i] != chipRD) || (CDTXMania.Instance.ConfigIni.eCYGroup == ECYGroup.Group)))\r
{\r
- this.tドラムヒット処理(nTime, Eパッド.LC, chipArray[i], inputEvent.nVelocity);\r
+ this.tドラムヒット処理(nTime, EPad.LC, chipArray[i], inputEvent.nVelocity);\r
bHitted = true;\r
break;\r
}\r
break;\r
}\r
//-----------------------------\r
- #endregion\r
+ #endregion\r
\r
- case Eパッド.HP: // #27029 2012.1.4 from\r
+ case EPad.HP: // #27029 2012.1.4 from\r
#region [ HPのヒット処理 ]\r
//-----------------\r
- if (CDTXMania.Instance.ConfigIni.eBDGroup == EBDGroup.どっちもBD)\r
+ if (CDTXMania.Instance.ConfigIni.eBDGroup == EBDGroup.Group)\r
{\r
#region [ BDとみなしてヒット処理 ]\r
//-----------------\r
- if (!this.tドラムヒット処理(nTime, Eパッド.BD, this.r指定時刻に一番近い未ヒットChip(nTime, Ech定義.BassDrum, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
+ if (!this.tドラムヒット処理(nTime, EPad.BD, this.r指定時刻に一番近い未ヒットChip(nTime, EChannel.BassDrum, nInputAdjustTime, CDTXMania.Instance.nPoor範囲ms + 1), inputEvent.nVelocity))\r
break;\r
continue;\r
//-----------------\r
{\r
#region [ HPのヒット処理 ]\r
//-----------------\r
- continue; // 何もしない。この入力を完全に無視するので、break しないこと。\r
- //-----------------\r
+ continue; // 何もしない。この入力を完全に無視するので、break しないこと。\r
+ //-----------------\r
#endregion\r
}\r
- //-----------------\r
+ //-----------------\r
#endregion\r
}\r
//-----------------------------\r
#endregion\r
#region [ (B) ヒットしてなかった場合は、レーンフラッシュ、パッドアニメ、空打ち音再生を実行 ]\r
//-----------------------------\r
- int pad = nPad; // 以下、nPad の代わりに pad を用いる。(成りすまし用)\r
+ EPad pad = ePad; // 以下、nPad の代わりに pad を用いる。(成りすまし用)\r
\r
- if (nPad == (int)Eパッド.HP) // #27029 2012.1.4 from: HP&BD 時の HiHatPedal の場合は BD に成りすます。\r
- pad = (int)Eパッド.BD; //( HP|BD 時のHP入力はここまでこないので無視。)\r
+ if (ePad == EPad.HP)\r
+ {\r
+ // #27029 2012.1.4 from: HP&BD 時の HiHatPedal の場合は BD に成りすます。\r
+ pad = EPad.BD;\r
+ //( HP|BD 時のHP入力はここまでこないので無視。)\r
+ }\r
\r
// レーンフラッシュ\r
- this.actLaneFlushD.Start((Eレーン)this.nパッド0Atoレーン07[pad], ((float)inputEvent.nVelocity) / 127f);\r
+ this.actLaneFlushD.Start(EnumConverter.LaneFromPad(pad), ((float)inputEvent.nVelocity) / 127f);\r
+\r
+ // パッド画像のヒット処理用\r
\r
// パッドアニメ\r
- this.actPad.Hit(this.nパッド0Atoパッド08[pad]);\r
+ this.actPad.Hit(pad);\r
\r
// 空打ち音\r
- if (CDTXMania.Instance.ConfigIni.bドラム打音を発声する)\r
+ if (CDTXMania.Instance.ConfigIni.bDrumsHitSound)\r
{\r
- CChip rChip = this.r空うちChip(E楽器パート.DRUMS, (Eパッド)pad);\r
+ CChip rChip = this.r空うちChip(EPart.Drums, pad);\r
if (rChip != null)\r
{\r
- #region [ (B1) 空打ち音が譜面で指定されているのでそれを再生する。]\r
- //-----------------\r
- this.tサウンド再生(rChip, CSound管理.rc演奏用タイマ.nシステム時刻, E楽器パート.DRUMS, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する.Drums);\r
- //-----------------\r
- #endregion\r
+ // (B1) 空打ち音が譜面で指定されているのでそれを再生する。\r
+ this.tサウンド再生(rChip, CSound管理.rc演奏用タイマ.nシステム時刻, EPart.Drums, CDTXMania.Instance.ConfigIni.nChipVolume, CDTXMania.Instance.ConfigIni.bEmphasizePlaySound.Drums);\r
}\r
else\r
{\r
#region [ (B2) 空打ち音が指定されていないので一番近いチップを探して再生する。]\r
- //-----------------\r
- switch (((Eパッド)pad))\r
+ switch (pad)\r
{\r
- case Eパッド.HH:\r
- #region [ *** ]\r
- //-----------------------------\r
+ case EPad.HH:\r
{\r
- CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime);\r
- CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime);\r
- CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime);\r
- switch (CDTXMania.Instance.ConfigIni.eHHGroup)\r
+ CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.HiHatClose, nInputAdjustTime);\r
+ CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.HiHatOpen, nInputAdjustTime);\r
+ CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.LeftCymbal, nInputAdjustTime);\r
+ switch (CDTXMania.Instance.ConfigIni.eHHGroup.Value)\r
{\r
- case EHHGroup.ハイハットのみ打ち分ける:\r
+ case EHHGroup.HO_HC:\r
rChip = (chipHC != null) ? chipHC : chipLC;\r
break;\r
\r
- case EHHGroup.左シンバルのみ打ち分ける:\r
+ case EHHGroup.LC_HH:\r
rChip = (chipHC != null) ? chipHC : chipHO;\r
break;\r
\r
- case EHHGroup.全部共通:\r
+ case EHHGroup.Group:\r
if (chipHC != null)\r
{\r
rChip = chipHC;\r
break;\r
}\r
}\r
- //-----------------------------\r
- #endregion\r
break;\r
\r
- case Eパッド.LT:\r
- #region [ *** ]\r
- //-----------------------------\r
+ case EPad.LT:\r
{\r
- CChip chipLT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[4], nInputAdjustTime);\r
- CChip chipFT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[5], nInputAdjustTime);\r
- if (CDTXMania.Instance.ConfigIni.eFTGroup != EFTGroup.打ち分ける)\r
+ CChip chipLT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.LowTom, nInputAdjustTime);\r
+ CChip chipFT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.FloorTom, nInputAdjustTime);\r
+ if (CDTXMania.Instance.ConfigIni.eFTGroup != EFTGroup.Off)\r
rChip = (chipLT != null) ? chipLT : chipFT;\r
else\r
rChip = chipLT;\r
}\r
- //-----------------------------\r
- #endregion\r
break;\r
\r
- case Eパッド.FT:\r
- #region [ *** ]\r
- //-----------------------------\r
+ case EPad.FT:\r
{\r
- CChip chipLT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[4], nInputAdjustTime);\r
- CChip chipFT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[5], nInputAdjustTime);\r
- if (CDTXMania.Instance.ConfigIni.eFTGroup != EFTGroup.打ち分ける)\r
+ CChip chipLT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.LowTom, nInputAdjustTime);\r
+ CChip chipFT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.FloorTom, nInputAdjustTime);\r
+ if (CDTXMania.Instance.ConfigIni.eFTGroup != EFTGroup.Off)\r
rChip = (chipFT != null) ? chipFT : chipLT;\r
else\r
rChip = chipFT;\r
}\r
- //-----------------------------\r
- #endregion\r
break;\r
\r
- case Eパッド.CY:\r
- #region [ *** ]\r
- //-----------------------------\r
+ case EPad.CY:\r
{\r
- CChip chipCY = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[6], nInputAdjustTime);\r
- CChip chipRD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[8], nInputAdjustTime);\r
- if (CDTXMania.Instance.ConfigIni.eCYGroup != ECYGroup.打ち分ける)\r
+ CChip chipCY = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.Cymbal, nInputAdjustTime);\r
+ CChip chipRD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.RideCymbal, nInputAdjustTime);\r
+ if (CDTXMania.Instance.ConfigIni.eCYGroup != ECYGroup.Off)\r
rChip = (chipCY != null) ? chipCY : chipRD;\r
else\r
rChip = chipCY;\r
}\r
- //-----------------------------\r
- #endregion\r
break;\r
\r
- case Eパッド.HHO:\r
- #region [ *** ]\r
- //-----------------------------\r
+ case EPad.HHO:\r
{\r
- CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime);\r
- CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime);\r
- CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime);\r
- switch (CDTXMania.Instance.ConfigIni.eHHGroup)\r
+ CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.HiHatClose, nInputAdjustTime);\r
+ CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.HiHatOpen, nInputAdjustTime);\r
+ CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.LeftCymbal, nInputAdjustTime);\r
+ switch (CDTXMania.Instance.ConfigIni.eHHGroup.Value)\r
{\r
- case EHHGroup.全部打ち分ける:\r
+ case EHHGroup.Off:\r
rChip = chipHO;\r
break;\r
\r
- case EHHGroup.ハイハットのみ打ち分ける:\r
+ case EHHGroup.HO_HC:\r
rChip = (chipHO != null) ? chipHO : chipLC;\r
break;\r
\r
- case EHHGroup.左シンバルのみ打ち分ける:\r
+ case EHHGroup.LC_HH:\r
rChip = (chipHO != null) ? chipHO : chipHC;\r
break;\r
\r
- case EHHGroup.全部共通:\r
+ case EHHGroup.Group:\r
if (chipHO != null)\r
{\r
rChip = chipHO;\r
break;\r
}\r
}\r
- //-----------------------------\r
- #endregion\r
break;\r
\r
- case Eパッド.RD:\r
- #region [ *** ]\r
- //-----------------------------\r
+ case EPad.RD:\r
{\r
- CChip chipCY = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[6], nInputAdjustTime);\r
- CChip chipRD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[8], nInputAdjustTime);\r
- if (CDTXMania.Instance.ConfigIni.eCYGroup != ECYGroup.打ち分ける)\r
+ CChip chipCY = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.Cymbal, nInputAdjustTime);\r
+ CChip chipRD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.RideCymbal, nInputAdjustTime);\r
+ if (CDTXMania.Instance.ConfigIni.eCYGroup != ECYGroup.Off)\r
rChip = (chipRD != null) ? chipRD : chipCY;\r
else\r
rChip = chipRD;\r
}\r
- //-----------------------------\r
- #endregion\r
break;\r
\r
- case Eパッド.LC:\r
- #region [ *** ]\r
- //-----------------------------\r
+ case EPad.LC:\r
{\r
- CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime);\r
- CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime);\r
- CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime);\r
- switch (CDTXMania.Instance.ConfigIni.eHHGroup)\r
+ CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.HiHatClose, nInputAdjustTime);\r
+ CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.HiHatOpen, nInputAdjustTime);\r
+ CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EChannel.LeftCymbal, nInputAdjustTime);\r
+ switch (CDTXMania.Instance.ConfigIni.eHHGroup.Value)\r
{\r
- case EHHGroup.全部打ち分ける:\r
- case EHHGroup.左シンバルのみ打ち分ける:\r
+ case EHHGroup.Off:\r
+ case EHHGroup.LC_HH:\r
rChip = chipLC;\r
break;\r
\r
- case EHHGroup.ハイハットのみ打ち分ける:\r
- case EHHGroup.全部共通:\r
+ case EHHGroup.HO_HC:\r
+ case EHHGroup.Group:\r
if (chipLC != null)\r
{\r
rChip = chipLC;\r
break;\r
}\r
}\r
- //-----------------------------\r
- #endregion\r
break;\r
\r
default:\r
- #region [ *** ]\r
- //-----------------------------\r
- rChip = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[pad], nInputAdjustTime);\r
- //-----------------------------\r
- #endregion\r
+ rChip = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, EnumConverter.ChannelFromPad(pad), nInputAdjustTime);\r
break;\r
}\r
if (rChip != null)\r
{\r
// 空打ち音が見つかったので再生する。\r
- this.tサウンド再生(rChip, CSound管理.rc演奏用タイマ.nシステム時刻, E楽器パート.DRUMS, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する.Drums);\r
+ this.tサウンド再生(rChip, CSound管理.rc演奏用タイマ.nシステム時刻, EPart.Drums, CDTXMania.Instance.ConfigIni.nChipVolume, CDTXMania.Instance.ConfigIni.bEmphasizePlaySound.Drums);\r
}\r
//-----------------\r
#endregion\r
\r
// BAD or TIGHT 時の処理。\r
if (CDTXMania.Instance.ConfigIni.bTight)\r
- this.tチップのヒット処理_BadならびにTight時のMiss(E楽器パート.DRUMS, this.nパッド0Atoレーン07[pad]);\r
- //-----------------------------\r
+ this.tチップのヒット処理_BadならびにTight時のMiss(EPart.Drums, EnumConverter.LaneFromPad(pad));//nパッド0Atoレーン07[(int)pad]\r
+ //-----------------------------\r
#endregion\r
}\r
}\r
\r
private void ドラムスクロール速度アップ()\r
{\r
- int scrollSpeed = CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums;\r
- CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums = Math.Min(scrollSpeed + 1, 1999);\r
+ int scrollSpeed = CDTXMania.Instance.ConfigIni.nScrollSpeed.Drums;\r
+ CDTXMania.Instance.ConfigIni.nScrollSpeed.Drums.Value = scrollSpeed + 1;\r
float f = (float)CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums / (scrollSpeed + 1);\r
- if (scrollSpeed < CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums)\r
+ if (scrollSpeed < CDTXMania.Instance.ConfigIni.nScrollSpeed.Drums)\r
{\r
- CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums = (int)(f * (CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + 1) + 0.5);\r
+ CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums.Value = ((int)(f * (CDTXMania.Instance.ConfigIni.nScrollSpeed.Drums + 1) + 0.5));\r
}\r
}\r
\r
private void ドラムスクロール速度ダウン()\r
{\r
- int scrollSpeed = CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums;\r
- CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums = Math.Max(scrollSpeed - 1, 0);\r
+ int scrollSpeed = CDTXMania.Instance.ConfigIni.nScrollSpeed.Drums;\r
+ CDTXMania.Instance.ConfigIni.nScrollSpeed.Drums.Value = (scrollSpeed - 1);\r
float f = (float)CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums / (scrollSpeed + 1);\r
- if (scrollSpeed > CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums)\r
+ if (scrollSpeed > CDTXMania.Instance.ConfigIni.nScrollSpeed.Drums)\r
{\r
- CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums = (int)(f * (CDTXMania.Instance.ConfigIni.n譜面スクロール速度.Drums + 1) + 0.5);\r
+ CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums.Value = ((int)(f * (CDTXMania.Instance.ConfigIni.nScrollSpeed.Drums + 1) + 0.5));\r
}\r
}\r
\r
{\r
IInputDevice keyboard = CDTXMania.Instance.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
+ (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
\r
if ((pChip.n発声時刻ms + nDuration > 0) && (pChip.n発声時刻ms <= nStartTime_) && (nStartTime_ <= pChip.n発声時刻ms + nDuration))\r
{\r
- if (pChip.bWAVを使うチャンネルである && !pChip.b空打ちチップである) // wav系チャンネル、且つ、空打ちチップではない\r
+ if (pChip.bWAVを使うチャンネルである && !pChip.b空打ちチップである) // wav系チャンネル、且つ、空打ちチップではない\r
{\r
CDTX.CWAV wc;\r
bool b = CDTXMania.Instance.DTX.listWAV.TryGetValue(pChip.n整数値_内部番号, out wc);\r
if (!b) continue;\r
\r
- if ((wc.bIsBGMSound && CDTXMania.Instance.ConfigIni.bBGM音を発声する) || (!wc.bIsBGMSound))\r
+ if ((wc.bIsBGMSound && CDTXMania.Instance.ConfigIni.bBGMPlay) || (!wc.bIsBGMSound))\r
{\r
- CDTXMania.Instance.DTX.tチップの再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, (int)Eレーン.BGM, CDTXMania.Instance.DTX.nモニタを考慮した音量(E楽器パート.UNKNOWN));\r
+ CDTXMania.Instance.DTX.tチップの再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, CDTXMania.Instance.DTX.nモニタを考慮した音量(EPart.Unknown));\r
#region [ PAUSEする ]\r
int j = wc.n現在再生中のサウンド番号;\r
if (wc.rSound[j] != null)\r
}\r
if (CDTXMania.Instance.ConfigIni.bGuitar有効)\r
{\r
- this.t入力処理_ギターベース(E楽器パート.GUITAR);\r
- this.t入力処理_ギターベース(E楽器パート.BASS);\r
+ this.t入力処理_ギターベース(EPart.Guitar);\r
+ this.t入力処理_ギターベース(EPart.Bass);\r
}\r
\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
+ { // shift (+ctrl) + UpArrow (BGMAdjust)\r
CDTXMania.Instance.DTX.t各自動再生音チップの再生時刻を変更する((keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.LeftControl) || keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.RightControl)) ? 1 : 10);\r
CDTXMania.Instance.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
+ { // shift + DownArrow (BGMAdjust)\r
CDTXMania.Instance.DTX.t各自動再生音チップの再生時刻を変更する((keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.LeftControl) || keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.RightControl)) ? -1 : -10);\r
CDTXMania.Instance.DTX.tWave再生位置自動補正();\r
}\r
else if (keyboard.bキーが押された((int)SlimDX.DirectInput.Key.UpArrow))\r
- { // UpArrow(scrollspeed up)\r
+ { // UpArrow(scrollspeed up)\r
ドラムスクロール速度アップ();\r
}\r
else if (keyboard.bキーが押された((int)SlimDX.DirectInput.Key.DownArrow))\r
- { // DownArrow (scrollspeed down)\r
+ { // DownArrow (scrollspeed down)\r
ドラムスクロール速度ダウン();\r
}\r
else if (keyboard.bキーが押された((int)SlimDX.DirectInput.Key.Delete))\r
- { // del (debug info)\r
- CDTXMania.Instance.ConfigIni.b演奏情報を表示する = !CDTXMania.Instance.ConfigIni.b演奏情報を表示する;\r
+ { // del (debug info)\r
+ CDTXMania.Instance.ConfigIni.bDebugInfo.Value = !CDTXMania.Instance.ConfigIni.bDebugInfo;\r
}\r
- else if (keyboard.bキーが押された((int)SlimDX.DirectInput.Key.LeftArrow)) // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen.\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
+ 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 (keyboard.bキーが押された((int)SlimDX.DirectInput.Key.F5))\r
{\r
- int n描画遅延ms = CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums;\r
- n描画遅延ms = Math.Max(n描画遅延ms - 1, -99);\r
- CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums =\r
- CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Guitar =\r
- CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Bass = n描画遅延ms;\r
+ int nVal = CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums - 1;\r
+ CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums.Value =\r
+ CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Guitar.Value =\r
+ CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Bass.Value = nVal;\r
}\r
else if (keyboard.bキーが押された((int)SlimDX.DirectInput.Key.F6))\r
{\r
- int n描画遅延ms = CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums;\r
- n描画遅延ms = Math.Min(n描画遅延ms + 1, 99);\r
- CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums =\r
- CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Guitar =\r
- CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Bass = n描画遅延ms;\r
+ int nVal = CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums + 1;\r
+ CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Drums.Value =\r
+ CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Guitar.Value =\r
+ CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset.Bass.Value = nVal;\r
}\r
- else if ((base.eフェーズID == CStage.Eフェーズ.共通_通常状態) && (keyboard.bキーが押された((int)SlimDX.DirectInput.Key.Escape) || CDTXMania.Instance.Pad.b押されたGB(Eパッド.FT)))\r
- { // escape (exit)\r
+ else if ((base.eフェーズID == CStage.Eフェーズ.共通_通常状態) &&\r
+ (keyboard.bキーが押された((int)SlimDX.DirectInput.Key.Escape) ||\r
+ CDTXMania.Instance.Pad.bCancelPadIsPressedGB()))\r
+ {\r
+ // escape (exit)\r
this.actFO.tフェードアウト開始();\r
base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;\r
this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.演奏中断;\r
}\r
}\r
\r
- protected void t入力メソッド記憶(E楽器パート part)\r
+ protected void t入力メソッド記憶(EPart part)\r
{\r
if (CDTXMania.Instance.Pad.st検知したデバイス.Keyboard)\r
{\r
}\r
}\r
\r
- private void t進行描画_DANGER()\r
- {\r
- this.actDANGER.t進行描画(actGauge.IsDanger);\r
- }\r
- protected void t進行描画_MIDIBGM()\r
- {\r
- if (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED)\r
- {\r
- CStage.Eフェーズ eフェーズid1 = base.eフェーズID;\r
- }\r
- }\r
- protected void t進行描画_RGBボタン()\r
- {\r
- if (CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL)\r
- {\r
- this.actRGB.On進行描画();\r
- }\r
- }\r
- protected void t進行描画_STAGEFAILED()\r
- {\r
- if (((base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED) || (base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) && ((this.actStageFailed.On進行描画() != 0) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)))\r
- {\r
- this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージ失敗;\r
- base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト;\r
- this.actFO.tフェードアウト開始();\r
- }\r
- }\r
- protected void t進行描画_WailingBonus()\r
- {\r
- if ((base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト))\r
- {\r
- this.actWailingBonus.On進行描画();\r
- }\r
- }\r
-\r
- private void t進行描画_チップファイアGB()\r
- {\r
- this.actChipFireGB.On進行描画();\r
- }\r
-\r
- protected void t進行描画_ゲージ()\r
- {\r
- if (((CDTXMania.Instance.ConfigIni.eDark != Eダークモード.HALF) && (CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL)) && ((base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)))\r
- {\r
- this.actGauge.On進行描画();\r
- }\r
- }\r
-\r
-\r
- protected void t進行描画_コンボ()\r
- {\r
- this.actCombo.On進行描画();\r
- }\r
-\r
- protected void t進行描画_スコア()\r
- {\r
- this.actScore.On進行描画();\r
- }\r
-\r
- protected void t進行描画_ステータスパネル()\r
- {\r
- this.actStatusPanels.On進行描画();\r
- }\r
/// <summary>\r
/// チップに関連する処理を行う。\r
/// </summary>\r
return true;\r
}\r
\r
- CDTX dTX = CDTXMania.Instance.DTX;\r
- CConfigIni configIni = CDTXMania.Instance.ConfigIni;\r
- for (int nCurrentTopChip = this.n現在のトップChip; nCurrentTopChip < dTX.listChip.Count; nCurrentTopChip++)\r
+ //CDTX dTX = CDTXMania.Instance.DTX;\r
+ //CConfigIni configIni = CDTXMania.Instance.ConfigIni;\r
+ for (int nCurrentTopChip = this.n現在のトップChip; nCurrentTopChip < CDTXMania.Instance.DTX.listChip.Count; nCurrentTopChip++)\r
{\r
- CChip pChip = dTX.listChip[nCurrentTopChip];\r
+ CChip pChip = CDTXMania.Instance.DTX.listChip[nCurrentTopChip];\r
//Debug.WriteLine( "nCurrentTopChip=" + nCurrentTopChip + ", ch=" + pChip.nチャンネル番号.ToString("x2") + ", 発音位置=" + pChip.n発声位置 + ", 発声時刻ms=" + pChip.n発声時刻ms );\r
pChip.CalcDistanceFromBar(CSound管理.rc演奏用タイマ.n現在時刻, this.act譜面スクロール速度.db現在の譜面スクロール速度);\r
if (Math.Min(Math.Min(pChip.nバーからの距離dot.Drums, pChip.nバーからの距離dot.Guitar), pChip.nバーからの距離dot.Bass) > 450 * Scale.Y)\r
break;\r
}\r
// #28026 2012.4.5 yyagi; 信心ワールドエンドの曲終了後リザルトになかなか行かない問題の修正\r
- if ((dTX.listChip[this.n現在のトップChip].nバーからの距離dot.Drums < -65 * Scale.Y) && // 小節線の消失処理などに影響するため、\r
- (dTX.listChip[this.n現在のトップChip].nバーからの距離dot.Guitar < -65 * Scale.Y) && // Drumsのスクロールスピードだけには依存させない。\r
- (dTX.listChip[this.n現在のトップChip].nバーからの距離dot.Bass < -65 * Scale.Y) &&\r
- dTX.listChip[this.n現在のトップChip].bHit)\r
+ if ((CDTXMania.Instance.DTX.listChip[this.n現在のトップChip].nバーからの距離dot.Drums < -65 * Scale.Y) && // 小節線の消失処理などに影響するため、\r
+ (CDTXMania.Instance.DTX.listChip[this.n現在のトップChip].nバーからの距離dot.Guitar < -65 * Scale.Y) && // Drumsのスクロールスピードだけには依存させない。\r
+ (CDTXMania.Instance.DTX.listChip[this.n現在のトップChip].nバーからの距離dot.Bass < -65 * Scale.Y) &&\r
+ CDTXMania.Instance.DTX.listChip[this.n現在のトップChip].bHit)\r
{\r
++this.n現在のトップChip;\r
continue;\r
}\r
- bool bPChipIsAutoPlay = pChip.bAssignAutoPlayState(bIsAutoPlay);\r
+ bool bPChipIsAutoPlay = pChip.bAssignAutoPlayState();\r
\r
- int nInputAdjustTime = (bPChipIsAutoPlay || (pChip.e楽器パート == E楽器パート.UNKNOWN)) ? 0 : this.nInputAdjustTimeMs[pChip.e楽器パート];\r
+ int nInputAdjustTime = (bPChipIsAutoPlay || (pChip.e楽器パート == EPart.Unknown)) ? 0 : CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[pChip.e楽器パート];\r
\r
- E楽器パート inst = pChip.e楽器パート;\r
- if (((pChip.e楽器パート != E楽器パート.UNKNOWN) && !pChip.bHit) &&\r
- ((pChip.nバーからの距離dot[inst] < -40 * Scale.Y) &&\r
- (this.e指定時刻からChipのJUDGEを返す(CSound管理.rc演奏用タイマ.n現在時刻, pChip, nInputAdjustTime) == E判定.Miss)))\r
+ EPart inst = pChip.e楽器パート;\r
+ if (((pChip.e楽器パート != EPart.Unknown) && !pChip.bHit) &&\r
+ ((pChip.nバーからの距離dot[inst] < -40 * Scale.Y) &&\r
+ (this.e指定時刻からChipのJUDGEを返す(CSound管理.rc演奏用タイマ.n現在時刻, pChip, nInputAdjustTime) == EJudge.Miss)))\r
{\r
- this.tチップのヒット処理(CSound管理.rc演奏用タイマ.n現在時刻, pChip); //チップ消失(Hitせずスルーした場合)\r
+ this.tチップのヒット処理(CSound管理.rc演奏用タイマ.n現在時刻, pChip); //チップ消失(Hitせずスルーした場合)\r
}\r
- if (((pChip.e楽器パート != E楽器パート.UNKNOWN) && !pChip.bHit) &&\r
- ((pChip.nバーからの距離dot[inst] + CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset[inst] < 0)))\r
+ if (((pChip.e楽器パート != EPart.Unknown) && !pChip.bHit) &&\r
+ ((pChip.nバーからの距離dot[inst] + CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset[inst] < 0)))\r
{\r
//Debug.WriteLine( "透明度=" + pChip.n透明度 );\r
- pChip.n透明度 -= 12; // チップが判定バーを越えたら、徐々に透明にする。VSyncWaitの有無で加減が変わるが・・\r
+ pChip.n透明度 -= 12; // チップが判定バーを越えたら、徐々に透明にする。VSyncWaitの有無で加減が変わるが・・\r
if (pChip.n透明度 < 0)\r
{\r
pChip.n透明度 = 0;\r
}\r
\r
// #35411 chnmr0 add (ターゲットゴースト)\r
- if (CDTXMania.Instance.ConfigIni.eTargetGhost[inst] != ETargetGhostData.NONE &&\r
- CDTXMania.Instance.DTX.listTargetGhsotLag[inst] != null &&\r
- pChip.e楽器パート != E楽器パート.UNKNOWN &&\r
- pChip.nバーからの距離dot[inst] < 0)\r
+ if (CDTXMania.Instance.ConfigIni.eTargetGhost[inst] != ETargetGhostData.None &&\r
+ CDTXMania.Instance.DTX.listTargetGhsotLag[inst] != null &&\r
+ pChip.e楽器パート != EPart.Unknown &&\r
+ pChip.nバーからの距離dot[inst] < 0)\r
{\r
if (!pChip.bTargetGhost判定済み)\r
{\r
}\r
ghostLag = (ghostLag & 255) - 128;\r
}\r
- else if (CDTXMania.Instance.ConfigIni.eTargetGhost[inst] == ETargetGhostData.PERFECT)\r
+ else if (CDTXMania.Instance.ConfigIni.eTargetGhost[inst] == ETargetGhostData.Perfect)\r
{\r
ghostLag = 0;\r
}\r
\r
if (ghostLag <= 127)\r
{\r
- E判定 eJudge = this.e指定時刻からChipのJUDGEを返す(pChip.n発声時刻ms + ghostLag, pChip, 0, false);\r
+ EJudge eJudge = this.e指定時刻からChipのJUDGEを返す(pChip.n発声時刻ms + ghostLag, pChip, 0, false);\r
this.nヒット数_TargetGhost[inst][(int)eJudge]++;\r
- if (eJudge == E判定.Miss || eJudge == E判定.Poor)\r
+ if (eJudge == EJudge.Miss || eJudge == EJudge.Poor)\r
{\r
this.n最大コンボ数_TargetGhost[inst] = Math.Max(this.n最大コンボ数_TargetGhost[inst], this.nコンボ数_TargetGhost[inst]);\r
this.nコンボ数_TargetGhost[inst] = 0;\r
}\r
}\r
\r
- if (pChip[Ech定義.BGM] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+ if (pChip[EChannel.BGM] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
{\r
pChip.bHit = true;\r
- if (configIni.bBGM音を発声する)\r
+ if (CDTXMania.Instance.ConfigIni.bBGMPlay)\r
{\r
//long t = CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms;\r
//Trace.TraceInformation( "BGM再生開始: 演奏タイマのn前回リセットしたときのシステム時刻=" + CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + ", pChip.n発生時刻ms=" + pChip.n発声時刻ms + ", 合計=" + t );\r
- dTX.tチップの再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, (int)Eレーン.BGM, dTX.nモニタを考慮した音量(E楽器パート.UNKNOWN));\r
+ CDTXMania.Instance.DTX.tチップの再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, CDTXMania.Instance.DTX.nモニタを考慮した音量(EPart.Unknown));\r
}\r
}\r
- else if (pChip[Ech定義.BPM] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+ else if (pChip[EChannel.BPM] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
{\r
pChip.bHit = true;\r
- this.actPlayInfo.dbBPM = (pChip.n整数値 * (((double)configIni.n演奏速度) / 20.0)) + dTX.BASEBPM;\r
+ this.actPlayInfo.dbBPM = (pChip.n整数値 * (((double)CDTXMania.Instance.ConfigIni.nPlaySpeed) / 20.0)) + CDTXMania.Instance.DTX.BASEBPM;\r
}\r
else if (pChip.bBGALayer && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
{\r
pChip.bHit = true;\r
- if (configIni.bBGA有効)\r
+ if (CDTXMania.Instance.ConfigIni.bBGA)\r
{\r
switch (pChip.eBGA種別)\r
{\r
- case EBGA種別.BMPTEX:\r
+ case EBGAType.BMPTEX:\r
if (pChip.rBMPTEX != null)\r
{\r
this.actBGA.Start(pChip, null, pChip.rBMPTEX, pChip.rBMPTEX.tx画像.sz画像サイズ.Width, pChip.rBMPTEX.tx画像.sz画像サイズ.Height, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\r
}\r
break;\r
\r
- case EBGA種別.BGA:\r
+ case EBGAType.BGA:\r
if ((pChip.rBGA != null) && ((pChip.rBMP != null) || (pChip.rBMPTEX != null)))\r
{\r
this.actBGA.Start(pChip, pChip.rBMP, pChip.rBMPTEX, pChip.rBGA.pt画像側右下座標.X - pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側右下座標.Y - pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt画像側左上座標.X, pChip.rBGA.pt画像側左上座標.Y, 0, 0, pChip.rBGA.pt表示座標.X, pChip.rBGA.pt表示座標.Y, 0, 0, 0);\r
}\r
break;\r
\r
- case EBGA種別.BGAPAN:\r
+ case EBGAType.BGAPAN:\r
if ((pChip.rBGAPan != null) && ((pChip.rBMP != null) || (pChip.rBMPTEX != null)))\r
{\r
this.actBGA.Start(pChip, pChip.rBMP, pChip.rBMPTEX, pChip.rBGAPan.sz開始サイズ.Width, pChip.rBGAPan.sz開始サイズ.Height, pChip.rBGAPan.sz終了サイズ.Width, pChip.rBGAPan.sz終了サイズ.Height, pChip.rBGAPan.pt画像側開始位置.X, pChip.rBGAPan.pt画像側開始位置.Y, pChip.rBGAPan.pt画像側終了位置.X, pChip.rBGAPan.pt画像側終了位置.Y, pChip.rBGAPan.pt表示側開始位置.X, pChip.rBGAPan.pt表示側開始位置.Y, pChip.rBGAPan.pt表示側終了位置.X, pChip.rBGAPan.pt表示側終了位置.Y, pChip.n総移動時間);\r
}\r
}\r
}\r
- else if (pChip[Ech定義.BPMEx] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+ else if (pChip[EChannel.BPMEx] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
{\r
pChip.bHit = true;\r
- if (dTX.listBPM.ContainsKey(pChip.n整数値_内部番号))\r
+ if (CDTXMania.Instance.DTX.listBPM.ContainsKey(pChip.n整数値_内部番号))\r
{\r
- this.actPlayInfo.dbBPM = (dTX.listBPM[pChip.n整数値_内部番号].dbBPM値 * (((double)configIni.n演奏速度) / 20.0)) + dTX.BASEBPM;\r
+ this.actPlayInfo.dbBPM = (CDTXMania.Instance.DTX.listBPM[pChip.n整数値_内部番号].dbBPM値 *\r
+ (((double)CDTXMania.Instance.ConfigIni.nPlaySpeed) / 20.0)) +\r
+ CDTXMania.Instance.DTX.BASEBPM;\r
}\r
}\r
else if (pChip.bDrums可視チップ && pChip.b空打ちチップである)\r
pChip.bHit = true;\r
if (CDTXMania.Instance.ConfigIni.bDrums有効)\r
{\r
- this.r現在の空うちドラムChip[(int)this.eチャンネルtoパッド[pChip.eチャンネル番号 - Ech定義.HiHatClose]] = pChip;\r
+ this.r現在の空うちドラムChip[(int)(EnumConverter.PadFromChannel(pChip.eチャンネル番号) - EPad.DrumsPadMin)] = pChip;\r
}\r
}\r
}\r
{\r
this.t進行描画_チップ_ドラムス(ref pChip);\r
}\r
- else if (pChip[Ech定義.DrumsFillin] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+ else if (pChip[EChannel.DrumsFillin] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
{\r
pChip.bHit = true;\r
this.r現在の歓声Chip.Drums = pChip;\r
}\r
else if (pChip.bGuitar可視チップ)\r
{\r
- this.t進行描画_チップ_ギターベース(ref pChip, E楽器パート.GUITAR);\r
+ this.t進行描画_チップ_ギターベース(ref pChip, EPart.Guitar);\r
}\r
- else if (pChip[Ech定義.Guitar_Wailing])\r
+ else if (pChip[EChannel.Guitar_Wailing])\r
{\r
this.t進行描画_チップ_ウェイリング(ref pChip);\r
}\r
- else if (pChip[Ech定義.Guitar_WailingSound] && !pChip.bHit && (pChip.nバーからの距離dot.Guitar < 0))\r
+ else if (pChip[EChannel.Guitar_WailingSound] && !pChip.bHit && (pChip.nバーからの距離dot.Guitar < 0))\r
{\r
pChip.bHit = true;\r
this.r現在の歓声Chip.Guitar = pChip;\r
{\r
pChip.bHit = true;\r
}\r
- else if (pChip[Ech定義.BarLine] || pChip[Ech定義.BeatLine])// 小節線\r
+ else if (pChip[EChannel.BarLine] || pChip[EChannel.BeatLine])// 小節線\r
{\r
this.t進行描画_チップ_小節線_拍線(ref pChip);\r
}\r
- else if (pChip[Ech定義.MIDIChorus] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+ else if (pChip[EChannel.MIDIChorus] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
{\r
pChip.bHit = true;\r
}\r
- else if (pChip[Ech定義.FillIn])\r
+ else if (pChip[EChannel.FillIn])\r
{\r
this.t進行描画_チップ_フィルイン(ref pChip);\r
}\r
else if (pChip.bMovie && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
{\r
pChip.bHit = true;\r
- if (configIni.bAVI有効)\r
+ if (CDTXMania.Instance.ConfigIni.bAVI)\r
{\r
if (CDTXMania.Instance.DTX.bチップがある.BGA)\r
{\r
this.actAVI.bHasBGA = true;\r
}\r
- if (pChip.eチャンネル番号 == Ech定義.MovieFull || CDTXMania.Instance.ConfigIni.bForceAVIFullscreen)\r
+ if (pChip.eチャンネル番号 == EChannel.MovieFull || CDTXMania.Instance.ConfigIni.bFullAVI)\r
{\r
this.actAVI.bFullScreenMovie = true;\r
}\r
switch (pChip.eAVI種別)\r
{\r
- case EAVI種別.AVI:\r
+ case EAVIType.AVI:\r
{\r
int startWidth = !this.actAVI.bFullScreenMovie ? 278 : SampleFramework.GameWindowSize.Width;\r
int startHeight = !this.actAVI.bFullScreenMovie ? 355 : SampleFramework.GameWindowSize.Height;\r
}\r
break;\r
\r
- case EAVI種別.AVIPAN:\r
+ case EAVIType.AVIPAN:\r
if (pChip.rAVIPan != null)\r
{\r
this.actAVI.Start(pChip.eチャンネル番号, pChip.rAVI, pChip.rAVIPan.sz開始サイズ.Width, pChip.rAVIPan.sz開始サイズ.Height, pChip.rAVIPan.sz終了サイズ.Width, pChip.rAVIPan.sz終了サイズ.Height, pChip.rAVIPan.pt動画側開始位置.X, pChip.rAVIPan.pt動画側開始位置.Y, pChip.rAVIPan.pt動画側終了位置.X, pChip.rAVIPan.pt動画側終了位置.Y, pChip.rAVIPan.pt表示側開始位置.X, pChip.rAVIPan.pt表示側開始位置.Y, pChip.rAVIPan.pt表示側終了位置.X, pChip.rAVIPan.pt表示側終了位置.Y, pChip.n総移動時間, pChip.n発声時刻ms);\r
else if (pChip.bSE && !pChip.bOverrideSE && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
{\r
pChip.bHit = true;\r
- if (configIni.bBGM音を発声する)\r
+ if (CDTXMania.Instance.ConfigIni.bBGMPlay)\r
{\r
- dTX.tWavの再生停止(this.n最後に再生したBGMの実WAV番号[pChip.eチャンネル番号 - Ech定義.SE01]);\r
- dTX.tチップの再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, (int)Eレーン.BGM, dTX.nモニタを考慮した音量(E楽器パート.UNKNOWN));\r
- this.n最後に再生したBGMの実WAV番号[pChip.eチャンネル番号 - Ech定義.SE01] = pChip.n整数値_内部番号;\r
+ CDTXMania.Instance.DTX.tWavの再生停止(this.n最後に再生したBGMの実WAV番号[pChip.eチャンネル番号 - EChannel.SE01]);\r
+ CDTXMania.Instance.DTX.tチップの再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, CDTXMania.Instance.DTX.nモニタを考慮した音量(EPart.Unknown));\r
+ this.n最後に再生したBGMの実WAV番号[pChip.eチャンネル番号 - EChannel.SE01] = pChip.n整数値_内部番号;\r
}\r
}\r
else if (pChip.bOverrideSE && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
\r
// protected void tサウンド再生( CDTX.CChip pChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ, bool b音程をずらして再生 )\r
pChip.bHit = true;\r
- E楽器パート[] p = { E楽器パート.DRUMS, E楽器パート.DRUMS, E楽器パート.DRUMS, E楽器パート.DRUMS, E楽器パート.GUITAR, E楽器パート.BASS };\r
+ EPart[] p = { EPart.Drums, EPart.Drums, EPart.Drums, EPart.Drums, EPart.Guitar, EPart.Bass };\r
\r
- E楽器パート pp = p[pChip.eチャンネル番号 - Ech定義.SE24];\r
+ EPart pp = p[pChip.eチャンネル番号 - EChannel.SE24];\r
\r
// if ( pp == E楽器パート.DRUMS ) { // pChip.nチャンネル番号= ..... HHとか、ドラムの場合は変える。\r
// // HC CY RD LC\r
// int[] ch = { 0x11, 0x16, 0x19, 0x1A };\r
// pChip.nチャンネル番号 = ch[ pChip.nチャンネル番号 - 0x84 ]; \r
// }\r
- this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, pp, dTX.nモニタを考慮した音量(pp));\r
+ this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, pp, CDTXMania.Instance.DTX.nモニタを考慮した音量(pp));\r
}\r
\r
else if (pChip.bBass可視チップ)\r
{\r
- this.t進行描画_チップ_ギターベース(ref pChip, E楽器パート.BASS);\r
+ this.t進行描画_チップ_ギターベース(ref pChip, EPart.Bass);\r
}\r
- else if (pChip[Ech定義.Bass_Wailing])\r
+ else if (pChip[EChannel.Bass_Wailing])\r
{\r
this.t進行描画_チップ_ウェイリング(ref pChip);\r
}\r
- else if (pChip[Ech定義.Bass_WailingSound] && !pChip.bHit && (pChip.nバーからの距離dot.Bass < 0))\r
+ else if (pChip[EChannel.Bass_WailingSound] && !pChip.bHit && (pChip.nバーからの距離dot.Bass < 0))\r
{\r
pChip.bHit = true;\r
this.r現在の歓声Chip.Bass = pChip;\r
}\r
- else if (pChip[Ech定義.Guitar_NoChip] && !pChip.bHit && (pChip.nバーからの距離dot.Guitar < 0))\r
+ else if (pChip[EChannel.Guitar_NoChip] && !pChip.bHit && (pChip.nバーからの距離dot.Guitar < 0))\r
{\r
pChip.bHit = true;\r
this.r現在の空うちギターChip = pChip;\r
pChip.ConvertGBNoChip();\r
}\r
- else if (pChip[Ech定義.Bass_NoChip] && !pChip.bHit && (pChip.nバーからの距離dot.Bass < 0))\r
+ else if (pChip[EChannel.Bass_NoChip] && !pChip.bHit && (pChip.nバーからの距離dot.Bass < 0))\r
{\r
pChip.bHit = true;\r
this.r現在の空うちベースChip = pChip;\r
else if (pChip.bBGALayerSwap && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
{\r
pChip.bHit = true;\r
- if ((configIni.bBGA有効 && (pChip.eBGA種別 == EBGA種別.BMP)) || (pChip.eBGA種別 == EBGA種別.BMPTEX))\r
+ if ((CDTXMania.Instance.ConfigIni.bBGA && (pChip.eBGA種別 == EBGAType.BMP)) || (pChip.eBGA種別 == EBGAType.BMPTEX))\r
{\r
this.actBGA.ChangeScope(pChip);\r
}\r
}\r
- else if (pChip[Ech定義.MixerAdd] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+ else if (pChip[EChannel.MixerAdd] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
{\r
//Debug.WriteLine( "[DA(AddMixer)] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString( "x2" ) + ", wav=" + pChip.n整数値.ToString( "x2" ) + ", time=" + pChip.n発声時刻ms );\r
pChip.bHit = true;\r
- if (CDTXMania.Instance.DTX.listWAV.ContainsKey(pChip.n整数値_内部番号)) // 参照が遠いので後日最適化する\r
+ if (CDTXMania.Instance.DTX.listWAV.ContainsKey(pChip.n整数値_内部番号)) // 参照が遠いので後日最適化する\r
{\r
CDTX.CWAV wc = CDTXMania.Instance.DTX.listWAV[pChip.n整数値_内部番号];\r
//Debug.Write( "[AddMixer] BAR=" + pChip.n発声位置 / 384 + ", wav=" + Path.GetFileName( wc.strファイル名 ) + ", time=" + pChip.n発声時刻ms );\r
\r
- for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPoliphonicSounds; i++)\r
+ for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPolyphonicSounds; i++)\r
{\r
if (wc.rSound[i] != null)\r
{\r
}\r
}\r
}\r
- else if (pChip[Ech定義.MixerRemove] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+ else if (pChip[EChannel.MixerRemove] && !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
{\r
//Debug.WriteLine( "[DB(RemoveMixer)] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString( "x2" ) + ", wav=" + pChip.n整数値.ToString( "x2" ) + ", time=" + pChip.n発声時刻ms );\r
pChip.bHit = true;\r
- if (CDTXMania.Instance.DTX.listWAV.ContainsKey(pChip.n整数値_内部番号)) // 参照が遠いので後日最適化する\r
+ if (CDTXMania.Instance.DTX.listWAV.ContainsKey(pChip.n整数値_内部番号)) // 参照が遠いので後日最適化する\r
{\r
CDTX.CWAV wc = CDTXMania.Instance.DTX.listWAV[pChip.n整数値_内部番号];\r
//Debug.Write( "[DelMixer] BAR=" + pChip.n発声位置 / 384 + ", wav=" + Path.GetFileName( wc.strファイル名 ) + ", time=" + pChip.n発声時刻ms );\r
- for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPoliphonicSounds; i++)\r
+ for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPolyphonicSounds; i++)\r
{\r
if (wc.rSound[i] != null)\r
{\r
//CDTXMania.Instance.Sound管理.RemoveMixer( wc.rSound[ i ] );\r
- if (!wc.rSound[i].b演奏終了後も再生が続くチップである) // #32248 2013.10.16 yyagi\r
- { // DTX終了後も再生が続くチップの0xDB登録をなくすことはできず。\r
- RemoveMixer(wc.rSound[i]); // (ミキサー解除のタイミングが遅延する場合の対応が面倒なので。)\r
- } // そこで、代わりにフラグをチェックしてミキサー削除ロジックへの遷移をカットする。\r
+ if (!wc.rSound[i].b演奏終了後も再生が続くチップである) // #32248 2013.10.16 yyagi\r
+ { // DTX終了後も再生が続くチップの0xDB登録をなくすことはできず。\r
+ RemoveMixer(wc.rSound[i]); // (ミキサー解除のタイミングが遅延する場合の対応が面倒なので。)\r
+ } // そこで、代わりにフラグをチェックしてミキサー削除ロジックへの遷移をカットする。\r
}\r
//else\r
//{\r
}\r
}\r
}\r
- else if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+ else if ( pChip[ EChannel.Click ] && !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+ {\r
+ pChip.bHit = true;\r
+ if ( CDTXMania.Instance.ConfigIni.eClickType != EClickType.Off )\r
+ {\r
+ switch (pChip.n整数値)\r
+ {\r
+ case 1:\r
+ CDTXMania.Instance.Skin.soundClickHigh.t再生する();\r
+ break;\r
+ case 2:\r
+ CDTXMania.Instance.Skin.soundClickLow.t再生する();\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ else if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
{\r
// other chips\r
pChip.bHit = true;\r
\r
// #34048 2014.7.16 yyagi\r
#region [ 読み込み画面に遷移する前に、設定変更した可能性があるパラメータをConfigIniクラスに書き戻す ]\r
- for (E楽器パート i = E楽器パート.DRUMS; i <= E楽器パート.BASS; i++)\r
+ for (EPart i = EPart.Drums; i <= EPart.Bass; i++)\r
{\r
- CDTXMania.Instance.ConfigIni.nViewerScrollSpeed[i] = CDTXMania.Instance.ConfigIni.n譜面スクロール速度[i];\r
+ CDTXMania.Instance.ConfigIni.nViewerScrollSpeed[i] = CDTXMania.Instance.ConfigIni.nScrollSpeed[i];\r
}\r
- CDTXMania.Instance.ConfigIni.b演奏情報を表示する = CDTXMania.Instance.ConfigIni.bViewerShowDebugStatus;\r
+ CDTXMania.Instance.ConfigIni.bDebugInfo = CDTXMania.Instance.ConfigIni.bViewerShowDebugStatus;\r
#endregion\r
}\r
\r
CDTXMania.Instance.DTX.t全チップの再生停止とミキサーからの削除();\r
this.actAVI.Stop();\r
this.actBGA.Stop();\r
- this.actPanel.Stop(); // PANEL表示停止\r
- CDTXMania.Instance.Timer.t一時停止(); // 再生時刻カウンタ停止\r
+ this.actPanel.Stop(); // PANEL表示停止\r
+ CDTXMania.Instance.Timer.t一時停止(); // 再生時刻カウンタ停止\r
\r
- this.n現在のトップChip = CDTXMania.Instance.DTX.listChip.Count - 1; // 終端にシーク\r
+ this.n現在のトップChip = CDTXMania.Instance.DTX.listChip.Count - 1; // 終端にシーク\r
\r
// 自分自身のOn活性化()相当の処理もすべき。\r
}\r
this.actBGA.Stop();\r
\r
#region [ 再生開始小節の変更 ]\r
- nStartBar++; // +1が必要\r
+ // +1が必要\r
+ nStartBar++;\r
\r
#region [ 演奏済みフラグのついたChipをリセットする ]\r
for (int i = 0; i < CDTXMania.Instance.DTX.listChip.Count; i++)\r
if (!bSuccessSeek)\r
{\r
// this.n現在のトップChip = CDTXMania.Instance.DTX.listChip.Count - 1;\r
- this.n現在のトップChip = 0; // 対象小節が存在しないなら、最初から再生\r
+ this.n現在のトップChip = 0; // 対象小節が存在しないなら、最初から再生\r
}\r
#endregion\r
\r
#region [ 演奏開始の発声時刻msを取得し、タイマに設定 ]\r
int nStartTime = CDTXMania.Instance.DTX.listChip[this.n現在のトップChip].n発声時刻ms;\r
\r
- CSound管理.rc演奏用タイマ.tリセット(); // これでPAUSE解除されるので、次のPAUSEチェックは不要\r
- //if ( !this.bPAUSE )\r
- //{\r
+ CSound管理.rc演奏用タイマ.tリセット(); // これでPAUSE解除されるので、次のPAUSEチェックは不要\r
+ //if ( !this.bPAUSE )\r
+ //{\r
CSound管理.rc演奏用タイマ.t一時停止();\r
//}\r
CSound管理.rc演奏用タイマ.n現在時刻 = nStartTime;\r
\r
if ((pChip.n発声時刻ms + nDuration > 0) && (pChip.n発声時刻ms <= nStartTime) && (nStartTime <= pChip.n発声時刻ms + nDuration))\r
{\r
- if (pChip.bWAVを使うチャンネルである && !pChip.b空打ちチップである) // wav系チャンネル、且つ、空打ちチップではない\r
+ if (pChip.bWAVを使うチャンネルである && !pChip.b空打ちチップである) // wav系チャンネル、且つ、空打ちチップではない\r
{\r
CDTX.CWAV wc;\r
bool b = CDTXMania.Instance.DTX.listWAV.TryGetValue(pChip.n整数値_内部番号, out wc);\r
if (!b) continue;\r
\r
- if ((wc.bIsBGMSound && CDTXMania.Instance.ConfigIni.bBGM音を発声する) || (!wc.bIsBGMSound))\r
+ if ((wc.bIsBGMSound && CDTXMania.Instance.ConfigIni.bBGMPlay) || (!wc.bIsBGMSound))\r
{\r
- CDTXMania.Instance.DTX.tチップの再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, (int)Eレーン.BGM, CDTXMania.Instance.DTX.nモニタを考慮した音量(E楽器パート.UNKNOWN));\r
+ CDTXMania.Instance.DTX.tチップの再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, CDTXMania.Instance.DTX.nモニタを考慮した音量(EPart.Unknown));\r
#region [ PAUSEする ]\r
int j = wc.n現在再生中のサウンド番号;\r
if (wc.rSound[j] != null)\r
#endregion\r
#region [ タイマを再開して、PAUSEから復帰する ]\r
CSound管理.rc演奏用タイマ.n現在時刻 = nStartTime;\r
- CDTXMania.Instance.Timer.tリセット(); // これでPAUSE解除されるので、3行先の再開()は不要\r
- CDTXMania.Instance.Timer.n現在時刻 = nStartTime; // Debug表示のTime: 表記を正しくするために必要\r
+ CDTXMania.Instance.Timer.tリセット(); // これでPAUSE解除されるので、3行先の再開()は不要\r
+ CDTXMania.Instance.Timer.n現在時刻 = nStartTime; // Debug表示のTime: 表記を正しくするために必要\r
CSound管理.rc演奏用タイマ.t再開();\r
//CDTXMania.Instance.Timer.t再開();\r
- this.bPAUSE = false; // システムがPAUSE状態だったら、強制解除\r
+ this.bPAUSE = false; // システムがPAUSE状態だったら、強制解除\r
this.actPanel.Start();\r
#endregion\r
#endregion\r
/// </summary>\r
protected void tDTXV用の設定()\r
{\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.HH = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.SD = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.BD = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.HT = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.LT = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.CY = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.FT = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.RD = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.LC = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtR = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtG = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtB = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtPick = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtW = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.BsR = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.BsG = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.BsB = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.BsPick = true;\r
- CDTXMania.Instance.ConfigIni.bAutoPlay.BsW = true;\r
-\r
- this.bIsAutoPlay = CDTXMania.Instance.ConfigIni.bAutoPlay;\r
-\r
- CDTXMania.Instance.ConfigIni.bAVI有効 = true;\r
- CDTXMania.Instance.ConfigIni.bBGA有効 = true;\r
- for (E楽器パート i = E楽器パート.DRUMS; i <= E楽器パート.BASS; i++)\r
- {\r
- CDTXMania.Instance.ConfigIni.bGraph = false;\r
- CDTXMania.Instance.ConfigIni.bHidden[i] = false;\r
- CDTXMania.Instance.ConfigIni.bLeft[i] = false;\r
- CDTXMania.Instance.ConfigIni.bLight[i] = false;\r
- CDTXMania.Instance.ConfigIni.bReverse[i] = false;\r
- CDTXMania.Instance.ConfigIni.bSudden[i] = false;\r
- CDTXMania.Instance.ConfigIni.eInvisible[i] = EInvisible.OFF;\r
- CDTXMania.Instance.ConfigIni.eRandom[i] = Eランダムモード.OFF;\r
- CDTXMania.Instance.ConfigIni.n表示可能な最小コンボ数[i] = 65535;\r
- CDTXMania.Instance.ConfigIni.判定文字表示位置[i] = E判定文字表示位置.表示OFF;\r
- // CDTXMania.Instance.ConfigIni.n譜面スクロール速度[ i ] = CDTXMania.Instance.ConfigIni.nViewerScrollSpeed[ i ]; // これだけはOn活性化()で行うこと。\r
- // そうしないと、演奏開始直後にスクロール速度が変化して見苦しい。\r
- }\r
-\r
- CDTXMania.Instance.ConfigIni.eDark = Eダークモード.OFF;\r
-\r
- CDTXMania.Instance.ConfigIni.b演奏情報を表示する = CDTXMania.Instance.ConfigIni.bViewerShowDebugStatus;\r
- CDTXMania.Instance.ConfigIni.bフィルイン有効 = true;\r
- CDTXMania.Instance.ConfigIni.bScoreIniを出力する = false;\r
- CDTXMania.Instance.ConfigIni.bSTAGEFAILED有効 = false;\r
- CDTXMania.Instance.ConfigIni.bTight = false;\r
- CDTXMania.Instance.ConfigIni.bストイックモード = false;\r
- CDTXMania.Instance.ConfigIni.bドラム打音を発声する = true;\r
- CDTXMania.Instance.ConfigIni.bBGM音を発声する = true;\r
-\r
- CDTXMania.Instance.ConfigIni.nRisky = 0;\r
- CDTXMania.Instance.ConfigIni.nShowLagType = 0;\r
- CDTXMania.Instance.ConfigIni.ドラムコンボ文字の表示位置 = Eドラムコンボ文字の表示位置.OFF;\r
+ for (EPad i = EPad.Min; i < EPad.Max; ++i)\r
+ {\r
+ CDTXMania.Instance.ConfigIni.bAutoPlay[i].Value = true;\r
+ }\r
+ CDTXMania.Instance.ConfigIni.bAVI.Value = true;\r
+ CDTXMania.Instance.ConfigIni.bBGA.Value = true;\r
+ for (EPart i = EPart.Drums; i <= EPart.Bass; i++)\r
+ {\r
+ CDTXMania.Instance.ConfigIni.bGraph[i].Value = false;\r
+ CDTXMania.Instance.ConfigIni.eSudHidInv[i].Value = ESudHidInv.Off;\r
+ CDTXMania.Instance.ConfigIni.bLight[i].Value = false;\r
+ CDTXMania.Instance.ConfigIni.bReverse[i].Value = false;\r
+ CDTXMania.Instance.ConfigIni.eRandom[i].Value = ERandom.Off;\r
+ CDTXMania.Instance.ConfigIni.nMinComboDisp[i].Value = 65535;\r
+ CDTXMania.Instance.ConfigIni.bDisplayJudge[i].Value = false;\r
+ CDTXMania.Instance.ConfigIni.bDisplayCombo[i].Value = false;\r
+ }\r
+ CDTXMania.Instance.ConfigIni.eDark.Value = EDark.Off;\r
+ CDTXMania.Instance.ConfigIni.bDebugInfo.Value = CDTXMania.Instance.ConfigIni.bViewerShowDebugStatus;\r
+ CDTXMania.Instance.ConfigIni.bFillin.Value = true;\r
+ CDTXMania.Instance.ConfigIni.bScoreIni.Value = false;\r
+ CDTXMania.Instance.ConfigIni.bStageFailed.Value = false;\r
+ CDTXMania.Instance.ConfigIni.bTight.Value = false;\r
+ CDTXMania.Instance.ConfigIni.bStoicMode.Value = false;\r
+ CDTXMania.Instance.ConfigIni.bDrumsHitSound.Value = true;\r
+ CDTXMania.Instance.ConfigIni.bBGMPlay.Value = true;\r
+ CDTXMania.Instance.ConfigIni.nRisky.Value = 0;\r
+ CDTXMania.Instance.ConfigIni.nShowLagType.Value = EShowLagType.Off;\r
}\r
\r
-\r
private void t進行描画_チップ_ウェイリング(ref CChip pChip)\r
{\r
if (CDTXMania.Instance.ConfigIni.bGuitar有効)\r
{\r
- E楽器パート indexInst = pChip.bGuitar可視チップ_Wailing含む ? E楽器パート.GUITAR : E楽器パート.BASS;\r
- #region [ Invisible処理 ]\r
- if (CDTXMania.Instance.ConfigIni.eInvisible[indexInst] != EInvisible.OFF)\r
+ EPart indexInst = pChip.bGuitar可視チップ_Wailing含む ? EPart.Guitar : EPart.Bass;\r
+ #region [ Sud Hid Inv 処理 ]\r
+ if (\r
+ CDTXMania.Instance.ConfigIni.eSudHidInv[indexInst] == ESudHidInv.FullInv ||\r
+ CDTXMania.Instance.ConfigIni.eSudHidInv[indexInst] == ESudHidInv.SemiInv)\r
{\r
cInvisibleChip.SetInvisibleStatus(ref pChip);\r
}\r
- #endregion\r
- #region [ Sudden/Hidden処理 ]\r
- if (CDTXMania.Instance.ConfigIni.bSudden[indexInst])\r
- {\r
- pChip.b可視 = (pChip.nバーからの距離dot[indexInst] < 200 * Scale.Y);\r
- }\r
- if (CDTXMania.Instance.ConfigIni.bHidden[indexInst] && (pChip.nバーからの距離dot[indexInst] < 100 * Scale.Y))\r
+ else\r
{\r
- pChip.b可視 = false;\r
+ if (CDTXMania.Instance.ConfigIni.eSudHidInv[indexInst] == ESudHidInv.Sudden ||\r
+ CDTXMania.Instance.ConfigIni.eSudHidInv[indexInst] == ESudHidInv.SudHid)\r
+ {\r
+ pChip.b可視 = (pChip.nバーからの距離dot[indexInst] < CDTXMania.Instance.ConfigIni.nSuddenFrom[indexInst]);\r
+ }\r
+ if (CDTXMania.Instance.ConfigIni.eSudHidInv[indexInst] == ESudHidInv.Hidden ||\r
+ CDTXMania.Instance.ConfigIni.eSudHidInv[indexInst] == ESudHidInv.SudHid)\r
+ {\r
+ pChip.b可視 = pChip.nバーからの距離dot[indexInst] >= CDTXMania.Instance.ConfigIni.nHiddenFrom[indexInst];\r
+ }\r
}\r
#endregion\r
-\r
cWailingChip[(int)indexInst].t進行描画_チップ_ウェイリング(ref pChip, ref txチップGB, ref ctWailingチップ模様アニメ);\r
\r
if (!pChip.bHit && (pChip.nバーからの距離dot[indexInst] < 0))\r
{\r
- if (pChip.nバーからの距離dot[indexInst] < -234 * Scale.Y) // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec). \r
+ if (pChip.nバーからの距離dot[indexInst] < -234 * Scale.Y) // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec). \r
{\r
pChip.bHit = true;\r
}\r
- bool autoW = (indexInst == E楽器パート.GUITAR) ? CDTXMania.Instance.ConfigIni.bAutoPlay.GtW : CDTXMania.Instance.ConfigIni.bAutoPlay.BsW;\r
+ bool autoW = (indexInst == EPart.Guitar) ? CDTXMania.Instance.ConfigIni.bAutoPlay.GtWail : CDTXMania.Instance.ConfigIni.bAutoPlay.BsWail;\r
if (autoW)\r
{\r
// #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
\r
protected void t進行描画_チップアニメ()\r
{\r
- for (E楽器パート i = E楽器パート.DRUMS; i <= E楽器パート.BASS; i++) // 0=drums, 1=guitar, 2=bass\r
+ for (EPart i = EPart.Drums; i <= EPart.Bass; i++) // 0=drums, 1=guitar, 2=bass\r
{\r
if (this.ctチップ模様アニメ[i] != null)\r
{\r
}\r
return false;\r
}\r
- protected void t進行描画_レーンフラッシュD()\r
- {\r
- if ((CDTXMania.Instance.ConfigIni.eDark == Eダークモード.OFF) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト))\r
- {\r
- this.actLaneFlushD.On進行描画();\r
- }\r
- }\r
- protected void t進行描画_レーンフラッシュGB()\r
- {\r
- if ((CDTXMania.Instance.ConfigIni.eDark == Eダークモード.OFF) && CDTXMania.Instance.ConfigIni.bGuitar有効)\r
- {\r
- this.actLaneFlushGB.On進行描画();\r
- }\r
- }\r
-\r
-\r
-\r
- protected void t進行描画_判定文字列()\r
- {\r
- this.actJudgeString.On進行描画();\r
- }\r
- protected void t進行描画_判定文字列1_通常位置指定の場合()\r
- {\r
- this.actJudgeString.On進行描画();\r
- }\r
- protected void t進行描画_判定文字列2_判定ライン上指定の場合()\r
- {\r
- if (((E判定文字表示位置)CDTXMania.Instance.ConfigIni.判定文字表示位置.Drums) == E判定文字表示位置.コンボ下) // 判定ライン上または横\r
- {\r
- this.actJudgeString.On進行描画();\r
- }\r
- }\r
\r
- protected void t進行描画_譜面スクロール速度()\r
- {\r
- this.act譜面スクロール速度.On進行描画();\r
- }\r
-\r
- protected virtual void t入力処理_ギターベース(E楽器パート inst)\r
+ protected virtual void t入力処理_ギターベース(EPart inst)\r
{\r
#region [ スクロール速度変更 ]\r
- int scrollSpeed = CDTXMania.Instance.ConfigIni.n譜面スクロール速度[inst];\r
+ int scrollSpeed = CDTXMania.Instance.ConfigIni.nScrollSpeed[inst];\r
bool scrollSpeedChanged = false;\r
float f = (float)CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset[inst] / (scrollSpeed + 1);\r
- if (CDTXMania.Instance.Pad.b押されている(inst, Eパッド.Decide) && CDTXMania.Instance.Pad.b押された(inst, Eパッド.B))\r
+ if (\r
+ CDTXMania.Instance.Pad.b押されている(inst == EPart.Guitar ? EPad.GtDecide : EPad.BsDecide) &&\r
+ CDTXMania.Instance.Pad.b押された(inst == EPart.Guitar ? EPad.GtB : EPad.BsB)\r
+ )\r
{\r
- CDTXMania.Instance.ConfigIni.n譜面スクロール速度[inst] = Math.Min(scrollSpeed + 1, 1999);\r
- if (scrollSpeed < CDTXMania.Instance.ConfigIni.n譜面スクロール速度[inst])\r
+ CDTXMania.Instance.ConfigIni.nScrollSpeed[inst].Value = scrollSpeed + 1;\r
+ if (scrollSpeed < CDTXMania.Instance.ConfigIni.nScrollSpeed[inst])\r
{\r
scrollSpeedChanged = true;\r
}\r
}\r
- if (CDTXMania.Instance.Pad.b押されている(inst, Eパッド.Decide) && CDTXMania.Instance.Pad.b押された(inst, Eパッド.R))\r
+ if (\r
+ CDTXMania.Instance.Pad.b押されている(inst == EPart.Guitar ? EPad.GtDecide : EPad.BsDecide) &&\r
+ CDTXMania.Instance.Pad.b押された(inst == EPart.Guitar ? EPad.GtR : EPad.BsR)\r
+ )\r
{\r
- CDTXMania.Instance.ConfigIni.n譜面スクロール速度[inst] = Math.Max(scrollSpeed - 1, 0);\r
- if (scrollSpeed > CDTXMania.Instance.ConfigIni.n譜面スクロール速度[inst])\r
+ CDTXMania.Instance.ConfigIni.nScrollSpeed[inst].Value = scrollSpeed - 1;\r
+ if (scrollSpeed > CDTXMania.Instance.ConfigIni.nScrollSpeed[inst])\r
{\r
scrollSpeedChanged = true;\r
}\r
if (scrollSpeedChanged)\r
{\r
// 判定ラインも付随\r
- CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset[inst] = (int)(f * CDTXMania.Instance.ConfigIni.n譜面スクロール速度[inst] + 0.5);\r
+ CDTXMania.Instance.ConfigIni.nJudgeLinePosOffset[inst].Value = (int)(f * CDTXMania.Instance.ConfigIni.nScrollSpeed[inst] + 0.5);\r
}\r
#endregion\r
\r
return;\r
}\r
\r
- int R = (inst == E楽器パート.GUITAR) ? 0 : 3;\r
+ int R = (inst == EPart.Guitar) ? 0 : 3;\r
int G = R + 1;\r
int B = R + 2;\r
- bool autoW = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtW : bIsAutoPlay.BsW;\r
- bool autoR = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtR : bIsAutoPlay.BsR;\r
- bool autoG = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtG : bIsAutoPlay.BsG;\r
- bool autoB = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtB : bIsAutoPlay.BsB;\r
- bool autoPick = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtPick : bIsAutoPlay.BsPick;\r
+ bool autoW = (inst == EPart.Guitar) ? CDTXMania.Instance.ConfigIni.bAutoPlay.GtWail : CDTXMania.Instance.ConfigIni.bAutoPlay.BsWail;\r
+ bool autoR = (inst == EPart.Guitar) ? CDTXMania.Instance.ConfigIni.bAutoPlay.GtR : CDTXMania.Instance.ConfigIni.bAutoPlay.BsR;\r
+ bool autoG = (inst == EPart.Guitar) ? CDTXMania.Instance.ConfigIni.bAutoPlay.GtG : CDTXMania.Instance.ConfigIni.bAutoPlay.BsG;\r
+ bool autoB = (inst == EPart.Guitar) ? CDTXMania.Instance.ConfigIni.bAutoPlay.GtB : CDTXMania.Instance.ConfigIni.bAutoPlay.BsB;\r
+ bool autoPick = (inst == EPart.Guitar) ? CDTXMania.Instance.ConfigIni.bAutoPlay.GtPick : CDTXMania.Instance.ConfigIni.bAutoPlay.BsPick;\r
int nAutoW = (autoW) ? 8 : 0;\r
int nAutoR = (autoR) ? 4 : 0;\r
int nAutoG = (autoG) ? 2 : 0;\r
}\r
}\r
\r
- int pressingR = CDTXMania.Instance.Pad.b押されている(inst, Eパッド.R) ? 4 : 0;\r
+ int pressingR = CDTXMania.Instance.Pad.b押されている(inst == EPart.Guitar ? EPad.GtR : EPad.BsR) ? 4 : 0;\r
this.t入力メソッド記憶(inst);\r
- int pressingG = CDTXMania.Instance.Pad.b押されている(inst, Eパッド.G) ? 2 : 0;\r
+ int pressingG = CDTXMania.Instance.Pad.b押されている(inst == EPart.Guitar ? EPad.GtG : EPad.BsG) ? 2 : 0;\r
this.t入力メソッド記憶(inst);\r
- int pressingB = CDTXMania.Instance.Pad.b押されている(inst, Eパッド.B) ? 1 : 0;\r
+ int pressingB = CDTXMania.Instance.Pad.b押されている(inst == EPart.Guitar ? EPad.GtB : EPad.BsB) ? 1 : 0;\r
this.t入力メソッド記憶(inst);\r
int pressingRGB = pressingR | pressingG | pressingB;\r
if (pressingR != 0)\r
this.actRGB.Push(B);\r
}\r
// auto pickだとここから先に行かないので注意\r
- List<STInputEvent> events = CDTXMania.Instance.Pad.GetEvents(inst, Eパッド.Pick);\r
+ List<STInputEvent> events = CDTXMania.Instance.Pad.GetEvents(inst == EPart.Guitar ? EPad.GtPick : EPad.BsPick);\r
if ((events != null) && (events.Count > 0))\r
{\r
foreach (STInputEvent eventPick in events)\r
}\r
this.t入力メソッド記憶(inst);\r
long nTime = eventPick.nTimeStamp - CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻;\r
- Ech定義 chWailingSound = (inst == E楽器パート.GUITAR) ? Ech定義.Guitar_WailingSound : Ech定義.Bass_WailingSound;\r
+ EChannel chWailingSound = (inst == EPart.Guitar) ? EChannel.Guitar_WailingSound : EChannel.Bass_WailingSound;\r
\r
// WailingSound チャンネルでE楽器パート.GUITARなチップ全てにヒットする\r
- CChip pChip = this.r指定時刻に一番近い未ヒットChip(nTime, chWailingSound, this.nInputAdjustTimeMs[inst], CDTXMania.Instance.nPoor範囲ms + 1);\r
- E判定 e判定 = this.e指定時刻からChipのJUDGEを返す(nTime, pChip, this.nInputAdjustTimeMs[inst]);\r
+ CChip pChip = this.r指定時刻に一番近い未ヒットChip(\r
+ nTime, chWailingSound,\r
+ CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[inst],\r
+ CDTXMania.Instance.nPoor範囲ms + 1);\r
+\r
+ EJudge e判定 = this.e指定時刻からChipのJUDGEを返す(nTime, pChip,\r
+ CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[inst]);\r
//Trace.TraceInformation("ch={0:x2}, mask1={1:x1}, mask2={2:x2}", pChip.nチャンネル番号, ( pChip.nチャンネル番号 & ~nAutoMask ) & 0x0F, ( flagRGB & ~nAutoMask) & 0x0F );\r
if (\r
- (pChip != null) &&\r
- ((((int)pChip.eチャンネル番号 & ~nAutoMask) & 0x0F) == ((pressingRGB & ~nAutoMask) & 0x0F)) &&\r
- (e判定 != E判定.Miss))\r
+ (pChip != null) &&\r
+ ((((int)pChip.eチャンネル番号 & ~nAutoMask) & 0x0F) == ((pressingRGB & ~nAutoMask) & 0x0F)) &&\r
+ (e判定 != EJudge.Miss))\r
{\r
bool bChipHasR = pChip.bGuitarBass_R;\r
bool bChipHasG = pChip.bGuitarBass_G;\r
this.actChipFireGB.Start(B);\r
}\r
this.tチップのヒット処理(nTime, pChip);\r
- this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.nシステム時刻, inst, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する[inst], e判定 == E判定.Poor);\r
- Ech定義 chWailingChip = (inst == E楽器パート.GUITAR) ? Ech定義.Guitar_Wailing : Ech定義.Bass_Wailing;\r
- CChip item = this.r指定時刻に一番近い未ヒットChip(nTime, chWailingChip, this.nInputAdjustTimeMs[inst], 140);\r
+ this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.nシステム時刻, inst, CDTXMania.Instance.ConfigIni.nChipVolume, CDTXMania.Instance.ConfigIni.bEmphasizePlaySound[inst], e判定 == EJudge.Poor);\r
+ EChannel chWailingChip = (inst == EPart.Guitar) ? EChannel.Guitar_Wailing : EChannel.Bass_Wailing;\r
+ CChip item = this.r指定時刻に一番近い未ヒットChip(nTime, chWailingChip, CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[inst], 140);\r
if (item != null)\r
{\r
this.queWailing[inst].Enqueue(item);\r
}\r
\r
// 以下、間違いレーンでのピック時\r
- CChip NoChipPicked = (inst == E楽器パート.GUITAR) ? this.r現在の空うちギターChip : this.r現在の空うちベースChip;\r
- if ((NoChipPicked != null) || ((NoChipPicked = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, chWailingSound, this.nInputAdjustTimeMs[inst])) != null))\r
+ CChip NoChipPicked = (inst == EPart.Guitar) ? this.r現在の空うちギターChip : this.r現在の空うちベースChip;\r
+ if ((NoChipPicked != null) || ((NoChipPicked = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, chWailingSound, CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[inst])) != null))\r
{\r
- this.tサウンド再生(NoChipPicked, CSound管理.rc演奏用タイマ.nシステム時刻, inst, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する[inst], true);\r
+ this.tサウンド再生(NoChipPicked, CSound管理.rc演奏用タイマ.nシステム時刻, inst, CDTXMania.Instance.ConfigIni.nChipVolume, CDTXMania.Instance.ConfigIni.bEmphasizePlaySound[inst], true);\r
}\r
if (!CDTXMania.Instance.ConfigIni.bLight[inst])\r
{\r
}\r
}\r
}\r
- List<STInputEvent> list = CDTXMania.Instance.Pad.GetEvents(inst, Eパッド.Wail);\r
+ List<STInputEvent> list = CDTXMania.Instance.Pad.GetEvents(inst == EPart.Guitar ? EPad.GtWail : EPad.BsWail);\r
if ((list != null) && (list.Count > 0))\r
{\r
foreach (STInputEvent eventWailed in list)\r
}\r
}\r
\r
- private void DoWailingFromQueue(E楽器パート inst, long nTimeStamp_Wailed, bool autoW)\r
+ private void DoWailingFromQueue(EPart inst, long nTimeStamp_Wailed, bool autoW)\r
{\r
long nTimeWailed = nTimeStamp_Wailed - CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻;\r
CChip chipWailing;\r
while ((this.queWailing[inst].Count > 0) && ((chipWailing = this.queWailing[inst].Dequeue()) != null))\r
{\r
- if ((nTimeWailed - chipWailing.n発声時刻ms) <= 1000) // #24245 2011.1.26 yyagi: 800 -> 1000\r
+ if ((nTimeWailed - chipWailing.n発声時刻ms) <= 1000) // #24245 2011.1.26 yyagi: 800 -> 1000\r
{\r
chipWailing.bHit = true;\r
this.actWailingBonus.Start(inst, this.r現在の歓声Chip[inst]);\r
{\r
int nCombo = (this.actCombo.dgbコンボ数[inst].n現在値 < 500) ? this.actCombo.dgbコンボ数[inst].n現在値 : 500;\r
// #24245 2011.1.26 yyagi changed DRUMS->BASS, add nCombo conditions\r
- this.actScore.Add(inst, bIsAutoPlay, nCombo * 3000L);\r
+ this.actScore.Add(inst, nCombo * 3000L);\r
}\r
}\r
}\r
}\r
\r
- private void t進行描画_グラフ()\r
- {\r
- if (!CDTXMania.Instance.ConfigIni.bストイックモード && CDTXMania.Instance.ConfigIni.bGraph)\r
- {\r
- this.actGraph.On進行描画();\r
- }\r
- }\r
\r
- private void t進行描画_チップファイアD()\r
- {\r
- this.actChipFireD.On進行描画();\r
- }\r
-\r
- private void t進行描画_ドラムパッド()\r
- {\r
- if (CDTXMania.Instance.ConfigIni.eDark != Eダークモード.FULL)\r
- {\r
- this.actPad.On進行描画();\r
- }\r
- }\r
\r
// t入力処理・ドラム()からメソッドを抽出したもの。\r
/// <summary>\r
/// <param name="chipArray">ソート対象chip群</param>\r
/// <param name="e判定Array">ソート対象e判定群</param>\r
/// <param name="NumOfChips">チップ数</param>\r
- private static void SortChipsByNTime(CChip[] chipArray, E判定[] e判定Array, int NumOfChips)\r
+ private static void SortChipsByNTime(CChip[] chipArray, EJudge[] e判定Array, int NumOfChips)\r
{\r
for (int i = 0; i < NumOfChips - 1; i++)\r
{\r
CChip chipTemp = chipArray[j - 1];\r
chipArray[j - 1] = chipArray[j];\r
chipArray[j] = chipTemp;\r
- E判定 e判定Temp = e判定Array[j - 1];\r
+ EJudge e判定Temp = e判定Array[j - 1];\r
e判定Array[j - 1] = e判定Array[j];\r
e判定Array[j] = e判定Temp;\r
}\r
}\r
}\r
}\r
- private bool tドラムヒット処理(long nHitTime, Eパッド type, CChip pChip, int n強弱度合い0to127)\r
+ private bool tドラムヒット処理(long nHitTime, EPad type, CChip pChip, int n強弱度合い0to127)\r
{\r
if (pChip == null)\r
{\r
{\r
index = pChip.nDrumsIndexHidden;\r
}\r
- int nLane = CStage演奏画面共通.nチャンネル0Atoレーン07[index];\r
- int nPad = this.nチャンネル0Atoパッド08[index];\r
- bool bPChipIsAutoPlay = bIsAutoPlay[nLane];\r
- int nInputAdjustTime = bPChipIsAutoPlay ? 0 : this.nInputAdjustTimeMs.Drums;\r
- E判定 e判定 = this.e指定時刻からChipのJUDGEを返す(nHitTime, pChip, nInputAdjustTime);\r
- if (e判定 == E判定.Miss)\r
+ ELane eLane = EnumConverter.LaneFromChannel(index + EChannel.HiHatClose);// nチャンネル0Atoレーン07[index];\r
+ EPad ePad = EnumConverter.PadFromChannel(index + EChannel.HiHatClose); //nチャンネル0Atoパッド08[index];\r
+ bool bPChipIsAutoPlay = CDTXMania.Instance.ConfigIni.bAutoPlay[ePad];\r
+ int nInputAdjustTime = bPChipIsAutoPlay ? 0 : CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs.Drums;\r
+ EJudge e判定 = this.e指定時刻からChipのJUDGEを返す(nHitTime, pChip, nInputAdjustTime);\r
+ if (e判定 == EJudge.Miss)\r
{\r
return false;\r
}\r
this.tチップのヒット処理(nHitTime, pChip);\r
- this.actLaneFlushD.Start((Eレーン)nLane, ((float)n強弱度合い0to127) / 127f);\r
- this.actPad.Hit(nPad);\r
- if ((e判定 != E判定.Poor) && (e判定 != E判定.Miss))\r
+ this.actLaneFlushD.Start(eLane, ((float)n強弱度合い0to127) / 127f);\r
+ this.actPad.Hit(ePad);\r
+ if ((e判定 != EJudge.Poor) && (e判定 != EJudge.Miss))\r
{\r
bool flag = this.bフィルイン中;\r
bool flag2 = this.bフィルイン中 && this.bフィルイン区間の最後のChipである(pChip);\r
// bool flag3 = flag2;\r
// #31602 2013.6.24 yyagi 判定ラインの表示位置をずらしたら、チップのヒットエフェクトの表示もずらすために、nJudgeLine..を追加\r
- this.actChipFireD.Start((Eレーン)nLane, flag, flag2, flag2);\r
+ this.actChipFireD.Start(eLane, flag, flag2, flag2);\r
}\r
- if (CDTXMania.Instance.ConfigIni.bドラム打音を発声する)\r
+ if (CDTXMania.Instance.ConfigIni.bDrumsHitSound)\r
{\r
CChip rChip = null;\r
bool bIsChipsoundPriorToPad = true;\r
- if (((type == Eパッド.HH) || (type == Eパッド.HHO)) || (type == Eパッド.LC))\r
+ if (((type == EPad.HH) || (type == EPad.HHO)) || (type == EPad.LC))\r
{\r
- bIsChipsoundPriorToPad = CDTXMania.Instance.ConfigIni.eHitSoundPriorityHH == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
+ bIsChipsoundPriorToPad = CDTXMania.Instance.ConfigIni.eHitSoundPriorityHH == EHitSoundPriority.Chip;\r
}\r
- else if ((type == Eパッド.LT) || (type == Eパッド.FT))\r
+ else if ((type == EPad.LT) || (type == EPad.FT))\r
{\r
- bIsChipsoundPriorToPad = CDTXMania.Instance.ConfigIni.eHitSoundPriorityFT == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
+ bIsChipsoundPriorToPad = CDTXMania.Instance.ConfigIni.eHitSoundPriorityFT == EHitSoundPriority.Chip;\r
}\r
- else if ((type == Eパッド.CY) || (type == Eパッド.RD))\r
+ else if ((type == EPad.CY) || (type == EPad.RD))\r
{\r
- bIsChipsoundPriorToPad = CDTXMania.Instance.ConfigIni.eHitSoundPriorityCY == E打ち分け時の再生の優先順位.ChipがPadより優先;\r
+ bIsChipsoundPriorToPad = CDTXMania.Instance.ConfigIni.eHitSoundPriorityCY == EHitSoundPriority.Chip;\r
}\r
if (bIsChipsoundPriorToPad)\r
{\r
}\r
else\r
{\r
- Eパッド hH = type;\r
- if (!CDTXMania.Instance.DTX.bチップがある.HHOpen && (type == Eパッド.HHO))\r
+ EPad hH = type;\r
+ if (!CDTXMania.Instance.DTX.bチップがある.HHOpen && (type == EPad.HHO))\r
{\r
- hH = Eパッド.HH;\r
+ hH = EPad.HH;\r
}\r
- if (!CDTXMania.Instance.DTX.bチップがある.Ride && (type == Eパッド.RD))\r
+ if (!CDTXMania.Instance.DTX.bチップがある.Ride && (type == EPad.RD))\r
{\r
- hH = Eパッド.CY;\r
+ hH = EPad.CY;\r
}\r
- if (!CDTXMania.Instance.DTX.bチップがある.LeftCymbal && (type == Eパッド.LC))\r
+ if (!CDTXMania.Instance.DTX.bチップがある.LeftCymbal && (type == EPad.LC))\r
{\r
- hH = Eパッド.HH;\r
+ hH = EPad.HH;\r
}\r
- rChip = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nHitTime, this.nパッド0Atoチャンネル0A[(int)hH], nInputAdjustTime);\r
+ rChip = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nHitTime, EnumConverter.ChannelFromPad(hH), nInputAdjustTime);\r
if (rChip == null)\r
{\r
rChip = pChip;\r
}\r
}\r
- this.tサウンド再生(rChip, CSound管理.rc演奏用タイマ.nシステム時刻, E楽器パート.DRUMS, CDTXMania.Instance.ConfigIni.n手動再生音量, CDTXMania.Instance.ConfigIni.b演奏音を強調する.Drums);\r
+ this.tサウンド再生(rChip, CSound管理.rc演奏用タイマ.nシステム時刻, EPart.Drums, CDTXMania.Instance.ConfigIni.nChipVolume, CDTXMania.Instance.ConfigIni.bEmphasizePlaySound.Drums);\r
}\r
return true;\r
}\r
for (int i = CDTXMania.Instance.DTX.listChip.IndexOf(pChip) + 1; i < CDTXMania.Instance.DTX.listChip.Count; i++)\r
{\r
pChip = CDTXMania.Instance.DTX.listChip[i];\r
- if ((pChip[Ech定義.FillIn]) && (pChip.n整数値 == 2))\r
+ if ((pChip[EChannel.FillIn]) && (pChip.n整数値 == 2))\r
{\r
return true;\r
}\r
{\r
switch (pChip.n整数値)\r
{\r
- case 0x01: // フィルイン開始\r
- if (CDTXMania.Instance.ConfigIni.bフィルイン有効)\r
+ case 0x01: // フィルイン開始\r
+ if (CDTXMania.Instance.ConfigIni.bFillin)\r
{\r
this.bフィルイン中 = true;\r
}\r
break;\r
\r
- case 0x02: // フィルイン終了\r
- if (CDTXMania.Instance.ConfigIni.bフィルイン有効)\r
+ case 0x02: // フィルイン終了\r
+ if (CDTXMania.Instance.ConfigIni.bFillin)\r
{\r
this.bフィルイン中 = false;\r
}\r
- if (((this.actCombo.dgbコンボ数.Drums.n現在値 > 0) || CDTXMania.Instance.ConfigIni.bドラムが全部オートプレイである) && CDTXMania.Instance.ConfigIni.b歓声を発声する)\r
+ if (((this.actCombo.dgbコンボ数.Drums.n現在値 > 0) || CDTXMania.Instance.ConfigIni.bIsAutoPlay(EPart.Drums)) && CDTXMania.Instance.ConfigIni.bAudience)\r
{\r
if (this.r現在の歓声Chip.Drums != null)\r
{\r
- CDTXMania.Instance.DTX.tチップの再生(this.r現在の歓声Chip.Drums, CSound管理.rc演奏用タイマ.nシステム時刻, (int)Eレーン.BGM, CDTXMania.Instance.DTX.nモニタを考慮した音量(E楽器パート.UNKNOWN));\r
+ CDTXMania.Instance.DTX.tチップの再生(this.r現在の歓声Chip.Drums, CSound管理.rc演奏用タイマ.nシステム時刻, CDTXMania.Instance.DTX.nモニタを考慮した音量(EPart.Unknown));\r
}\r
else\r
{\r
}\r
}\r
break;\r
-#if TEST_NOTEOFFMODE // 2011.1.1 yyagi TEST\r
+#if TEST_NOTEOFFMODE // 2011.1.1 yyagi TEST\r
case 0x04: // HH消音あり(従来同等)\r
CDTXMania.Instance.DTX.b演奏で直前の音を消音する.HH = true;\r
break;\r