OSDN Git Service

Merge branch 'feature/37178_プロジェクトとソリューションファイルの英語化' into develop
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / CAct演奏Combo共通.cs
diff --git a/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏Combo共通.cs b/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏Combo共通.cs
deleted file mode 100644 (file)
index 364c32a..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using System.Drawing;\r
-using SharpDX;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏Combo共通 : CActivity\r
-       {\r
-               public STDGBSValue<CComboStatus> dgbコンボ数;\r
-               public class CComboStatus\r
-               {\r
-                       //public CAct演奏Combo共通 act;\r
-                       public int n最高値 { get; private set; }\r
-                       public int n現在値 { get; private set; }\r
-\r
-                       public CAct演奏Combo共通.EMode e現在のモード = EMode.非表示中;\r
-                       public int nCOMBO値 = 0;\r
-                       public long nコンボが切れた時刻 = -1;\r
-                       public int nジャンプインデックス値 = 99999;\r
-                       public int n現在表示中のCOMBO値 = 0;\r
-                       public long n前回の時刻_ジャンプ用 = -1;\r
-\r
-                       public void IncrementCombo()\r
-                       {\r
-                               ++n現在値;\r
-                               if (n現在値 > n最高値)\r
-                               {\r
-                                       n最高値 = n現在値;\r
-                               }\r
-                               nCOMBO値 = n現在値;\r
-                       }\r
-                       public void ResetCombo()\r
-                       {\r
-                               n現在値 = 0;\r
-                       }\r
-               }\r
-\r
-               private int[] nジャンプ差分値 = new int[180];\r
-               // private STDGBVALUE<CSTAT> status;\r
-               private CTexture tex;\r
-\r
-               public enum EEvent\r
-               {\r
-                       非表示,\r
-                       数値更新,\r
-                       同一数値,\r
-                       ミス通知\r
-               }\r
-\r
-               public enum EMode\r
-               {\r
-                       非表示中,\r
-                       進行表示中,\r
-                       残像表示中\r
-               }\r
-\r
-               public CAct演奏Combo共通()\r
-               {\r
-                       this.b活性化してない = true;\r
-\r
-                       // 180度分のジャンプY座標差分を取得。(0度: 0 → 90度:-15 → 180度: 0)\r
-                       for (int i = 0; i < 180; i++)\r
-                       {\r
-                               this.nジャンプ差分値[i] = (int)(-15.0 * Math.Sin((Math.PI * i) / 180.0) * Scale.Y);\r
-                       }\r
-               }\r
-\r
-               private void tコンボ表示(EPart inst, int nCombo値, int nジャンプインデックス)\r
-               {\r
-                       int x, y;\r
-                       x = CDTXMania.Instance.ConfigIni.cdComboX[inst][CDTXMania.Instance.ConfigIni.eActiveInst];\r
-                       y = CDTXMania.Instance.ConfigIni.cdComboY[inst][CDTXMania.Instance.ConfigIni.eActiveInst];\r
-                       if (CDTXMania.Instance.ConfigIni.bReverse[inst])\r
-                       {\r
-                               y = SampleFramework.GameWindowSize.Height - y\r
-                                       - CDTXMania.Instance.Coordinates.ImgComboCombo.H - CDTXMania.Instance.Coordinates.ImgComboOneDigit.H;\r
-                       }\r
-\r
-                       if (tex != null)\r
-                       {\r
-                               tex.n透明度 = 0xff;\r
-                       }\r
-\r
-                       int[] n位の数 = new int[10];\r
-                       // 表示は10桁もあれば足りるだろう\r
-                       //-----------------\r
-                       if (CDTXMania.Instance.ConfigIni.bDisplayCombo[inst] && nCombo値 > 0)\r
-                       {\r
-                               // n位の数[] の格納。(例:nCombo値=125 のとき n位の数 = { 5,2,1,0,0,0,0,0,0,0 })\r
-                               int n = nCombo値;\r
-                               int n桁数 = 0;\r
-                               int n全桁の合計幅 = 0;\r
-                               while ((n > 0) && (n桁数 < 10))\r
-                               {\r
-                                       n位の数[n桁数] = n % 10;   // 1の位を格納\r
-                                       n = (n - (n % 10)) / 10;  // 右へシフト(例: 12345 → 1234 )\r
-                                       n全桁の合計幅 += CDTXMania.Instance.Coordinates.ImgComboOneDigit.W;\r
-                                       n桁数++;\r
-                               }\r
-\r
-                               // "COMBO" の拡大率を設定\r
-                               float f拡大率 = 1.0f;\r
-                               if (nジャンプインデックス >= 0 && nジャンプインデックス < 180)\r
-                                       f拡大率 = 1.0f - (((float)this.nジャンプ差分値[nジャンプインデックス]) / 45.0f);    // f拡大率 = 1.0 → 1.3333... → 1.0\r
-\r
-                               if (this.tex != null)\r
-                               {\r
-                                       this.tex.vc拡大縮小倍率 = new Vector3(f拡大率, f拡大率, 1.0f);\r
-                               }\r
-\r
-                               // "COMBO" 文字を表示\r
-                               int cbx = x - ((int)((CDTXMania.Instance.Coordinates.ImgComboCombo.W * f拡大率) / 2.0f));\r
-                               if (this.tex != null)\r
-                                       this.tex.t2D描画(CDTXMania.Instance.Device,\r
-                                               cbx,\r
-                                               y + CDTXMania.Instance.Coordinates.ImgComboOneDigit.H,\r
-                                               CDTXMania.Instance.Coordinates.ImgComboCombo);\r
-\r
-                               x = x + (n全桁の合計幅 / 2);\r
-                               // 1文字ずつ表示していく\r
-                               for (int i = 0; i < n桁数; i++)\r
-                               {\r
-                                       f拡大率 = 1.0f;\r
-                                       if (nジャンプインデックス >= 0 && nジャンプインデックス < 180)\r
-                                               f拡大率 = 1.0f - (((float)this.nジャンプ差分値[nジャンプインデックス]) / 45f);    // f拡大率 = 1.0 → 1.3333... → 1.0\r
-\r
-                                       if (this.tex != null)\r
-                                               this.tex.vc拡大縮小倍率 = new Vector3(f拡大率, f拡大率, 1.0f);\r
-\r
-                                       x -= CDTXMania.Instance.Coordinates.ImgComboOneDigit.W;\r
-\r
-                                       if (this.tex != null)\r
-                                       {\r
-                                               this.tex.t2D描画(\r
-                                                       CDTXMania.Instance.Device,\r
-                                                       x - ((int)(((f拡大率 - 1.0f) * CDTXMania.Instance.Coordinates.ImgComboOneDigit.W) / 2.0f)),\r
-                                                       y - ((int)(((f拡大率 - 1.0f) * CDTXMania.Instance.Coordinates.ImgComboOneDigit.H) / 2.0f)),\r
-                                                       CDTXMania.Instance.Coordinates.ImgComboOneDigit.ApplyCounterXY(n位の数[i] % 4, n位の数[i] / 4, 0, 0));\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-\r
-\r
-               // CActivity 実装\r
-               public override void On活性化()\r
-               {\r
-                       this.dgbコンボ数 = new STDGBSValue<CComboStatus>();\r
-                       for (EPart i = EPart.Drums; i <= EPart.Bass; i++)\r
-                       {\r
-                               this.dgbコンボ数[i] = new CComboStatus();\r
-                       }\r
-                       base.On活性化();\r
-               }\r
-\r
-               public override void On非活性化()\r
-               {\r
-                       base.On非活性化();\r
-               }\r
-\r
-               public override void OnManagedリソースの作成()\r
-               {\r
-                       if (this.b活性化してない)\r
-                               return;\r
-\r
-                       // this.txCOMBOドラム = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums-combo-drums2.png"));\r
-                       this.tex = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums-combo-guitar2.png"));\r
-\r
-                       base.OnManagedリソースの作成();\r
-               }\r
-\r
-               public override void OnManagedリソースの解放()\r
-               {\r
-                       if (this.b活性化してない)\r
-                               return;\r
-\r
-                       // TextureFactory.tテクスチャの解放(ref this.txCOMBOドラム);\r
-                       TextureFactory.tテクスチャの解放(ref this.tex);\r
-\r
-                       base.OnManagedリソースの解放();\r
-               }\r
-\r
-               public override int On進行描画()\r
-               {\r
-                       if (!this.b活性化してない)\r
-                       {\r
-                               for (EPart inst = EPart.Drums; inst <= EPart.Bass; ++inst)\r
-                               {\r
-                                       if (CDTXMania.Instance.ConfigIni.b楽器有効(inst) && CDTXMania.Instance.DTX.bチップがある[inst])\r
-                                       {\r
-                                               EEvent e今回の状態遷移イベント;\r
-                                               CComboStatus st = this.dgbコンボ数[inst];\r
-\r
-                                               // 前回と今回の COMBO 値から、e今回の状態遷移イベントを決定する。\r
-                                               if (st.n現在表示中のCOMBO値 == st.nCOMBO値)\r
-                                               {\r
-                                                       e今回の状態遷移イベント = EEvent.同一数値;\r
-                                               }\r
-                                               else if (st.n現在表示中のCOMBO値 > st.nCOMBO値)\r
-                                               {\r
-                                                       e今回の状態遷移イベント = EEvent.ミス通知;\r
-                                               }\r
-                                               else if ((st.n現在表示中のCOMBO値 < CDTXMania.Instance.ConfigIni.nMinComboDisp[inst]) &&\r
-                                                       (st.nCOMBO値 < CDTXMania.Instance.ConfigIni.nMinComboDisp[inst]))\r
-                                               {\r
-                                                       e今回の状態遷移イベント = EEvent.非表示;\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       e今回の状態遷移イベント = EEvent.数値更新;\r
-                                               }\r
-\r
-                                               // nジャンプインデックス値 の進行。\r
-                                               if (st.nジャンプインデックス値 < 360)\r
-                                               {\r
-                                                       if ((st.n前回の時刻_ジャンプ用 == -1) || (CDTXMania.Instance.Timer.n現在時刻 < st.n前回の時刻_ジャンプ用))\r
-                                                       {\r
-                                                               st.n前回の時刻_ジャンプ用 = CDTXMania.Instance.Timer.n現在時刻;\r
-                                                       }\r
-\r
-                                                       const long INTERVAL = 2;\r
-\r
-                                                       long diff = CDTXMania.Instance.Timer.n現在時刻 - st.n前回の時刻_ジャンプ用;\r
-                                                       st.n前回の時刻_ジャンプ用 += INTERVAL * (diff / INTERVAL);\r
-                                                       st.nジャンプインデックス値 += 3 * (int)(diff / INTERVAL);\r
-                                                       if (st.nジャンプインデックス値 >= 2000)\r
-                                                       {\r
-                                                               st.nジャンプインデックス値 -= 3 * ((st.nジャンプインデックス値 - 2000) / 3 + 1);\r
-                                                       }\r
-                                               }\r
-\r
-\r
-                                               Retry:  // モードが変化した場合はここからリトライする。\r
-\r
-                                               switch (st.e現在のモード)\r
-                                               {\r
-                                                       case EMode.非表示中:\r
-                                                               if (e今回の状態遷移イベント == EEvent.数値更新)\r
-                                                               {\r
-                                                                       // モード変更\r
-                                                                       st.e現在のモード = EMode.進行表示中;\r
-                                                                       st.nジャンプインデックス値 = 0;\r
-                                                                       st.n前回の時刻_ジャンプ用 = CDTXMania.Instance.Timer.n現在時刻;\r
-                                                                       goto Retry;\r
-                                                               }\r
-\r
-                                                               st.n現在表示中のCOMBO値 = st.nCOMBO値;\r
-                                                               break;\r
-\r
-                                                       case EMode.進行表示中:\r
-                                                               if ((e今回の状態遷移イベント == EEvent.非表示) || (e今回の状態遷移イベント == EEvent.ミス通知))\r
-                                                               {\r
-                                                                       // モード変更\r
-                                                                       st.e現在のモード = EMode.残像表示中;\r
-                                                                       //st.n残像表示中のCOMBO値 = st.n現在表示中のCOMBO値;\r
-                                                                       st.nコンボが切れた時刻 = CDTXMania.Instance.Timer.n現在時刻;\r
-                                                                       goto Retry;\r
-                                                               }\r
-\r
-                                                               if (e今回の状態遷移イベント == EEvent.数値更新)\r
-                                                               {\r
-                                                                       st.nジャンプインデックス値 = 0;\r
-                                                                       st.n前回の時刻_ジャンプ用 = CDTXMania.Instance.Timer.n現在時刻;\r
-                                                               }\r
-\r
-                                                               st.n現在表示中のCOMBO値 = st.nCOMBO値;\r
-                                                               this.tコンボ表示(inst, st.nCOMBO値, st.nジャンプインデックス値);\r
-                                                               break;\r
-\r
-                                                       case EMode.残像表示中:\r
-                                                               if (e今回の状態遷移イベント == EEvent.数値更新)\r
-                                                               {\r
-                                                                       // モード変更1\r
-                                                                       st.e現在のモード = EMode.進行表示中;\r
-                                                                       goto Retry;\r
-                                                               }\r
-                                                               if ((CDTXMania.Instance.Timer.n現在時刻 - st.nコンボが切れた時刻) > 1000)\r
-                                                               {\r
-                                                                       // モード変更2\r
-                                                                       st.e現在のモード = EMode.非表示中;\r
-                                                                       goto Retry;\r
-                                                               }\r
-                                                               st.n現在表示中のCOMBO値 = st.nCOMBO値;\r
-                                                               break;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-       }\r
-}\r