X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=DTXMania%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%2F%E3%82%B3%E3%83%BC%E3%83%89%2F%E3%82%B9%E3%83%86%E3%83%BC%E3%82%B8%2F07.%E6%BC%94%E5%A5%8F%2FCInvisibleChip.cs;fp=DTXMania%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%2F%E3%82%B3%E3%83%BC%E3%83%89%2F%E3%82%B9%E3%83%86%E3%83%BC%E3%82%B8%2F07.%E6%BC%94%E5%A5%8F%2FCInvisibleChip.cs;h=0000000000000000000000000000000000000000;hb=4b70e63bc3e2c99e836477240bd5039d41d10640;hp=e6f4e609dd18d4c2a2391cffc234578363aad3a6;hpb=296446998eeba408353da55a275458b590e4ebf5;p=dtxmania%2Fdtxmania.git diff --git a/DTXManiaプロジェクト/コード/ステージ/07.演奏/CInvisibleChip.cs b/DTXManiaプロジェクト/コード/ステージ/07.演奏/CInvisibleChip.cs deleted file mode 100644 index e6f4e609..00000000 --- a/DTXManiaプロジェクト/コード/ステージ/07.演奏/CInvisibleChip.cs +++ /dev/null @@ -1,187 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Diagnostics; -using FDK; - -namespace DTXMania -{ - public class CInvisibleChip : IDisposable - { - /// ミス後表示する時間(ms) - public int nDisplayTimeMs - { - get; - set; - } - /// 表示期間終了後、フェードアウトする時間 - public int nFadeoutTimeMs - { - get; - set; - } - - #region [ コンストラクタ ] - public CInvisibleChip() - { - Initialize(3000, 2000); - } - /// - /// コンストラクタ - /// - /// ミス時再表示する時間(秒) - /// 再表示後フェードアウトする時間(秒) - public CInvisibleChip(int _nDisplayTimeMs, int _nFadeoutTimeMs) - { - Initialize(_nDisplayTimeMs, _nFadeoutTimeMs); - } - private void Initialize(int _nDisplayTimeMs, int _nFadeoutTimeMs) - { - nDisplayTimeMs = _nDisplayTimeMs; - nFadeoutTimeMs = _nFadeoutTimeMs; - Reset(); - } - #endregion - - /// - /// 内部状態を初期化する - /// - public void Reset() - { - for (EPart i = EPart.Drums; i <= EPart.Bass; i++) - { - ccounter[i] = new CCounter(); - b演奏チップが1つでもバーを通過した[i] = false; - } - } - - /// - /// まだSemi-Invisibleを開始していなければ、開始する - /// - /// - public void StartSemiInvisible(EPart eInst) - { - if (!b演奏チップが1つでもバーを通過した[eInst]) - { - b演奏チップが1つでもバーを通過した[eInst] = true; - if (CDTXMania.Instance.ConfigIni.eSudHidInv[eInst] == ESudHidInv.SemiInv) - { - ShowChipTemporally(eInst); - ccounter[eInst].n現在の値 = nDisplayTimeMs; - } - } - } - /// - /// 一時的にチップを表示するモードを開始する - /// - /// 楽器パート - public void ShowChipTemporally(EPart eInst) - { - ccounter[eInst].t開始(0, nDisplayTimeMs + nFadeoutTimeMs + 1, 1, CDTXMania.Instance.Timer); - } - - /// - /// チップの表示/非表示の状態 - /// - public enum EChipInvisibleState - { - SHOW, // Missなどしてチップを表示中 - FADEOUT, // 表示期間終了後、フェードアウト中 - INVISIBLE // 完全非表示 - } - - internal EChipInvisibleState SetInvisibleStatus(ref CChip cc) - { - if (cc.e楽器パート == EPart.Unknown) - { - return EChipInvisibleState.SHOW; - } - EChipInvisibleState retcode = EChipInvisibleState.SHOW; - - ccounter[cc.e楽器パート].t進行(); - - switch (CDTXMania.Instance.ConfigIni.eSudHidInv[cc.e楽器パート].Value) - { - case ESudHidInv.Off: - cc.b可視 = true; - retcode = EChipInvisibleState.SHOW; - break; - - case ESudHidInv.FullInv: - cc.b可視 = false; - retcode = EChipInvisibleState.INVISIBLE; - break; - - case ESudHidInv.SemiInv: - if (!b演奏チップが1つでもバーを通過した[cc.e楽器パート]) // まだ1つもチップがバーを通過していない時は、チップを表示する - { - cc.b可視 = true; - cc.n透明度 = 255; - return EChipInvisibleState.SHOW; - } - - if (ccounter[cc.e楽器パート].n現在の値 <= 0 || ccounter[cc.e楽器パート].n現在の値 > nDisplayTimeMs + nFadeoutTimeMs) - // まだ一度もMissっていない or フェードアウトしきった後 - { - cc.b可視 = false; - cc.n透明度 = 255; - retcode = EChipInvisibleState.INVISIBLE; - } - else if (ccounter[cc.e楽器パート].n現在の値 < nDisplayTimeMs) // 表示期間 - { - cc.b可視 = true; - cc.n透明度 = 255; - retcode = EChipInvisibleState.SHOW; - } - else if (ccounter[cc.e楽器パート].n現在の値 < nDisplayTimeMs + nFadeoutTimeMs) // フェードアウト期間 - { - cc.b可視 = true; - cc.n透明度 = 255 - (int)(Convert.ToDouble(ccounter[cc.e楽器パート].n現在の値 - nDisplayTimeMs) / nFadeoutTimeMs * 255.0); - retcode = EChipInvisibleState.FADEOUT; - } - break; - default: - cc.b可視 = true; - cc.n透明度 = 255; - retcode = EChipInvisibleState.SHOW; - break; - } - return retcode; - } - - public void Dispose() - { - this.Dispose(true); - GC.SuppressFinalize(this); - } - - protected void Dispose(bool disposeManagedObjects) - { - if (this.bDispose完了済み) - return; - - if (disposeManagedObjects) - { - // (A) Managed リソースの解放 - for (EPart i = EPart.Drums; i <= EPart.Bass; i++) - { - // ctInvisibleTimer[ i ].Dispose(); - ccounter[i].t停止(); - ccounter[i] = null; - } - } - - // (B) Unamanaged リソースの解放 - - this.bDispose完了済み = true; - } - ~CInvisibleChip() - { - this.Dispose(false); - } - - private STDGBSValue ccounter; - private bool bDispose完了済み = false; - private STDGBSValue b演奏チップが1つでもバーを通過した; - } -}