--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Reflection;
+using FDK;
+using System.Runtime;
+using System.Runtime.InteropServices;
+
+namespace DTXMania
+{
+ internal partial class CStage演奏画面共通
+ {
+ protected enum HitState
+ {
+ NotHit,
+ Hit,
+ DontCare
+ }
+ protected class CHitCountOfRank
+ {
+ // Fields
+ public int Good;
+ public int Great;
+ public int Miss;
+ public int Perfect;
+ public int Poor;
+
+ // Properties
+ public int this[int index]
+ {
+ get
+ {
+ switch (index)
+ {
+ case 0:
+ return this.Perfect;
+
+ case 1:
+ return this.Great;
+
+ case 2:
+ return this.Good;
+
+ case 3:
+ return this.Poor;
+
+ case 4:
+ return this.Miss;
+ }
+ throw new IndexOutOfRangeException();
+ }
+ set
+ {
+ switch (index)
+ {
+ case 0:
+ this.Perfect = value;
+ return;
+
+ case 1:
+ this.Great = value;
+ return;
+
+ case 2:
+ this.Good = value;
+ return;
+
+ case 3:
+ this.Poor = value;
+ return;
+
+ case 4:
+ this.Miss = value;
+ return;
+ }
+ throw new IndexOutOfRangeException();
+ }
+ }
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ protected struct ST空打ち
+ {
+ public CChip HH;
+ public CChip SD;
+ public CChip BD;
+ public CChip HT;
+ public CChip LT;
+ public CChip FT;
+ public CChip CY;
+ public CChip HHO;
+ public CChip RD;
+ public CChip LC;
+ public CChip this[int index]
+ {
+ get
+ {
+ switch (index)
+ {
+ case 0:
+ return this.HH;
+
+ case 1:
+ return this.SD;
+
+ case 2:
+ return this.BD;
+
+ case 3:
+ return this.HT;
+
+ case 4:
+ return this.LT;
+
+ case 5:
+ return this.FT;
+
+ case 6:
+ return this.CY;
+
+ case 7:
+ return this.HHO;
+
+ case 8:
+ return this.RD;
+
+ case 9:
+ return this.LC;
+ }
+ throw new IndexOutOfRangeException();
+ }
+ set
+ {
+ switch (index)
+ {
+ case 0:
+ this.HH = value;
+ return;
+
+ case 1:
+ this.SD = value;
+ return;
+
+ case 2:
+ this.BD = value;
+ return;
+
+ case 3:
+ this.HT = value;
+ return;
+
+ case 4:
+ this.LT = value;
+ return;
+
+ case 5:
+ this.FT = value;
+ return;
+
+ case 6:
+ this.CY = value;
+ return;
+
+ case 7:
+ this.HHO = value;
+ return;
+
+ case 8:
+ this.RD = value;
+ return;
+
+ case 9:
+ this.LC = value;
+ return;
+ }
+ throw new IndexOutOfRangeException();
+ }
+ }
+ }
+
+ protected struct STMixer
+ {
+ internal bool bIsAdd;
+ internal CSound csound;
+ internal bool b演奏終了後も再生が続くチップである;
+ };
+
+ }
+}