diff --git "a/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXCreator\343\202\275\343\203\252\343\203\245\343\203\274\343\202\267\343\203\247\343\203\263.sln" "b/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXCreator\343\202\275\343\203\252\343\203\245\343\203\274\343\202\267\343\203\247\343\203\263.sln" index 2b88bf09..67802dfd 100644 --- "a/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXCreator\343\202\275\343\203\252\343\203\245\343\203\274\343\202\267\343\203\247\343\203\263.sln" +++ "b/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXCreator\343\202\275\343\203\252\343\203\245\343\203\274\343\202\267\343\203\247\343\203\263.sln" @@ -1,13 +1,15 @@  -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Express 2013 for Windows Desktop -VisualStudioVersion = 12.0.31101.0 -MinimumVisualStudioVersion = 10.0.40219.1 +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTXCreatorプロジェクト", "DTXCreatorプロジェクト.csproj", "{BAC81BCC-5689-4600-91A0-7427667500D6}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FDK19", "..\FDK17プロジェクト\FDK19.csproj", "{BCD40908-F3E2-4707-BFAA-1DD99DF6357D}" EndProject Global + GlobalSection(SubversionScc) = preSolution + Svn-Managed = True + Manager = AnkhSVN - Subversion Support for Visual Studio + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x86 = Debug|x86 Release|x86 = Release|x86 @@ -25,8 +27,4 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(SubversionScc) = preSolution - Svn-Managed = True - Manager = AnkhSVN - Subversion Support for Visual Studio - EndGlobalSection EndGlobal diff --git "a/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210.csproj" "b/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210.csproj" index 6944777b..573ee4ef 100644 --- "a/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210.csproj" +++ "b/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210.csproj" @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -10,16 +10,12 @@ Properties DTXCreator DTXCreator - v3.5 + v2.0 512 + + コード\99.リソース\DTXC.ico DTXCreator.exe.x86.manifest - - - - - 3.5 - true diff --git "a/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Resources.Designer.cs" "b/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Resources.Designer.cs" index 0a64b5e0..159cc52a 100644 --- "a/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Resources.Designer.cs" +++ "b/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Resources.Designer.cs" @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 +// このコードはツールによって生成されました。 +// ランタイム バージョン:2.0.50727.5472 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 +// コードが再生成されるときに損失したりします。 // //------------------------------------------------------------------------------ @@ -13,13 +13,13 @@ namespace DTXCreator.Properties { /// - /// A strongly-typed resource class, for looking up localized strings, etc. + /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。 /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + // このクラスは StronglyTypedResourceBuilder クラスが ResGen + // または Visual Studio のようなツールを使用して自動生成されました。 + // メンバを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に + // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -33,7 +33,7 @@ internal Resources() { } /// - /// Returns the cached ResourceManager instance used by this class. + /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { @@ -47,8 +47,8 @@ internal Resources() { } /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. + /// 厳密に型指定されたこのリソース クラスを使用して、すべての検索リソースに対し、 + /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { @@ -60,9 +60,6 @@ internal Resources() { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap BGMのみ再生 { get { object obj = ResourceManager.GetObject("BGMのみ再生", resourceCulture); @@ -71,7 +68,7 @@ internal static System.Drawing.Bitmap BGMのみ再生 { } /// - /// Looks up a localized string similar to 025(verK). + /// 025(verK) に類似しているローカライズされた文字列を検索します。 /// internal static string DTXC_VERSION { get { @@ -79,9 +76,6 @@ internal static string DTXC_VERSION { } } - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// internal static System.Drawing.Icon dtxcreator { get { object obj = ResourceManager.GetObject("dtxcreator", resourceCulture); @@ -89,9 +83,6 @@ internal static System.Drawing.Icon dtxcreator { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap Redo { get { object obj = ResourceManager.GetObject("Redo", resourceCulture); @@ -100,7 +91,7 @@ internal static System.Drawing.Bitmap Redo { } /// - /// Looks up a localized string similar to Specify a BPM value.. + /// Specify a BPM value. に類似しているローカライズされた文字列を検索します。 /// internal static string strBPM選択ダイアログの説明文 { get { @@ -109,7 +100,7 @@ internal static string strBPM選択ダイアログの説明文 { } /// - /// Looks up a localized string similar to It is not DTX file.. + /// It is not DTX file. に類似しているローカライズされた文字列を検索します。 /// internal static string strDTXファイルではありませんMSG { get { @@ -118,7 +109,7 @@ internal static string strDTXファイルではありませんMSG { } /// - /// Looks up a localized string similar to Open a DTX file. + /// Open a DTX file に類似しているローカライズされた文字列を検索します。 /// internal static string strDTXファイル選択ダイアログのタイトル { get { @@ -127,7 +118,7 @@ internal static string strDTXファイル選択ダイアログのタイトル { } /// - /// Looks up a localized string similar to DTX file (*.dtx;*.gda;*.g2d;*.bms;*.bme)|*.dtx;*.gda;*.g2d;*.bms;*.bme|All files(*.*)|*.*. + /// DTX file (*.dtx;*.gda;*.g2d;*.bms;*.bme)|*.dtx;*.gda;*.g2d;*.bms;*.bme|All files(*.*)|*.* に類似しているローカライズされた文字列を検索します。 /// internal static string strDTXファイル選択ダイアログのフィルタ { get { @@ -136,7 +127,7 @@ internal static string strDTXファイル選択ダイアログのフィルタ { } /// - /// Looks up a localized string similar to Error. + /// Error に類似しているローカライズされた文字列を検索します。 /// internal static string strエラーダイアログのタイトル { get { @@ -145,7 +136,7 @@ internal static string strエラーダイアログのタイトル { } /// - /// Looks up a localized string similar to Failed to load DTXCreator.config.. + /// Failed to load DTXCreator.config. に類似しているローカライズされた文字列を検索します。 /// internal static string strコンフィグ読み込み失敗エラーMSG { get { @@ -154,7 +145,7 @@ internal static string strコンフィグ読み込み失敗エラーMSG { } /// - /// Looks up a localized string similar to Select a sound file. + /// Select a sound file に類似しているローカライズされた文字列を検索します。 /// internal static string strサウンドファイル選択ダイアログのタイトル { get { @@ -163,7 +154,7 @@ internal static string strサウンドファイル選択ダイアログのタイ } /// - /// Looks up a localized string similar to Sound files(*.wav;*.ogg;*.mp3;*.xa)|*.wav;*.ogg;*.mp3;*.xa|All files(*.*)|*.*. + /// Sound files(*.wav;*.ogg;*.mp3;*.xa)|*.wav;*.ogg;*.mp3;*.xa|All files(*.*)|*.* に類似しているローカライズされた文字列を検索します。 /// internal static string strサウンドファイル選択ダイアログのフィルタ { get { @@ -172,7 +163,7 @@ internal static string strサウンドファイル選択ダイアログのフィ } /// - /// Looks up a localized string similar to Wait a moment.... + /// Wait a moment... に類似しているローカライズされた文字列を検索します。 /// internal static string strしばらくお待ち下さいMSG { get { @@ -181,7 +172,7 @@ internal static string strしばらくお待ち下さいMSG { } /// - /// Looks up a localized string similar to Select a loading image file. + /// Select a loading image file に類似しているローカライズされた文字列を検索します。 /// internal static string strステージ画像ファイル選択ダイアログのタイトル { get { @@ -190,7 +181,7 @@ internal static string strステージ画像ファイル選択ダイアログの } /// - /// Looks up a localized string similar to Illegal chip number . + /// Illegal chip number に類似しているローカライズされた文字列を検索します。 /// internal static string strチップ番号に誤りがありますMSG { get { @@ -199,7 +190,7 @@ internal static string strチップ番号に誤りがありますMSG { } /// - /// Looks up a localized string similar to New. + /// New に類似しているローカライズされた文字列を検索します。 /// internal static string strデフォルトウィンドウタイトル { get { @@ -208,7 +199,7 @@ internal static string strデフォルトウィンドウタイトル { } /// - /// Looks up a localized string similar to Specified file is not found.. + /// Specified file is not found. に類似しているローカライズされた文字列を検索します。 /// internal static string strファイルが存在しませんMSG { get { @@ -217,7 +208,7 @@ internal static string strファイルが存在しませんMSG { } /// - /// Looks up a localized string similar to Select a preview image file. + /// Select a preview image file に類似しているローカライズされた文字列を検索します。 /// internal static string strプレビュー画像ファイル選択ダイアログのタイトル { get { @@ -226,7 +217,7 @@ internal static string strプレビュー画像ファイル選択ダイアログ } /// - /// Looks up a localized string similar to Select a preview sound file. + /// Select a preview sound file に類似しているローカライズされた文字列を検索します。 /// internal static string strプレビュー音ファイル選択ダイアログのタイトル { get { @@ -235,7 +226,7 @@ internal static string strプレビュー音ファイル選択ダイアログの } /// - /// Looks up a localized string similar to Failed to boot.. + /// Failed to boot. に類似しているローカライズされた文字列を検索します。 /// internal static string strプロセスの起動に失敗しましたMSG { get { @@ -244,7 +235,7 @@ internal static string strプロセスの起動に失敗しましたMSG { } /// - /// Looks up a localized string similar to Saving.... + /// Saving... に類似しているローカライズされた文字列を検索します。 /// internal static string str保存中ですMSG { get { @@ -253,7 +244,7 @@ internal static string str保存中ですMSG { } /// - /// Looks up a localized string similar to chip(s) are selected.. + /// chip(s) are selected. に類似しているローカライズされた文字列を検索します。 /// internal static string str個のチップが選択されましたMSG { get { @@ -262,7 +253,7 @@ internal static string str個のチップが選択されましたMSG { } /// - /// Looks up a localized string similar to chip(s) are replaced.. + /// chip(s) are replaced. に類似しているローカライズされた文字列を検索します。 /// internal static string str個のチップを置換しましたMSG { get { @@ -271,7 +262,7 @@ internal static string str個のチップを置換しましたMSG { } /// - /// Looks up a localized string similar to Initializing.... + /// Initializing... に類似しているローカライズされた文字列を検索します。 /// internal static string str初期化中ですMSG { get { @@ -280,7 +271,7 @@ internal static string str初期化中ですMSG { } /// - /// Looks up a localized string similar to Select an Movie file. + /// Select an Movie file に類似しているローカライズされた文字列を検索します。 /// internal static string str動画ファイル選択ダイアログのタイトル { get { @@ -289,7 +280,7 @@ internal static string str動画ファイル選択ダイアログのタイトル } /// - /// Looks up a localized string similar to Movie files(*.avi;*.mp4)|*.avi;*.mp4|All files(*.*)|*.*. + /// Movie files(*.avi;*.mp4)|*.avi;*.mp4|All files(*.*)|*.* に類似しているローカライズされた文字列を検索します。 /// internal static string str動画ファイル選択ダイアログのフィルタ { get { @@ -298,7 +289,7 @@ internal static string str動画ファイル選択ダイアログのフィルタ } /// - /// Looks up a localized string similar to Save As. + /// Save As に類似しているローカライズされた文字列を検索します。 /// internal static string str名前を付けて保存ダイアログのタイトル { get { @@ -307,7 +298,7 @@ internal static string str名前を付けて保存ダイアログのタイトル } /// - /// Looks up a localized string similar to DTX files(*.dtx)|*.dtx. + /// DTX files(*.dtx)|*.dtx に類似しているローカライズされた文字列を検索します。 /// internal static string str名前を付けて保存ダイアログのフィルタ { get { @@ -316,7 +307,7 @@ internal static string str名前を付けて保存ダイアログのフィルタ } /// - /// Looks up a localized string similar to Illegal bar number.. + /// Illegal bar number. に類似しているローカライズされた文字列を検索します。 /// internal static string str小節番号に誤りがありますMSG { get { @@ -325,7 +316,7 @@ internal static string str小節番号に誤りがありますMSG { } /// - /// Looks up a localized string similar to Find results. + /// Find results に類似しているローカライズされた文字列を検索します。 /// internal static string str検索結果ダイアログのタイトル { get { @@ -334,7 +325,7 @@ internal static string str検索結果ダイアログのタイトル { } /// - /// Looks up a localized string similar to Select Image File. + /// Select Image File に類似しているローカライズされた文字列を検索します。 /// internal static string str画像ファイル選択ダイアログのタイトル { get { @@ -343,7 +334,7 @@ internal static string str画像ファイル選択ダイアログのタイトル } /// - /// Looks up a localized string similar to Image files(*.bmp;*.jpg;*.jpeg;*.png)|*.bmp;*.jpg;*.jpeg;*.png|All files(*.*)|*.*. + /// Image files(*.bmp;*.jpg;*.jpeg;*.png)|*.bmp;*.jpg;*.jpeg;*.png|All files(*.*)|*.* に類似しているローカライズされた文字列を検索します。 /// internal static string str画像ファイル選択ダイアログのフィルタ { get { @@ -352,7 +343,7 @@ internal static string str画像ファイル選択ダイアログのフィルタ } /// - /// Looks up a localized string similar to Confirmation. + /// Confirmation に類似しているローカライズされた文字列を検索します。 /// internal static string str確認ダイアログのタイトル { get { @@ -361,7 +352,7 @@ internal static string str確認ダイアログのタイトル { } /// - /// Looks up a localized string similar to Select Reult Screen image file. + /// Select Reult Screen image file に類似しているローカライズされた文字列を検索します。 /// internal static string str結果画像ファイル選択ダイアログのタイトル { get { @@ -370,8 +361,8 @@ internal static string str結果画像ファイル選択ダイアログのタイ } /// - /// Looks up a localized string similar to The dtx data has changed. - ///Do you want to save the changes?. + /// The dtx data has changed. + ///Do you want to save the changes? に類似しているローカライズされた文字列を検索します。 /// internal static string str編集中のデータを保存しますかMSG { get { @@ -380,7 +371,7 @@ internal static string str編集中のデータを保存しますかMSG { } /// - /// Looks up a localized string similar to Replace result. + /// Replace result に類似しているローカライズされた文字列を検索します。 /// internal static string str置換結果ダイアログのタイトル { get { @@ -389,7 +380,7 @@ internal static string str置換結果ダイアログのタイトル { } /// - /// Looks up a localized string similar to Select background image file. + /// Select background image file に類似しているローカライズされた文字列を検索します。 /// internal static string str背景画像ファイル選択ダイアログのタイトル { get { @@ -398,7 +389,7 @@ internal static string str背景画像ファイル選択ダイアログのタイ } /// - /// Looks up a localized string similar to No chips are found in the specified conditions.. + /// No chips are found in the specified conditions. に類似しているローカライズされた文字列を検索します。 /// internal static string str該当するチップはありませんでしたMSG { get { @@ -407,7 +398,7 @@ internal static string str該当するチップはありませんでしたMSG { } /// - /// Looks up a localized string similar to Now loading.... + /// Now loading... に類似しているローカライズされた文字列を検索します。 /// internal static string str読み込み中ですMSG { get { @@ -415,9 +406,6 @@ internal static string str読み込み中ですMSG { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap Undo { get { object obj = ResourceManager.GetObject("Undo", resourceCulture); @@ -425,9 +413,6 @@ internal static System.Drawing.Bitmap Undo { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap コピー { get { object obj = ResourceManager.GetObject("コピー", resourceCulture); @@ -435,9 +420,6 @@ internal static System.Drawing.Bitmap コピー { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap スピーカー { get { object obj = ResourceManager.GetObject("スピーカー", resourceCulture); @@ -445,9 +427,6 @@ internal static System.Drawing.Bitmap スピーカー { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap チップパレット { get { object obj = ResourceManager.GetObject("チップパレット", resourceCulture); @@ -455,9 +434,6 @@ internal static System.Drawing.Bitmap チップパレット { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap バージョン情報 { get { object obj = ResourceManager.GetObject("バージョン情報", resourceCulture); @@ -465,9 +441,6 @@ internal static System.Drawing.Bitmap バージョン情報 { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap ヘルプ { get { object obj = ResourceManager.GetObject("ヘルプ", resourceCulture); @@ -475,9 +448,6 @@ internal static System.Drawing.Bitmap ヘルプ { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap りらちょー { get { object obj = ResourceManager.GetObject("りらちょー", resourceCulture); @@ -485,9 +455,6 @@ internal static System.Drawing.Bitmap りらちょー { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 上移動 { get { object obj = ResourceManager.GetObject("上移動", resourceCulture); @@ -495,9 +462,6 @@ internal static System.Drawing.Bitmap 上移動 { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 下移動 { get { object obj = ResourceManager.GetObject("下移動", resourceCulture); @@ -505,9 +469,6 @@ internal static System.Drawing.Bitmap 下移動 { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 保存 { get { object obj = ResourceManager.GetObject("保存", resourceCulture); @@ -515,9 +476,6 @@ internal static System.Drawing.Bitmap 保存 { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 再生 { get { object obj = ResourceManager.GetObject("再生", resourceCulture); @@ -525,9 +483,6 @@ internal static System.Drawing.Bitmap 再生 { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 再生一時停止 { get { object obj = ResourceManager.GetObject("再生一時停止", resourceCulture); @@ -535,9 +490,6 @@ internal static System.Drawing.Bitmap 再生一時停止 { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 再生停止 { get { object obj = ResourceManager.GetObject("再生停止", resourceCulture); @@ -545,9 +497,6 @@ internal static System.Drawing.Bitmap 再生停止 { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 切り取り { get { object obj = ResourceManager.GetObject("切り取り", resourceCulture); @@ -555,9 +504,6 @@ internal static System.Drawing.Bitmap 切り取り { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 削除 { get { object obj = ResourceManager.GetObject("削除", resourceCulture); @@ -565,9 +511,6 @@ internal static System.Drawing.Bitmap 削除 { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 動画ドキュメント { get { object obj = ResourceManager.GetObject("動画ドキュメント", resourceCulture); @@ -575,9 +518,6 @@ internal static System.Drawing.Bitmap 動画ドキュメント { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 新規作成 { get { object obj = ResourceManager.GetObject("新規作成", resourceCulture); @@ -585,9 +525,6 @@ internal static System.Drawing.Bitmap 新規作成 { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 最初から再生 { get { object obj = ResourceManager.GetObject("最初から再生", resourceCulture); @@ -595,9 +532,6 @@ internal static System.Drawing.Bitmap 最初から再生 { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 画像ドキュメント { get { object obj = ResourceManager.GetObject("画像ドキュメント", resourceCulture); @@ -605,9 +539,6 @@ internal static System.Drawing.Bitmap 画像ドキュメント { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 矢印ポインタ { get { object obj = ResourceManager.GetObject("矢印ポインタ", resourceCulture); @@ -615,9 +546,6 @@ internal static System.Drawing.Bitmap 矢印ポインタ { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 表示形式選択 { get { object obj = ResourceManager.GetObject("表示形式選択", resourceCulture); @@ -625,9 +553,6 @@ internal static System.Drawing.Bitmap 表示形式選択 { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 貼り付け { get { object obj = ResourceManager.GetObject("貼り付け", resourceCulture); @@ -635,9 +560,6 @@ internal static System.Drawing.Bitmap 貼り付け { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 鉛筆 { get { object obj = ResourceManager.GetObject("鉛筆", resourceCulture); @@ -645,9 +567,6 @@ internal static System.Drawing.Bitmap 鉛筆 { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 開く { get { object obj = ResourceManager.GetObject("開く", resourceCulture); @@ -655,9 +574,6 @@ internal static System.Drawing.Bitmap 開く { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// internal static System.Drawing.Bitmap 音楽ドキュメント { get { object obj = ResourceManager.GetObject("音楽ドキュメント", resourceCulture); diff --git "a/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Settings.Designer.cs" "b/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Settings.Designer.cs" index 3568d375..883c87a5 100644 --- "a/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Settings.Designer.cs" +++ "b/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Settings.Designer.cs" @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 +// このコードはツールによって生成されました。 +// ランタイム バージョン:2.0.50727.4952 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 +// コードが再生成されるときに損失したりします。 // //------------------------------------------------------------------------------ @@ -12,7 +12,7 @@ namespace DTXCreator.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git "a/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/app.config" "b/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/app.config" index ea93c858..df20690a 100644 --- "a/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/app.config" +++ "b/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/app.config" @@ -1,3 +1,3 @@ - + - + diff --git "a/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/00.\345\205\250\344\275\223/C\343\203\241\343\202\244\343\203\263\343\203\225\343\202\251\343\203\274\343\203\240.cs" "b/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/00.\345\205\250\344\275\223/C\343\203\241\343\202\244\343\203\263\343\203\225\343\202\251\343\203\274\343\203\240.cs" index 892175ee..38d05d0f 100644 --- "a/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/00.\345\205\250\344\275\223/C\343\203\241\343\202\244\343\203\263\343\203\225\343\202\251\343\203\274\343\203\240.cs" +++ "b/DTXCreator\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/00.\345\205\250\344\275\223/C\343\203\241\343\202\244\343\203\263\343\203\225\343\202\251\343\203\274\343\203\240.cs" @@ -2233,27 +2233,6 @@ private void Cメインフォーム_DragEnter( object sender, DragEventArgs e ) e.Effect = DragDropEffects.None; } } - //KSM: Hotkeys without GUI can be processed here - //07/05/2016: Added space shortcut key for F8: Switch mode - protected override bool ProcessCmdKey(ref Message msg, Keys keyData) - { - if (keyData == Keys.Space) - { - //KSM: Copied from toolStripMenuItemモード切替_Click handler - if (this.b選択モードである) - { - this.t編集モードにする(); - } - else - { - this.t選択モードにする(); - } - // - return true; - } - return base.ProcessCmdKey(ref msg, keyData); - } - // private void Cメインフォーム_FormClosing( object sender, FormClosingEventArgs e ) { if( this.t未保存なら保存する() == DialogResult.Cancel ) diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXMania\343\202\275\343\203\252\343\203\245\343\203\274\343\202\267\343\203\247\343\203\263.sln" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXMania\343\202\275\343\203\252\343\203\245\343\203\274\343\202\267\343\203\247\343\203\263.sln" index b32b352a..5e65c5d9 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXMania\343\202\275\343\203\252\343\203\245\343\203\274\343\202\267\343\203\247\343\203\263.sln" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXMania\343\202\275\343\203\252\343\203\245\343\203\274\343\202\267\343\203\247\343\203\263.sln" @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 +# Visual Studio Express 2013 for Windows Desktop +VisualStudioVersion = 12.0.40629.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTXManiaプロジェクト", "DTXManiaプロジェクト.csproj", "{81BEC512-8074-4BD1-8A3C-AC73BC7BF846}" EndProject diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210.csproj" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210.csproj" index 5874051a..4b8dc47d 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210.csproj" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210.csproj" @@ -19,12 +19,6 @@ OnOutputUpdated DTXManiaGR.exe.x86.manifest - - - - - 3.5 - publish\ true Disk @@ -39,6 +33,12 @@ 1.0.0.%2a false true + + + + + 3.5 + true @@ -51,7 +51,7 @@ 0219 - bin\x86\Release\ + bin\x86\Debug\ DEBUG;TRACE false pdbonly @@ -219,11 +219,6 @@ - - False - .NET Framework 3.5 SP1 Client Profile - false - False .NET Framework 2.0 %28x86%29 @@ -239,11 +234,6 @@ .NET Framework 3.5 false - - False - .NET Framework 3.5 SP1 - false - diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/AssemblyInfo.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/AssemblyInfo.cs" index 8cf4d210..f3121f1f 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/AssemblyInfo.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/AssemblyInfo.cs" @@ -11,7 +11,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("DTXManiaGR")] -[assembly: AssemblyCopyright( "原作:Copyright (C) 2000-2015 DTXMania Group" )] +[assembly: AssemblyCopyright( "原作:Copyright (C) 2000-2019 DTXMania Group" )] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -33,7 +33,7 @@ // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を // 既定値にすることができます: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion( "3.4.0.0" )] +[assembly: AssemblyVersion( "3.6.2.0" )] [assembly: AssemblyFileVersion( "0.0.0.0" )] [assembly: NeutralResourcesLanguageAttribute("ja-JP")] diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Resources.Designer.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Resources.Designer.cs" index 8deb5b12..b023158e 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Resources.Designer.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Resources.Designer.cs" @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 +// このコードはツールによって生成されました。 +// ランタイム バージョン:4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 +// コードが再生成されるときに損失したりします。 // //------------------------------------------------------------------------------ @@ -13,12 +13,12 @@ namespace DTXMania.Properties { /// - /// A strongly-typed resource class, for looking up localized strings, etc. + /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。 /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. + // このクラスは StronglyTypedResourceBuilder クラスが ResGen + // または Visual Studio のようなツールを使用して自動生成されました。 + // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に + // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。 [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] @@ -33,7 +33,7 @@ internal Resources() { } /// - /// Returns the cached ResourceManager instance used by this class. + /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { @@ -47,8 +47,8 @@ internal Resources() { } /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. + /// 厳密に型指定されたこのリソース クラスを使用して、すべての検索リソースに対し、 + /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { @@ -61,7 +61,7 @@ internal Resources() { } /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// (アイコン) に類似した型 System.Drawing.Icon のローカライズされたリソースを検索します。 /// internal static System.Drawing.Icon dtx { get { diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Settings.Designer.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Settings.Designer.cs" index ea241a83..512380be 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Settings.Designer.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/Settings.Designer.cs" @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 +// このコードはツールによって生成されました。 +// ランタイム バージョン:4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 +// コードが再生成されるときに損失したりします。 // //------------------------------------------------------------------------------ diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/app.config" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/app.config" index ea93c858..e59af44d 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/app.config" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/app.config" @@ -1,3 +1,3 @@ - + diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CDTX.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CDTX.cs" index 3a86d91a..34cadc49 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CDTX.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CDTX.cs" @@ -496,7 +496,7 @@ public class CChip : IComparable, ICloneable public int nチャンネル番号; public STDGBVALUE nバーからの距離dot; public int n整数値; - public int n整数値・内部番号; + public int n整数値_内部番号; public int n総移動時間; public int n透明度 = 0xff; public int n発声位置; @@ -705,7 +705,7 @@ public void t初期化() { this.nチャンネル番号 = 0; this.n整数値 = 0; - this.n整数値・内部番号 = 0; + this.n整数値_内部番号 = 0; this.db実数値 = 0.0; this.n発声位置 = 0; this.n発声時刻ms = 0; @@ -763,7 +763,7 @@ public override string ToString() this.n発声位置 / 384, this.n発声位置 % 384, this.n発声時刻ms, this.nチャンネル番号, chToStr[ this.nチャンネル番号 ], - this.n整数値, this.n整数値・内部番号, + this.n整数値, this.n整数値_内部番号, this.db実数値, this.dbチップサイズ倍率, this.bWAVを使うチャンネルである, @@ -781,7 +781,7 @@ public int GetDuration() if ( this.bWAVを使うチャンネルである ) // WAV { CDTX.CWAV wc; - CDTXMania.DTX.listWAV.TryGetValue( this.n整数値・内部番号, out wc ); + CDTXMania.DTX.listWAV.TryGetValue( this.n整数値_内部番号, out wc ); if ( wc == null ) { nDuration = 0; @@ -1485,7 +1485,7 @@ public CDTX( string str全入力文字列 ) : this() { this.On活性化(); - this.t入力・全入力文字列から( str全入力文字列 ); + this.t入力_全入力文字列から( str全入力文字列 ); } public CDTX( string strファイル名, bool bヘッダのみ ) : this() @@ -1497,7 +1497,7 @@ public CDTX( string str全入力文字列, double db再生速度, int nBGMAdjust : this() { this.On活性化(); - this.t入力・全入力文字列から( str全入力文字列, db再生速度, nBGMAdjust ); + this.t入力_全入力文字列から( str全入力文字列, db再生速度, nBGMAdjust ); } public CDTX( string strファイル名, bool bヘッダのみ, double db再生速度, int nBGMAdjust ) : this() @@ -1591,7 +1591,7 @@ public void tAVIの読み込み() } } } - #region [ BMP/BMPTEXの並列読み込み・デコード用メソッド ] + #region [ BMP/BMPTEXの並列読み込み_デコード用メソッド ] delegate void BackgroundBMPLoadAll( Dictionary listB ); static BackgroundBMPLoadAll backgroundBMPLoadAll = new BackgroundBMPLoadAll( BMPLoadAll ); delegate void BackgroundBMPTEXLoadAll( Dictionary listB ); @@ -1659,7 +1659,7 @@ public void tBMP_BMPTEXの読み込み() { if ( nCPUCores <= 1 ) { - #region [ シングルスレッドで逐次読み出し・デコード・テクスチャ定義 ] + #region [ シングルスレッドで逐次読み出し_デコード_テクスチャ定義 ] foreach ( CBMP cbmp in this.listBMP.Values ) { cbmp.OnDeviceCreated(); @@ -1668,7 +1668,7 @@ public void tBMP_BMPTEXの読み込み() } else { - #region [ メインスレッド(テクスチャ定義)とバックグラウンドスレッド(読み出し・デコード)を並列動作させ高速化 ] + #region [ メインスレッド(テクスチャ定義)とバックグラウンドスレッド(読み出し_デコード)を並列動作させ高速化 ] //Trace.TraceInformation( "Main: ThreadID(Main)=" + Thread.CurrentThread.ManagedThreadId + ", listCount=" + this.listBMP.Count ); nLoadDone = 0; backgroundBMPLoadAll.BeginInvoke( listBMP, null, null ); @@ -1706,7 +1706,7 @@ public void tBMP_BMPTEXの読み込み() { if ( nCPUCores <= 1 ) { - #region [ シングルスレッドで逐次読み出し・デコード・テクスチャ定義 ] + #region [ シングルスレッドで逐次読み出し_デコード_テクスチャ定義 ] foreach ( CBMPTEX cbmptex in this.listBMPTEX.Values ) { cbmptex.OnDeviceCreated(); @@ -1715,7 +1715,7 @@ public void tBMP_BMPTEXの読み込み() } else { - #region [ メインスレッド(テクスチャ定義)とバックグラウンドスレッド(読み出し・デコード)を並列動作させ高速化 ] + #region [ メインスレッド(テクスチャ定義)とバックグラウンドスレッド(読み出し_デコード)を並列動作させ高速化 ] //Trace.TraceInformation( "Main: ThreadID(Main)=" + Thread.CurrentThread.ManagedThreadId + ", listCount=" + this.listBMP.Count ); nLoadDone = 0; backgroundBMPTEXLoadAll.BeginInvoke( listBMPTEX, null, null ); @@ -2126,7 +2126,7 @@ public void t譜面仕様変更(E楽器パート part, Eタイプ eNumOfLanes) case 0x1b: case 0x1c: { - chip.nチャンネル番号 = 0x16; + chip.nチャンネル番号 = 0x76; continue; } } @@ -2385,7 +2385,7 @@ public void tドラムのランダム化(E楽器パート part, Eランダムモ int num8 = 0; int num9 = -10000; int[] n乱数排列数列; - CDTX.t乱数排列数列生成作業・クラシック(out n乱数排列数列); + CDTX.t乱数排列数列生成作業_クラシック(out n乱数排列数列); foreach (CDTX.CChip current2 in this.listChip) { int nチャンネル番号2 = current2.nチャンネル番号; @@ -2394,23 +2394,23 @@ public void tドラムのランダム化(E楽器パート part, Eランダムモ switch (eRandom) { case Eランダムモード.RANDOM: - CDTX.t乱数を各チャンネルに指定する・クラシック(n乱数排列数列, current2, nチャンネル番号2); + CDTX.t乱数を各チャンネルに指定する_クラシック(n乱数排列数列, current2, nチャンネル番号2); break; case Eランダムモード.SUPERRANDOM: if (current2.n発声位置 / 384 != num9) { num9 = current2.n発声位置 / 384; - CDTX.t乱数排列数列生成作業・クラシック(out n乱数排列数列); + CDTX.t乱数排列数列生成作業_クラシック(out n乱数排列数列); } - CDTX.t乱数を各チャンネルに指定する・クラシック(n乱数排列数列, current2, nチャンネル番号2); + CDTX.t乱数を各チャンネルに指定する_クラシック(n乱数排列数列, current2, nチャンネル番号2); break; case Eランダムモード.HYPERRANDOM: if (current2.n発声位置 / 96 != num9) { num9 = current2.n発声位置 / 96; - CDTX.t乱数排列数列生成作業・クラシック(out n乱数排列数列); + CDTX.t乱数排列数列生成作業_クラシック(out n乱数排列数列); } - CDTX.t乱数を各チャンネルに指定する・クラシック(n乱数排列数列, current2, nチャンネル番号2); + CDTX.t乱数を各チャンネルに指定する_クラシック(n乱数排列数列, current2, nチャンネル番号2); break; case Eランダムモード.MASTERRANDOM: do @@ -2732,7 +2732,7 @@ private static void tグループランダム分配作業(out int[] nシンバ } } } - private static void t乱数を各チャンネルに指定する・クラシック(int[] n乱数排列数列, CDTX.CChip chip, int nランダム化前チャンネル番号) + private static void t乱数を各チャンネルに指定する_クラシック(int[] n乱数排列数列, CDTX.CChip chip, int nランダム化前チャンネル番号) { switch (nランダム化前チャンネル番号) { @@ -2759,7 +2759,7 @@ private static void tグループランダム分配作業(out int[] nシンバ return; } } - private static void t乱数排列数列生成作業・クラシック(out int[] n乱数排列数列) + private static void t乱数排列数列生成作業_クラシック(out int[] n乱数排列数列) { n乱数排列数列 = new int[5]; bool[] array = new bool[5]; @@ -3171,15 +3171,15 @@ public void tチップの再生( CChip rChip, long n再生開始システム時 } public void tチップの再生( CChip pChip, long n再生開始システム時刻ms, int nLane, int nVol, bool bMIDIMonitor, bool bBad ) { - if( pChip.n整数値・内部番号 >= 0 ) + if( pChip.n整数値_内部番号 >= 0 ) { if( ( nLane < (int) Eレーン.LC ) || ( (int) Eレーン.BGM < nLane ) ) { throw new ArgumentOutOfRangeException(); } - if( this.listWAV.ContainsKey( pChip.n整数値・内部番号 ) ) + if( this.listWAV.ContainsKey( pChip.n整数値_内部番号 ) ) { - CWAV wc = this.listWAV[ pChip.n整数値・内部番号 ]; + CWAV wc = this.listWAV[ pChip.n整数値_内部番号 ]; int index = wc.n現在再生中のサウンド番号 = ( wc.n現在再生中のサウンド番号 + 1 ) % nPolyphonicSounds; if( ( wc.rSound[ 0 ] != null ) && ( wc.rSound[ 0 ].bストリーム再生する || wc.rSound[index] == null ) ) @@ -3210,7 +3210,15 @@ public void tチップの再生( CChip pChip, long n再生開始システム時 } public void t各自動再生音チップの再生時刻を変更する( int nBGMAdjustの増減値 ) { - this.nBGMAdjust += nBGMAdjustの増減値; + this.t各自動再生音チップの再生時刻を変更する( nBGMAdjustの増減値, true, false ); + } + public void t各自動再生音チップの再生時刻を変更する( int nBGMAdjustの増減値, bool bScoreIni保存, bool bConfig保存 ) + { + if( bScoreIni保存 ) + this.nBGMAdjust += nBGMAdjustの増減値; + if( bConfig保存 ) + CDTXMania.ConfigIni.nCommonBGMAdjustMs = nBGMAdjustの増減値; + for( int i = 0; i < this.listChip.Count; i++ ) { int nChannelNumber = this.listChip[ i ].nチャンネル番号; @@ -3330,7 +3338,7 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); //Trace.TraceInformation( "DTXfileload時間: {0}", span.ToString() ); - this.t入力・全入力文字列から( str2, db再生速度, nBGMAdjust ); + this.t入力_全入力文字列から( str2, db再生速度, nBGMAdjust ); } catch { @@ -3341,11 +3349,11 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db Trace.TraceWarning( "SMF の演奏は未対応です。(検討中)" ); } } - public void t入力・全入力文字列から( string str全入力文字列 ) + public void t入力_全入力文字列から( string str全入力文字列 ) { - this.t入力・全入力文字列から( str全入力文字列, 1.0, 0 ); + this.t入力_全入力文字列から( str全入力文字列, 1.0, 0 ); } - public unsafe void t入力・全入力文字列から( string str全入力文字列, double db再生速度, int nBGMAdjust ) + public unsafe void t入力_全入力文字列から( string str全入力文字列, double db再生速度, int nBGMAdjust ) { //DateTime timeBeginLoad = DateTime.Now; //TimeSpan span; @@ -3389,7 +3397,7 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db this.n現在の行数 = 1; do { - if ( !this.t入力・空白と改行をスキップする( ref ce ) ) + if ( !this.t入力_空白と改行をスキップする( ref ce ) ) { break; } @@ -3398,15 +3406,15 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db if ( ce.MoveNext() ) { StringBuilder builder = new StringBuilder( 0x20 ); - if ( this.t入力・コマンド文字列を抜き出す( ref ce, ref builder ) ) + if ( this.t入力_コマンド文字列を抜き出す( ref ce, ref builder ) ) { StringBuilder builder2 = new StringBuilder( 0x400 ); - if ( this.t入力・パラメータ文字列を抜き出す( ref ce, ref builder2 ) ) + if ( this.t入力_パラメータ文字列を抜き出す( ref ce, ref builder2 ) ) { StringBuilder builder3 = new StringBuilder( 0x400 ); - if ( this.t入力・コメント文字列を抜き出す( ref ce, ref builder3 ) ) + if ( this.t入力_コメント文字列を抜き出す( ref ce, ref builder3 ) ) { - this.t入力・行解析( ref builder, ref builder2, ref builder3 ); + this.t入力_行解析( ref builder, ref builder2, ref builder3 ); this.n現在の行数++; continue; } @@ -3416,7 +3424,7 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db break; } } - while ( this.t入力・コメントをスキップする( ref ce ) ); + while ( this.t入力_コメントをスキップする( ref ce ) ); #endregion //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); //Trace.TraceInformation( "抜き出し時間: {0}", span.ToString() ); @@ -3450,7 +3458,7 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db chip.n発声位置 = 0; chip.nチャンネル番号 = 8; // 拡張BPM chip.n整数値 = 0; - chip.n整数値・内部番号 = cbpm.n内部番号; + chip.n整数値_内部番号 = cbpm.n内部番号; this.listChip.Insert( 0, chip ); } else @@ -3459,7 +3467,7 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db chip.n発声位置 = 0; chip.nチャンネル番号 = 8; // 拡張BPM chip.n整数値 = 0; - chip.n整数値・内部番号 = cbpm.n内部番号; + chip.n整数値_内部番号 = cbpm.n内部番号; this.listChip.Insert( 0, chip ); } if ( this.listBMP.ContainsKey( 0 ) ) @@ -3468,7 +3476,7 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db chip.n発声位置 = 0; chip.nチャンネル番号 = 4; // BGA (レイヤBGA1) chip.n整数値 = 0; - chip.n整数値・内部番号 = 0; + chip.n整数値_内部番号 = 0; this.listChip.Insert( 0, chip ); } #endregion @@ -3498,9 +3506,9 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db #region [ チップ倍率設定 ] // #28145 2012.4.22 yyagi 二重ループを1重ループに変更して高速化) foreach ( CChip chip in this.listChip ) { - if ( this.listWAV.ContainsKey( chip.n整数値・内部番号 ) ) + if ( this.listWAV.ContainsKey( chip.n整数値_内部番号 ) ) { - CWAV cwav = this.listWAV[ chip.n整数値・内部番号 ]; + CWAV cwav = this.listWAV[ chip.n整数値_内部番号 ]; chip.dbチップサイズ倍率 = ( (double) cwav.nチップサイズ ) / 100.0; } } @@ -3516,7 +3524,7 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db //c.n発声位置 = 0; //c.nチャンネル番号 = chip.nチャンネル番号; //c.n整数値 = chip.n整数値; - //c.n整数値・内部番号 = chip.n整数値・内部番号; + //c.n整数値_内部番号 = chip.n整数値_内部番号; //this.listChip.Insert( 0, c ); //break; //} @@ -3526,7 +3534,7 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); //Trace.TraceInformation( "空打確認時間: {0}", span.ToString() ); //timeBeginLoad = DateTime.Now; - #region [ 拍子・拍線の挿入 ] + #region [ 拍子_拍線の挿入 ] if ( this.listChip.Count > 0 ) { this.listChip.Sort(); // 高速化のためにはこれを削りたいが、listChipの最後がn発声位置の終端である必要があるので、 @@ -3591,9 +3599,9 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db } #endregion //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); - //Trace.TraceInformation( "拍子・拍線挿入時間: {0}", span.ToString() ); + //Trace.TraceInformation( "拍子_拍線挿入時間: {0}", span.ToString() ); //timeBeginLoad = DateTime.Now; - #region [ C2 [拍線・小節線表示指定] の処理 ] // #28145 2012.4.21 yyagi; 2重ループをほぼ1重にして高速化 + #region [ C2 [拍線_小節線表示指定] の処理 ] // #28145 2012.4.21 yyagi; 2重ループをほぼ1重にして高速化 bool bShowBeatBarLine = true; for ( int i = 0; i < this.listChip.Count; i++ ) { @@ -3631,7 +3639,7 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db } #endregion //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); - //Trace.TraceInformation( "C2 [拍線・小節線表示指定]: {0}", span.ToString() ); + //Trace.TraceInformation( "C2 [拍線_小節線表示指定]: {0}", span.ToString() ); //timeBeginLoad = DateTime.Now; #region [ 発声時刻の計算 ] double bpm = 120.0; @@ -3691,9 +3699,9 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db { n発声位置 = chip.n発声位置; ms = chip.n発声時刻ms; - if ( this.listBPM.ContainsKey( chip.n整数値・内部番号 ) ) + if ( this.listBPM.ContainsKey( chip.n整数値_内部番号 ) ) { - bpm = ( ( this.listBPM[ chip.n整数値・内部番号 ].n表記上の番号 == 0 ) ? 0.0 : this.BASEBPM ) + this.listBPM[ chip.n整数値・内部番号 ].dbBPM値; + bpm = ( ( this.listBPM[ chip.n整数値_内部番号 ].n表記上の番号 == 0 ) ? 0.0 : this.BASEBPM ) + this.listBPM[ chip.n整数値_内部番号 ].dbBPM値; } continue; } @@ -3747,7 +3755,9 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db //Trace.TraceInformation( "発声時刻計算: {0}", span.ToString() ); //timeBeginLoad = DateTime.Now; this.nBGMAdjust = 0; - this.t各自動再生音チップの再生時刻を変更する( nBGMAdjust ); + this.t各自動再生音チップの再生時刻を変更する( nBGMAdjust ); + if( CDTXMania.ConfigIni.nCommonBGMAdjustMs != 0 ) + this.t各自動再生音チップの再生時刻を変更する( CDTXMania.ConfigIni.nCommonBGMAdjustMs, false, true ); //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); //Trace.TraceInformation( "再生時刻変更: {0}", span.ToString() ); //timeBeginLoad = DateTime.Now; @@ -3783,28 +3793,28 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db #region [ チップの種類を分類し、対応するフラグを立てる ] foreach (CChip chip in this.listChip) { - if ((chip.bWAVを使うチャンネルである && this.listWAV.ContainsKey(chip.n整数値・内部番号)) && !this.listWAV[chip.n整数値・内部番号].listこのWAVを使用するチャンネル番号の集合.Contains(chip.nチャンネル番号)) + if ((chip.bWAVを使うチャンネルである && this.listWAV.ContainsKey(chip.n整数値_内部番号)) && !this.listWAV[chip.n整数値_内部番号].listこのWAVを使用するチャンネル番号の集合.Contains(chip.nチャンネル番号)) { - this.listWAV[chip.n整数値・内部番号].listこのWAVを使用するチャンネル番号の集合.Add(chip.nチャンネル番号); + this.listWAV[chip.n整数値_内部番号].listこのWAVを使用するチャンネル番号の集合.Add(chip.nチャンネル番号); int c = chip.nチャンネル番号 >> 4; switch (c) { case 0x01: - this.listWAV[chip.n整数値・内部番号].bIsDrumsSound = true; break; + this.listWAV[chip.n整数値_内部番号].bIsDrumsSound = true; break; case 0x02: - this.listWAV[chip.n整数値・内部番号].bIsGuitarSound = true; break; + this.listWAV[chip.n整数値_内部番号].bIsGuitarSound = true; break; case 0x0A: - this.listWAV[chip.n整数値・内部番号].bIsBassSound = true; break; + this.listWAV[chip.n整数値_内部番号].bIsBassSound = true; break; case 0x06: case 0x07: case 0x08: case 0x09: - this.listWAV[chip.n整数値・内部番号].bIsSESound = true; break; + this.listWAV[chip.n整数値_内部番号].bIsSESound = true; break; case 0x00: if (chip.nチャンネル番号 == 0x01) { - this.listWAV[chip.n整数値・内部番号].bIsBGMSound = true; break; + this.listWAV[chip.n整数値_内部番号].bIsBGMSound = true; break; } break; } @@ -3896,7 +3906,7 @@ public void t入力( string strファイル名, bool bヘッダのみ, double db } } /// - /// サウンドミキサーにサウンドを登録・削除する時刻を事前に算出する + /// サウンドミキサーにサウンドを登録_削除する時刻を事前に算出する /// public void PlanToAddMixerChannel() { @@ -3959,9 +3969,9 @@ public void PlanToAddMixerChannel() } if ( pChip.nチャンネル番号 == 0x01 ) // BGMチップは即ミキサーに追加 { - if ( listWAV.ContainsKey( pChip.n整数値・内部番号 ) ) + if ( listWAV.ContainsKey( pChip.n整数値_内部番号 ) ) { - CDTX.CWAV wc = CDTXMania.DTX.listWAV[ pChip.n整数値・内部番号 ]; + CDTX.CWAV wc = CDTXMania.DTX.listWAV[ pChip.n整数値_内部番号 ]; if ( wc.rSound[ 0 ] != null ) { CDTXMania.Sound管理.AddMixer( wc.rSound[ 0 ] ); // BGMは多重再生しない仕様としているので、1個目だけミキサーに登録すればよい @@ -3980,7 +3990,7 @@ public void PlanToAddMixerChannel() { nチャンネル番号 = 0xEA, n整数値 = pChip.n整数値, - n整数値・内部番号 = pChip.n整数値・内部番号, + n整数値_内部番号 = pChip.n整数値_内部番号, n発声時刻ms = nAddMixer時刻ms, n発声位置 = nAddMixer位置, b演奏終了後も再生が続くチップである = false @@ -3991,9 +4001,9 @@ public void PlanToAddMixerChannel() #endregion int duration = 0; - if ( listWAV.ContainsKey( pChip.n整数値・内部番号 ) ) + if ( listWAV.ContainsKey( pChip.n整数値_内部番号 ) ) { - CDTX.CWAV wc = CDTXMania.DTX.listWAV[ pChip.n整数値・内部番号 ]; + CDTX.CWAV wc = CDTXMania.DTX.listWAV[ pChip.n整数値_内部番号 ]; duration = ( wc.rSound[ 0 ] == null ) ? 0 : (int) ( wc.rSound[ 0 ].n総演奏時間ms / this.db再生速度 ); // #23664 durationに再生速度が加味されておらず、低速再生でBGMが途切れる問題を修正 (発声時刻msは、DTX読み込み時に再生速度加味済) } //Debug.WriteLine("duration=" + duration ); @@ -4005,7 +4015,7 @@ public void PlanToAddMixerChannel() CChip c_AddMixer_noremove = c_AddMixer; c_AddMixer_noremove.b演奏終了後も再生が続くチップである = true; listAddMixerChannel[ listAddMixerChannel.Count - 1 ] = c_AddMixer_noremove; - //continue; // 発声位置の計算ができないので、Mixer削除をあきらめる・・・のではなく + //continue; // 発声位置の計算ができないので、Mixer削除をあきらめる___のではなく // #32248 2013.10.15 yyagi 演奏終了後も再生を続けるチップであるというフラグをpChip内に立てる break; } @@ -4050,7 +4060,7 @@ public void PlanToAddMixerChannel() { nチャンネル番号 = 0xEB, n整数値 = listRemoveTiming[ index ].n整数値, - n整数値・内部番号 = listRemoveTiming[ index ].n整数値・内部番号, + n整数値_内部番号 = listRemoveTiming[ index ].n整数値_内部番号, n発声時刻ms = n新RemoveMixer時刻ms, n発声位置 = n新RemoveMixer位置 }; @@ -4066,7 +4076,7 @@ public void PlanToAddMixerChannel() { nチャンネル番号 = 0xEB, n整数値 = pChip.n整数値, - n整数値・内部番号 = pChip.n整数値・内部番号, + n整数値_内部番号 = pChip.n整数値_内部番号, n発声時刻ms = n新RemoveMixer時刻ms, n発声位置 = n新RemoveMixer位置 }; @@ -4129,7 +4139,7 @@ private bool t発声時刻msと発声位置を取得する( int n希望発声時 if ( index_min < 0 ) // 希望発声時刻に至らずに曲が終了してしまう場合 { // listの最終項目の時刻をそのまま使用する - //・・・のではダメ。BGMが尻切れになる。 + //___のではダメ。BGMが尻切れになる。 // そこで、listの最終項目の発声時刻msと発生位置から、希望発声時刻に相当する希望発声位置を比例計算して求める。 //n新発声時刻ms = n希望発声時刻ms; //n新発声位置 = listChip[ listChip.Count - 1 ].n発声位置 * n希望発声時刻ms / listChip[ listChip.Count - 1 ].n発声時刻ms; @@ -4389,9 +4399,9 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ private int[] nRESULTMOVIE用優先順位; private int[] nRESULTSOUND用優先順位; - private bool t入力・コマンド文字列を抜き出す( ref CharEnumerator ce, ref StringBuilder sb文字列 ) + private bool t入力_コマンド文字列を抜き出す( ref CharEnumerator ce, ref StringBuilder sb文字列 ) { - if( !this.t入力・空白をスキップする( ref ce ) ) + if( !this.t入力_空白をスキップする( ref ce ) ) return false; // 文字が尽きた #region [ コマンド終端文字(':')、半角空白、コメント開始文字(';')、改行のいずれかが出現するまでをコマンド文字列と見なし、sb文字列 にコピーする。] @@ -4413,7 +4423,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ if( !ce.MoveNext() ) return false; // 文字が尽きた - if( !this.t入力・空白をスキップする( ref ce ) ) + if( !this.t入力_空白をスキップする( ref ce ) ) return false; // 文字が尽きた } //----------------- @@ -4421,7 +4431,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・コメントをスキップする( ref CharEnumerator ce ) + private bool t入力_コメントをスキップする( ref CharEnumerator ce ) { // 改行が現れるまでをコメントと見なしてスキップする。 @@ -4435,7 +4445,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return ce.MoveNext(); } - private bool t入力・コメント文字列を抜き出す( ref CharEnumerator ce, ref StringBuilder sb文字列 ) + private bool t入力_コメント文字列を抜き出す( ref CharEnumerator ce, ref StringBuilder sb文字列 ) { if( ce.Current != ';' ) // コメント開始文字(';')じゃなければ正常帰還。 return true; @@ -4457,7 +4467,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private void t入力・パラメータ食い込みチェック( string strコマンド名, ref string strコマンド, ref string strパラメータ ) + private void t入力_パラメータ食い込みチェック( string strコマンド名, ref string strコマンド, ref string strパラメータ ) { if( ( strコマンド.Length > strコマンド名.Length ) && strコマンド.StartsWith( strコマンド名, StringComparison.OrdinalIgnoreCase ) ) { @@ -4465,9 +4475,9 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ strコマンド = strコマンド.Substring( 0, strコマンド名.Length ); } } - private bool t入力・パラメータ文字列を抜き出す( ref CharEnumerator ce, ref StringBuilder sb文字列 ) + private bool t入力_パラメータ文字列を抜き出す( ref CharEnumerator ce, ref StringBuilder sb文字列 ) { - if( !this.t入力・空白をスキップする( ref ce ) ) + if( !this.t入力_空白をスキップする( ref ce ) ) return false; // 文字が尽きた #region [ 改行またはコメント開始文字(';')が出現するまでをパラメータ文字列と見なし、sb文字列 にコピーする。] @@ -4484,7 +4494,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・空白と改行をスキップする( ref CharEnumerator ce ) + private bool t入力_空白と改行をスキップする( ref CharEnumerator ce ) { // 空白と改行が続く間はこれらをスキップする。 @@ -4499,7 +4509,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・空白をスキップする( ref CharEnumerator ce ) + private bool t入力_空白をスキップする( ref CharEnumerator ce ) { // 空白が続く間はこれをスキップする。 @@ -4511,7 +4521,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private void t入力・行解析( ref StringBuilder sbコマンド, ref StringBuilder sbパラメータ, ref StringBuilder sbコメント ) + private void t入力_行解析( ref StringBuilder sbコマンド, ref StringBuilder sbパラメータ, ref StringBuilder sbコメント ) { string strコマンド = sbコマンド.ToString(); string strパラメータ = sbパラメータ.ToString().Trim(); @@ -4523,7 +4533,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- if( strコマンド.StartsWith( "IF", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "IF", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "IF", ref strコマンド, ref strパラメータ ); if( this.bstackIFからENDIFをスキップする.Count == 255 ) { @@ -4549,7 +4559,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "ENDIF", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "ENDIF", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "ENDIF", ref strコマンド, ref strパラメータ ); if( this.bstackIFからENDIFをスキップする.Count > 1 ) { @@ -4569,7 +4579,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- if( strコマンド.StartsWith( "PATH_WAV", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "PATH_WAV", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "PATH_WAV", ref strコマンド, ref strパラメータ ); this.PATH_WAV = strパラメータ; } //----------------- @@ -4578,7 +4588,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- #36034 ikanick add 16.2.18 else if( strコマンド.StartsWith( "PATH", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "PATH", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "PATH", ref strコマンド, ref strパラメータ ); this.PATH = ( strパラメータ != "PATH_WAV" ) ? strパラメータ : ""; } //----------------- @@ -4587,7 +4597,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "TITLE", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "TITLE", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "TITLE", ref strコマンド, ref strパラメータ ); this.TITLE = strパラメータ; } //----------------- @@ -4596,7 +4606,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "ARTIST", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "ARTIST", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "ARTIST", ref strコマンド, ref strパラメータ ); this.ARTIST = strパラメータ; } //----------------- @@ -4605,7 +4615,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "COMMENT", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "COMMENT", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "COMMENT", ref strコマンド, ref strパラメータ ); this.COMMENT = strパラメータ; } //----------------- @@ -4616,13 +4626,19 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ strコマンド.StartsWith( "DLEVEL", StringComparison.OrdinalIgnoreCase ) || strコマンド.StartsWith( "PLAYLEVEL", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "DLEVEL", ref strコマンド, ref strパラメータ ); - this.t入力・パラメータ食い込みチェック( "PLAYLEVEL", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "DLEVEL", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "PLAYLEVEL", ref strコマンド, ref strパラメータ ); int dlevel; if( int.TryParse( strパラメータ, out dlevel ) ) { this.LEVEL.Drums = Math.Min( Math.Max( dlevel, 0 ), 1000 ); // 0~100 に丸める + if( this.LEVEL.Drums >= 100 ) + { + int dlevelTemp = this.LEVEL.Drums; + this.LEVEL.Drums = (int)( this.LEVEL.Drums / 10.0f ); + this.LEVELDEC.Drums = dlevelTemp - this.LEVEL.Drums * 10; + } } } //----------------- @@ -4631,12 +4647,18 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "GLEVEL", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "GLEVEL", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "GLEVEL", ref strコマンド, ref strパラメータ ); int glevel; if( int.TryParse( strパラメータ, out glevel ) ) { this.LEVEL.Guitar = Math.Min( Math.Max( glevel, 0 ), 1000 ); // 0~100 に丸める + if( this.LEVEL.Guitar >= 100 ) + { + int glevelTemp = this.LEVEL.Guitar; + this.LEVEL.Guitar = (int)( this.LEVEL.Guitar / 10.0f ); + this.LEVELDEC.Guitar = glevelTemp - this.LEVEL.Guitar * 10; + } } } //----------------- @@ -4645,12 +4667,18 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "BLEVEL", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "BLEVEL", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "BLEVEL", ref strコマンド, ref strパラメータ ); int blevel; if( int.TryParse( strパラメータ, out blevel ) ) { this.LEVEL.Bass = Math.Min( Math.Max( blevel, 0 ), 1000 ); // 0~100 に丸める + if( this.LEVEL.Bass >= 100 ) + { + int blevelTemp = this.LEVEL.Bass; + this.LEVEL.Bass = (int)( this.LEVEL.Bass / 10.0f ); + this.LEVELDEC.Bass = blevelTemp - this.LEVEL.Bass * 10; + } } } //----------------- @@ -4658,7 +4686,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ #region[ DLVDEC ] else if( strコマンド.StartsWith( "DLVDEC", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "DLVDEC", ref strコマンド, ref strパラメータ); + this.t入力_パラメータ食い込みチェック( "DLVDEC", ref strコマンド, ref strパラメータ); int dleveldec; if( int.TryParse( strパラメータ, out dleveldec ) ) { @@ -4669,7 +4697,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ #region[ GLVDEC ] else if( strコマンド.StartsWith( "GLVDEC", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "GLVDEC", ref strコマンド, ref strパラメータ); + this.t入力_パラメータ食い込みチェック( "GLVDEC", ref strコマンド, ref strパラメータ); int gleveldec; if( int.TryParse( strパラメータ, out gleveldec ) ) { @@ -4680,7 +4708,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ #region[ BLVDEC ] else if( strコマンド.StartsWith( "BLVDEC", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "BLVDEC", ref strコマンド, ref strパラメータ); + this.t入力_パラメータ食い込みチェック( "BLVDEC", ref strコマンド, ref strパラメータ); int bleveldec; if( int.TryParse( strパラメータ, out bleveldec ) ) { @@ -4690,15 +4718,15 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ #endregion #if TEST_NOTEOFFMODE else if (str.StartsWith("SUPRESSNOTEOFF_HIHAT", StringComparison.OrdinalIgnoreCase)) { - this.t入力・パラメータ食い込みチェック("SUPRESSNOTEOFF_HIHAT", ref str, ref str2); + this.t入力_パラメータ食い込みチェック("SUPRESSNOTEOFF_HIHAT", ref str, ref str2); this.bHH演奏で直前のHHを消音する = !str2.ToLower().Equals("on"); } else if (str.StartsWith("SUPRESSNOTEOFF_GUITAR", StringComparison.OrdinalIgnoreCase)) { - this.t入力・パラメータ食い込みチェック("SUPRESSNOTEOFF_GUITAR", ref str, ref str2); + this.t入力_パラメータ食い込みチェック("SUPRESSNOTEOFF_GUITAR", ref str, ref str2); this.bGUITAR演奏で直前のGUITARを消音する = !str2.ToLower().Equals("on"); } else if (str.StartsWith("SUPRESSNOTEOFF_BASS", StringComparison.OrdinalIgnoreCase)) { - this.t入力・パラメータ食い込みチェック("SUPRESSNOTEOFF_BASS", ref str, ref str2); + this.t入力_パラメータ食い込みチェック("SUPRESSNOTEOFF_BASS", ref str, ref str2); this.bBASS演奏で直前のBASSを消音する = !str2.ToLower().Equals("on"); } #endif @@ -4706,7 +4734,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "GENRE", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "GENRE", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "GENRE", ref strコマンド, ref strパラメータ ); this.GENRE = strパラメータ; } //----------------- @@ -4715,7 +4743,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "HIDDENLEVEL", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "HIDDENLEVEL", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "HIDDENLEVEL", ref strコマンド, ref strパラメータ ); this.HIDDENLEVEL = strパラメータ.ToLower().Equals( "on" ); } //----------------- @@ -4724,7 +4752,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "STAGEFILE", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "STAGEFILE", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "STAGEFILE", ref strコマンド, ref strパラメータ ); this.STAGEFILE = strパラメータ; } //----------------- @@ -4733,7 +4761,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "PREVIEW", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "PREVIEW", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "PREVIEW", ref strコマンド, ref strパラメータ ); this.PREVIEW = strパラメータ; } //----------------- @@ -4742,7 +4770,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "PREIMAGE", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "PREIMAGE", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "PREIMAGE", ref strコマンド, ref strパラメータ ); this.PREIMAGE = strパラメータ; } //----------------- @@ -4751,7 +4779,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "PREMOVIE", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "PREMOVIE", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "PREMOVIE", ref strコマンド, ref strパラメータ ); this.PREMOVIE = strパラメータ; } //----------------- @@ -4760,7 +4788,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "BACKGROUND_GR", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "BACKGROUND_GR", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "BACKGROUND_GR", ref strコマンド, ref strパラメータ ); this.BACKGROUND_GR = strパラメータ; } //----------------- @@ -4771,8 +4799,8 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ strコマンド.StartsWith( "BACKGROUND", StringComparison.OrdinalIgnoreCase ) || strコマンド.StartsWith( "WALL", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "BACKGROUND", ref strコマンド, ref strパラメータ ); - this.t入力・パラメータ食い込みチェック( "WALL", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "BACKGROUND", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "WALL", ref strコマンド, ref strパラメータ ); this.BACKGROUND = strパラメータ; } //----------------- @@ -4781,7 +4809,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "RANDOM", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "RANDOM", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "RANDOM", ref strコマンド, ref strパラメータ ); int n数値 = 1; if( !int.TryParse( strパラメータ, out n数値 ) ) @@ -4795,7 +4823,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "SOUND_NOWLOADING", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "SOUND_NOWLOADING", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "SOUND_NOWLOADING", ref strコマンド, ref strパラメータ ); this.SOUND_NOWLOADING = strパラメータ; } //----------------- @@ -4804,25 +4832,25 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "BPM", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・行解析・BPM_BPMzz( strコマンド, strパラメータ, strコメント ); + this.t入力_行解析_BPM_BPMzz( strコマンド, strパラメータ, strコメント ); } //----------------- #endregion else if( strコマンド.StartsWith( "FORCINGXG" ) ) { - this.t入力・パラメータ食い込みチェック( "FORCINGXG", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "FORCINGXG", ref strコマンド, ref strパラメータ ); this.b強制的にXG譜面にする = strパラメータ.ToLower().Equals( "on" ); } else if( strコマンド.StartsWith( "VOL7FTO64" ) ) { - this.t入力・パラメータ食い込みチェック( "VOL7FTO64", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "VOL7FTO64", ref strコマンド, ref strパラメータ ); this.bVol137to100 = strパラメータ.ToLower().Equals( "on" ); } #region [ DTXVPLAYSPEED ] //----------------- else if ( strコマンド.StartsWith( "DTXVPLAYSPEED", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "DTXVPLAYSPEED", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "DTXVPLAYSPEED", ref strコマンド, ref strパラメータ ); double dtxvplayspeed = 0.0; if ( TryParse( strパラメータ, out dtxvplayspeed ) && dtxvplayspeed > 0.0 ) @@ -4838,7 +4866,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- if( strコマンド.StartsWith( "PANEL", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "PANEL", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "PANEL", ref strコマンド, ref strパラメータ ); int dummyResult; // #23885 2010.12.12 yyagi: not to confuse "#PANEL strings (panel)" and "#PANEL int (panpot of EL)" if( !int.TryParse( strパラメータ, out dummyResult ) ) @@ -4854,7 +4882,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "MIDIFILE", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "MIDIFILE", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "MIDIFILE", ref strコマンド, ref strパラメータ ); this.MIDIFILE = strパラメータ; } //----------------- @@ -4863,7 +4891,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "MIDINOTE", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "MIDINOTE", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "MIDINOTE", ref strコマンド, ref strパラメータ ); this.MIDINOTE = strパラメータ.ToLower().Equals( "on" ); } //----------------- @@ -4872,7 +4900,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "BLACKCOLORKEY", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "BLACKCOLORKEY", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "BLACKCOLORKEY", ref strコマンド, ref strパラメータ ); this.BLACKCOLORKEY = strパラメータ.ToLower().Equals( "on" ); } //----------------- @@ -4881,7 +4909,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "BASEBPM", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "BASEBPM", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "BASEBPM", ref strコマンド, ref strパラメータ ); double basebpm = 0.0; //if( double.TryParse( str2, out num6 ) && ( num6 > 0.0 ) ) @@ -4896,7 +4924,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "SOUND_STAGEFAILED", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "SOUND_STAGEFAILED", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "SOUND_STAGEFAILED", ref strコマンド, ref strパラメータ ); this.SOUND_STAGEFAILED = strパラメータ; } //----------------- @@ -4905,7 +4933,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "SOUND_FULLCOMBO", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "SOUND_FULLCOMBO", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "SOUND_FULLCOMBO", ref strコマンド, ref strパラメータ ); this.SOUND_FULLCOMBO = strパラメータ; } //----------------- @@ -4914,7 +4942,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ //----------------- else if( strコマンド.StartsWith( "SOUND_AUDIENCE", StringComparison.OrdinalIgnoreCase ) ) { - this.t入力・パラメータ食い込みチェック( "SOUND_AUDIENCE", ref strコマンド, ref strパラメータ ); + this.t入力_パラメータ食い込みチェック( "SOUND_AUDIENCE", ref strコマンド, ref strパラメータ ); this.SOUND_AUDIENCE = strパラメータ; } //----------------- @@ -4923,22 +4951,22 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ // オブジェクト記述コマンドの処理。 - else if( !this.t入力・行解析・WAVVOL_VOLUME( strコマンド, strパラメータ, strコメント ) && - !this.t入力・行解析・WAVPAN_PAN( strコマンド, strパラメータ, strコメント ) && - !this.t入力・行解析・WAV( strコマンド, strパラメータ, strコメント ) && - !this.t入力・行解析・BMPTEX( strコマンド, strパラメータ, strコメント ) && - !this.t入力・行解析・BMP( strコマンド, strパラメータ, strコメント ) && - !this.t入力・行解析・BGAPAN( strコマンド, strパラメータ, strコメント ) && - !this.t入力・行解析・BGA( strコマンド, strパラメータ, strコメント ) && - !this.t入力・行解析・AVIPAN( strコマンド, strパラメータ, strコメント ) && - !this.t入力・行解析・AVI_VIDEO( strコマンド, strパラメータ, strコメント ) && - // !this.t入力・行解析・BPM_BPMzz( strコマンド, strパラメータ, strコメント ) && // bヘッダのみ==trueの場合でもチェックするよう変更 - !this.t入力・行解析・RESULTIMAGE( strコマンド, strパラメータ, strコメント ) && - !this.t入力・行解析・RESULTMOVIE( strコマンド, strパラメータ, strコメント ) && - !this.t入力・行解析・RESULTSOUND( strコマンド, strパラメータ, strコメント ) && - !this.t入力・行解析・SIZE( strコマンド, strパラメータ, strコメント ) ) + else if( !this.t入力_行解析_WAVVOL_VOLUME( strコマンド, strパラメータ, strコメント ) && + !this.t入力_行解析_WAVPAN_PAN( strコマンド, strパラメータ, strコメント ) && + !this.t入力_行解析_WAV( strコマンド, strパラメータ, strコメント ) && + !this.t入力_行解析_BMPTEX( strコマンド, strパラメータ, strコメント ) && + !this.t入力_行解析_BMP( strコマンド, strパラメータ, strコメント ) && + !this.t入力_行解析_BGAPAN( strコマンド, strパラメータ, strコメント ) && + !this.t入力_行解析_BGA( strコマンド, strパラメータ, strコメント ) && + !this.t入力_行解析_AVIPAN( strコマンド, strパラメータ, strコメント ) && + !this.t入力_行解析_AVI_VIDEO( strコマンド, strパラメータ, strコメント ) && + // !this.t入力_行解析_BPM_BPMzz( strコマンド, strパラメータ, strコメント ) && // bヘッダのみ==trueの場合でもチェックするよう変更 + !this.t入力_行解析_RESULTIMAGE( strコマンド, strパラメータ, strコメント ) && + !this.t入力_行解析_RESULTMOVIE( strコマンド, strパラメータ, strコメント ) && + !this.t入力_行解析_RESULTSOUND( strコマンド, strパラメータ, strコメント ) && + !this.t入力_行解析_SIZE( strコマンド, strパラメータ, strコメント ) ) { - this.t入力・行解析・チップ配置( strコマンド, strパラメータ, strコメント ); + this.t入力_行解析_チップ配置( strコマンド, strパラメータ, strコメント ); } EOL: Debug.Assert( true ); // #23885 2010.12.12 yyagi: dummy line to exit parsing the line @@ -4946,11 +4974,11 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ } //else //{ // Duration測定のため、bヘッダのみ==trueでも、チップ配置は行う - // this.t入力・行解析・チップ配置( strコマンド, strパラメータ, strコメント ); + // this.t入力_行解析_チップ配置( strコマンド, strパラメータ, strコメント ); //} } } - private bool t入力・行解析・AVI_VIDEO( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_AVI_VIDEO( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -5012,7 +5040,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・行解析・AVIPAN( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_AVIPAN( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -5078,144 +5106,144 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ i++; //----------------- #endregion - #region [ 2. 開始転送サイズ・幅 ] + #region [ 2. 開始転送サイズ_幅 ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "AVIPAN: {2}番目の引数(開始転送サイズ・幅)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "AVIPAN: {2}番目の引数(開始転送サイズ_幅)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } avipan.sz開始サイズ.Width = n値; i++; //----------------- #endregion - #region [ 3. 転送サイズ・高さ ] + #region [ 3. 転送サイズ_高さ ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "AVIPAN: {2}番目の引数(開始転送サイズ・高さ)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "AVIPAN: {2}番目の引数(開始転送サイズ_高さ)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } avipan.sz開始サイズ.Height = n値; i++; //----------------- #endregion - #region [ 4. 終了転送サイズ・幅 ] + #region [ 4. 終了転送サイズ_幅 ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "AVIPAN: {2}番目の引数(終了転送サイズ・幅)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "AVIPAN: {2}番目の引数(終了転送サイズ_幅)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } avipan.sz終了サイズ.Width = n値; i++; //----------------- #endregion - #region [ 5. 終了転送サイズ・高さ ] + #region [ 5. 終了転送サイズ_高さ ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "AVIPAN: {2}番目の引数(終了転送サイズ・高さ)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "AVIPAN: {2}番目の引数(終了転送サイズ_高さ)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } avipan.sz終了サイズ.Height = n値; i++; //----------------- #endregion - #region [ 6. 動画側開始位置・X ] + #region [ 6. 動画側開始位置_X ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "AVIPAN: {2}番目の引数(動画側開始位置・X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "AVIPAN: {2}番目の引数(動画側開始位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } avipan.pt動画側開始位置.X = n値; i++; //----------------- #endregion - #region [ 7. 動画側開始位置・Y ] + #region [ 7. 動画側開始位置_Y ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "AVIPAN: {2}番目の引数(動画側開始位置・Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "AVIPAN: {2}番目の引数(動画側開始位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } avipan.pt動画側開始位置.Y = n値; i++; //----------------- #endregion - #region [ 8. 動画側終了位置・X ] + #region [ 8. 動画側終了位置_X ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "AVIPAN: {2}番目の引数(動画側終了位置・X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "AVIPAN: {2}番目の引数(動画側終了位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } avipan.pt動画側終了位置.X = n値; i++; //----------------- #endregion - #region [ 9. 動画側終了位置・Y ] + #region [ 9. 動画側終了位置_Y ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "AVIPAN: {2}番目の引数(動画側終了位置・Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "AVIPAN: {2}番目の引数(動画側終了位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } avipan.pt動画側終了位置.Y = n値; i++; //----------------- #endregion - #region [ 10.表示側開始位置・X ] + #region [ 10.表示側開始位置_X ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "AVIPAN: {2}番目の引数(表示側開始位置・X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "AVIPAN: {2}番目の引数(表示側開始位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } avipan.pt表示側開始位置.X = n値; i++; //----------------- #endregion - #region [ 11.表示側開始位置・Y ] + #region [ 11.表示側開始位置_Y ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "AVIPAN: {2}番目の引数(表示側開始位置・Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "AVIPAN: {2}番目の引数(表示側開始位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } avipan.pt表示側開始位置.Y = n値; i++; //----------------- #endregion - #region [ 12.表示側終了位置・X ] + #region [ 12.表示側終了位置_X ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "AVIPAN: {2}番目の引数(表示側終了位置・X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "AVIPAN: {2}番目の引数(表示側終了位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } avipan.pt表示側終了位置.X = n値; i++; //----------------- #endregion - #region [ 13.表示側終了位置・Y ] + #region [ 13.表示側終了位置_Y ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "AVIPAN: {2}番目の引数(表示側終了位置・Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "AVIPAN: {2}番目の引数(表示側終了位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } avipan.pt表示側終了位置.Y = n値; @@ -5250,7 +5278,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・行解析・BGA( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_BGA( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -5316,72 +5344,72 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ i++; //----------------- #endregion - #region [ 2.画像側位置1・X ] + #region [ 2.画像側位置1_X ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGA: {2}番目の引数(画像側位置1・X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGA: {2}番目の引数(画像側位置1_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bga.pt画像側左上座標.X = n値; i++; //----------------- #endregion - #region [ 3.画像側位置1・Y ] + #region [ 3.画像側位置1_Y ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGA: {2}番目の引数(画像側位置1・Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGA: {2}番目の引数(画像側位置1_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bga.pt画像側左上座標.Y = n値; i++; //----------------- #endregion - #region [ 4.画像側位置2・X ] + #region [ 4.画像側位置2_X ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGA: {2}番目の引数(画像側位置2・X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGA: {2}番目の引数(画像側位置2_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bga.pt画像側右下座標.X = n値; i++; //----------------- #endregion - #region [ 5.画像側位置2・Y ] + #region [ 5.画像側位置2_Y ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGA: {2}番目の引数(画像側座標2・Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGA: {2}番目の引数(画像側座標2_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bga.pt画像側右下座標.Y = n値; i++; //----------------- #endregion - #region [ 6.表示位置・X ] + #region [ 6.表示位置_X ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGA: {2}番目の引数(表示位置・X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGA: {2}番目の引数(表示位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bga.pt表示座標.X = n値; i++; //----------------- #endregion - #region [ 7.表示位置・Y ] + #region [ 7.表示位置_Y ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGA: {2}番目の引数(表示位置・Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGA: {2}番目の引数(表示位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bga.pt表示座標.Y = n値; @@ -5416,7 +5444,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・行解析・BGAPAN( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_BGAPAN( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -5482,144 +5510,144 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ i++; //----------------- #endregion - #region [ 2. 開始転送サイズ・幅 ] + #region [ 2. 開始転送サイズ_幅 ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGAPAN: {2}番目の引数(開始転送サイズ・幅)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGAPAN: {2}番目の引数(開始転送サイズ_幅)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bgapan.sz開始サイズ.Width = n値; i++; //----------------- #endregion - #region [ 3. 開始転送サイズ・高さ ] + #region [ 3. 開始転送サイズ_高さ ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGAPAN: {2}番目の引数(開始転送サイズ・高さ)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGAPAN: {2}番目の引数(開始転送サイズ_高さ)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bgapan.sz開始サイズ.Height = n値; i++; //----------------- #endregion - #region [ 4. 終了転送サイズ・幅 ] + #region [ 4. 終了転送サイズ_幅 ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGAPAN: {2}番目の引数(終了転送サイズ・幅)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGAPAN: {2}番目の引数(終了転送サイズ_幅)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bgapan.sz終了サイズ.Width = n値; i++; //----------------- #endregion - #region [ 5. 終了転送サイズ・高さ ] + #region [ 5. 終了転送サイズ_高さ ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGAPAN: {2}番目の引数(終了転送サイズ・高さ)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGAPAN: {2}番目の引数(終了転送サイズ_高さ)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bgapan.sz終了サイズ.Height = n値; i++; //----------------- #endregion - #region [ 6. 画像側開始位置・X ] + #region [ 6. 画像側開始位置_X ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGAPAN: {2}番目の引数(画像側開始位置・X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGAPAN: {2}番目の引数(画像側開始位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bgapan.pt画像側開始位置.X = n値; i++; //----------------- #endregion - #region [ 7. 画像側開始位置・Y ] + #region [ 7. 画像側開始位置_Y ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGAPAN: {2}番目の引数(画像側開始位置・Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGAPAN: {2}番目の引数(画像側開始位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bgapan.pt画像側開始位置.Y = n値; i++; //----------------- #endregion - #region [ 8. 画像側終了位置・X ] + #region [ 8. 画像側終了位置_X ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGAPAN: {2}番目の引数(画像側終了位置・X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGAPAN: {2}番目の引数(画像側終了位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bgapan.pt画像側終了位置.X = n値; i++; //----------------- #endregion - #region [ 9. 画像側終了位置・Y ] + #region [ 9. 画像側終了位置_Y ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGAPAN: {2}番目の引数(画像側終了位置・Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGAPAN: {2}番目の引数(画像側終了位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bgapan.pt画像側終了位置.Y = n値; i++; //----------------- #endregion - #region [ 10.表示側開始位置・X ] + #region [ 10.表示側開始位置_X ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGAPAN: {2}番目の引数(表示側開始位置・X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGAPAN: {2}番目の引数(表示側開始位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bgapan.pt表示側開始位置.X = n値; i++; //----------------- #endregion - #region [ 11.表示側開始位置・Y ] + #region [ 11.表示側開始位置_Y ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGAPAN: {2}番目の引数(表示側開始位置・Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGAPAN: {2}番目の引数(表示側開始位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bgapan.pt表示側開始位置.Y = n値; i++; //----------------- #endregion - #region [ 12.表示側終了位置・X ] + #region [ 12.表示側終了位置_X ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGAPAN: {2}番目の引数(表示側終了位置・X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGAPAN: {2}番目の引数(表示側終了位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bgapan.pt表示側終了位置.X = n値; i++; //----------------- #endregion - #region [ 13.表示側終了位置・Y ] + #region [ 13.表示側終了位置_Y ] //----------------- n値 = 0; if( !int.TryParse( strParams[ i ], out n値 ) ) { - Trace.TraceError( "BGAPAN: {2}番目の引数(表示側終了位置・Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); + Trace.TraceError( "BGAPAN: {2}番目の引数(表示側終了位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1 ); return false; } bgapan.pt表示側終了位置.Y = n値; @@ -5654,7 +5682,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・行解析・BMP( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_BMP( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -5715,7 +5743,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・行解析・BMPTEX( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_BMPTEX( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -5761,7 +5789,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・行解析・BPM_BPMzz( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_BPM_BPMzz( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -5840,8 +5868,8 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ { var chip = this.listChip[ i ]; - if( chip.bBPMチップである && chip.n整数値・内部番号 == -zz ) // #BPMzz 行より前の行に出現した #BPMzz では、整数値・内部番号は -zz に初期化されている。 - chip.n整数値・内部番号 = this.n内部番号BPM1to; + if( chip.bBPMチップである && chip.n整数値_内部番号 == -zz ) // #BPMzz 行より前の行に出現した #BPMzz では、整数値_内部番号は -zz に初期化されている。 + chip.n整数値_内部番号 = this.n内部番号BPM1to; } } this.n無限管理BPM[ zz ] = this.n内部番号BPM1to; // 次にこの BPM番号 zz を使うBPMチップが現れたら、このBPM値が格納されることになる。 @@ -5851,7 +5879,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・行解析・RESULTIMAGE( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_RESULTIMAGE( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -5886,31 +5914,31 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ switch( strコマンド.ToUpper() ) { case "_SS": - this.t入力・行解析・RESULTIMAGE・ファイルを設定する( 0, strパラメータ ); + this.t入力_行解析_RESULTIMAGE_ファイルを設定する( 0, strパラメータ ); break; case "_S": - this.t入力・行解析・RESULTIMAGE・ファイルを設定する( 1, strパラメータ ); + this.t入力_行解析_RESULTIMAGE_ファイルを設定する( 1, strパラメータ ); break; case "_A": - this.t入力・行解析・RESULTIMAGE・ファイルを設定する( 2, strパラメータ ); + this.t入力_行解析_RESULTIMAGE_ファイルを設定する( 2, strパラメータ ); break; case "_B": - this.t入力・行解析・RESULTIMAGE・ファイルを設定する( 3, strパラメータ ); + this.t入力_行解析_RESULTIMAGE_ファイルを設定する( 3, strパラメータ ); break; case "_C": - this.t入力・行解析・RESULTIMAGE・ファイルを設定する( 4, strパラメータ ); + this.t入力_行解析_RESULTIMAGE_ファイルを設定する( 4, strパラメータ ); break; case "_D": - this.t入力・行解析・RESULTIMAGE・ファイルを設定する( 5, strパラメータ ); + this.t入力_行解析_RESULTIMAGE_ファイルを設定する( 5, strパラメータ ); break; case "_E": - this.t入力・行解析・RESULTIMAGE・ファイルを設定する( 6, strパラメータ ); + this.t入力_行解析_RESULTIMAGE_ファイルを設定する( 6, strパラメータ ); break; } //----------------- @@ -5919,7 +5947,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private void t入力・行解析・RESULTIMAGE・ファイルを設定する( int nランク0to6, string strファイル名 ) + private void t入力_行解析_RESULTIMAGE_ファイルを設定する( int nランク0to6, string strファイル名 ) { if( nランク0to6 < 0 || nランク0to6 > 6 ) // 値域チェック。 return; @@ -5940,7 +5968,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ } } } - private bool t入力・行解析・RESULTMOVIE( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_RESULTMOVIE( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -5975,31 +6003,31 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ switch( strコマンド.ToUpper() ) { case "_SS": - this.t入力・行解析・RESULTMOVIE・ファイルを設定する( 0, strパラメータ ); + this.t入力_行解析_RESULTMOVIE_ファイルを設定する( 0, strパラメータ ); break; case "_S": - this.t入力・行解析・RESULTMOVIE・ファイルを設定する( 1, strパラメータ ); + this.t入力_行解析_RESULTMOVIE_ファイルを設定する( 1, strパラメータ ); break; case "_A": - this.t入力・行解析・RESULTMOVIE・ファイルを設定する( 2, strパラメータ ); + this.t入力_行解析_RESULTMOVIE_ファイルを設定する( 2, strパラメータ ); break; case "_B": - this.t入力・行解析・RESULTMOVIE・ファイルを設定する( 3, strパラメータ ); + this.t入力_行解析_RESULTMOVIE_ファイルを設定する( 3, strパラメータ ); break; case "_C": - this.t入力・行解析・RESULTMOVIE・ファイルを設定する( 4, strパラメータ ); + this.t入力_行解析_RESULTMOVIE_ファイルを設定する( 4, strパラメータ ); break; case "_D": - this.t入力・行解析・RESULTMOVIE・ファイルを設定する( 5, strパラメータ ); + this.t入力_行解析_RESULTMOVIE_ファイルを設定する( 5, strパラメータ ); break; case "_E": - this.t入力・行解析・RESULTMOVIE・ファイルを設定する( 6, strパラメータ ); + this.t入力_行解析_RESULTMOVIE_ファイルを設定する( 6, strパラメータ ); break; } //----------------- @@ -6008,7 +6036,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private void t入力・行解析・RESULTMOVIE・ファイルを設定する( int nランク0to6, string strファイル名 ) + private void t入力_行解析_RESULTMOVIE_ファイルを設定する( int nランク0to6, string strファイル名 ) { if( nランク0to6 < 0 || nランク0to6 > 6 ) // 値域チェック。 return; @@ -6029,7 +6057,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ } } } - private bool t入力・行解析・RESULTSOUND( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_RESULTSOUND( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -6064,31 +6092,31 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ switch( strコマンド.ToUpper() ) { case "_SS": - this.t入力・行解析・RESULTSOUND・ファイルを設定する( 0, strパラメータ ); + this.t入力_行解析_RESULTSOUND_ファイルを設定する( 0, strパラメータ ); break; case "_S": - this.t入力・行解析・RESULTSOUND・ファイルを設定する( 1, strパラメータ ); + this.t入力_行解析_RESULTSOUND_ファイルを設定する( 1, strパラメータ ); break; case "_A": - this.t入力・行解析・RESULTSOUND・ファイルを設定する( 2, strパラメータ ); + this.t入力_行解析_RESULTSOUND_ファイルを設定する( 2, strパラメータ ); break; case "_B": - this.t入力・行解析・RESULTSOUND・ファイルを設定する( 3, strパラメータ ); + this.t入力_行解析_RESULTSOUND_ファイルを設定する( 3, strパラメータ ); break; case "_C": - this.t入力・行解析・RESULTSOUND・ファイルを設定する( 4, strパラメータ ); + this.t入力_行解析_RESULTSOUND_ファイルを設定する( 4, strパラメータ ); break; case "_D": - this.t入力・行解析・RESULTSOUND・ファイルを設定する( 5, strパラメータ ); + this.t入力_行解析_RESULTSOUND_ファイルを設定する( 5, strパラメータ ); break; case "_E": - this.t入力・行解析・RESULTSOUND・ファイルを設定する( 6, strパラメータ ); + this.t入力_行解析_RESULTSOUND_ファイルを設定する( 6, strパラメータ ); break; } //----------------- @@ -6097,7 +6125,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private void t入力・行解析・RESULTSOUND・ファイルを設定する( int nランク0to6, string strファイル名 ) + private void t入力_行解析_RESULTSOUND_ファイルを設定する( int nランク0to6, string strファイル名 ) { if( nランク0to6 < 0 || nランク0to6 > 6 ) // 値域チェック。 return; @@ -6118,7 +6146,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ } } } - private bool t入力・行解析・SIZE( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_SIZE( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -6176,7 +6204,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・行解析・WAV( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_WAV( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -6229,8 +6257,8 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ { var chip = this.listChip[ i ]; - if( chip.bWAVを使うチャンネルである && ( chip.n整数値・内部番号 == -zz ) ) // この #WAVzz 行より前の行に出現した #WAVzz では、整数値・内部番号は -zz に初期化されている。 - chip.n整数値・内部番号 = this.n内部番号WAV1to; + if( chip.bWAVを使うチャンネルである && ( chip.n整数値_内部番号 == -zz ) ) // この #WAVzz 行より前の行に出現した #WAVzz では、整数値_内部番号は -zz に初期化されている。 + chip.n整数値_内部番号 = this.n内部番号WAV1to; } } this.n無限管理WAV[ zz ] = this.n内部番号WAV1to; // 次にこの WAV番号 zz を使うWAVチップが現れたら、この内部番号が格納されることになる。 @@ -6240,7 +6268,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・行解析・WAVPAN_PAN( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_WAVPAN_PAN( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -6295,7 +6323,7 @@ public STGDAPARAM( string strGDAのチャンネル文字列, int nDTXのチャ return true; } - private bool t入力・行解析・WAVVOL_VOLUME( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_WAVVOL_VOLUME( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -6361,7 +6389,7 @@ private int tWAVVolMax137toMax100( int nMax137Vol ) return nMax100Vol; } - private bool t入力・行解析・チップ配置( string strコマンド, string strパラメータ, string strコメント ) + private bool t入力_行解析_チップ配置( string strコマンド, string strパラメータ, string strコメント ) { // (1) コマンドを処理。 @@ -6627,7 +6655,7 @@ private int tWAVVolMax137toMax100( int nMax137Vol ) chip.nチャンネル番号 = nチャンネル番号; chip.n発声位置 = ( n小節番号 * 384 ) + ( ( 384 * i ) / ( n文字数 / 2 ) ); chip.n整数値 = nオブジェクト数値; - chip.n整数値・内部番号 = nオブジェクト数値; + chip.n整数値_内部番号 = nオブジェクト数値; #region [ chip.e楽器パート = ... ] //----------------- @@ -6648,13 +6676,17 @@ private int tWAVVolMax137toMax100( int nMax137Vol ) #region [ 無限定義への対応 → 内部番号の取得。] //----------------- + // 2019.06.30 kairera0467 + if( this.n無限管理WAV.Length < nオブジェクト数値 ) + break; + if( chip.bWAVを使うチャンネルである ) { - chip.n整数値・内部番号 = this.n無限管理WAV[ nオブジェクト数値 ]; // これが本当に一意なWAV番号となる。(無限定義の場合、chip.n整数値 は一意である保証がない。) + chip.n整数値_内部番号 = this.n無限管理WAV[ nオブジェクト数値 ]; // これが本当に一意なWAV番号となる。(無限定義の場合、chip.n整数値 は一意である保証がない。) } else if( chip.bBPMチップである ) { - chip.n整数値・内部番号 = this.n無限管理BPM[ nオブジェクト数値 ]; // これが本当に一意なBPM番号となる。(同上。) + chip.n整数値_内部番号 = this.n無限管理BPM[ nオブジェクト数値 ]; // これが本当に一意なBPM番号となる。(同上。) } //----------------- #endregion @@ -6716,7 +6748,7 @@ private int tWAVVolMax137toMax100( int nMax137Vol ) decimalPosition = i; } else if (GroupSeparators.IndexOf(c) >= 0) { // 桁区切り文字の場合もスキップ continue; - } else { // 数値・小数点・区切り文字以外がきたらループ終了 + } else { // 数値_小数点_区切り文字以外がきたらループ終了 break; } } diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CScoreIni.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CScoreIni.cs" index 5ab04899..699d44bf 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CScoreIni.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CScoreIni.cs" @@ -198,11 +198,11 @@ public class C演奏記録 public int nPerfect数; public int nPoorになる範囲ms; public int nPoor数; - public int nPerfect数・Auto含まない; - public int nGreat数・Auto含まない; - public int nGood数・Auto含まない; - public int nPoor数・Auto含まない; - public int nMiss数・Auto含まない; + public int nPerfect数_Auto含まない; + public int nGreat数_Auto含まない; + public int nGood数_Auto含まない; + public int nPoor数_Auto含まない; + public int nMiss数_Auto含まない; public long nスコア; public int n演奏速度分子; public int n演奏速度分母; @@ -314,7 +314,7 @@ public bool b全AUTOである { get { - return (this.n全チップ数 - this.nPerfect数・Auto含まない - this.nGreat数・Auto含まない - this.nGood数・Auto含まない - this.nPoor数・Auto含まない - this.nMiss数・Auto含まない) == this.n全チップ数; + return (this.n全チップ数 - this.nPerfect数_Auto含まない - this.nGreat数_Auto含まない - this.nGood数_Auto含まない - this.nPoor数_Auto含まない - this.nMiss数_Auto含まない) == this.n全チップ数; } } #if false @@ -1456,7 +1456,7 @@ internal static int tランク値を計算して返す(int nTotal, int nPerfect, } internal static double tゲーム型スキルを計算して返す(double dbLevel, int nLevelDec, int nTotal, int nPerfect, int nGreat, int nCombo, E楽器パート inst, STAUTOPLAY bAutoPlay) { - //こちらはプレイヤースキル・全曲スキルに加算される得点。いわゆる曲別スキル。 + //こちらはプレイヤースキル_全曲スキルに加算される得点。いわゆる曲別スキル。 double dbPERFECT率 = (100.0 * nPerfect / nTotal); double dbGREAT率 = (100.0 * nGreat / nTotal); double dbCOMBO率 = (100.0 * nCombo / nTotal); @@ -1780,11 +1780,11 @@ internal static void t更新条件を取得する( out bool bDrumsを更新す internal static int t総合ランク値を計算して返す(C演奏記録 Drums, C演奏記録 Guitar, C演奏記録 Bass) { int nTotal = Drums.n全チップ数 + Guitar.n全チップ数 + Bass.n全チップ数; - int nPerfect = Drums.nPerfect数・Auto含まない + Guitar.nPerfect数・Auto含まない + Bass.nPerfect数・Auto含まない; // #24569 2011.3.1 yyagi: to calculate result rank without AUTO chips - int nGreat = Drums.nGreat数・Auto含まない + Guitar.nGreat数・Auto含まない + Bass.nGreat数・Auto含まない; // - int nGood = Drums.nGood数・Auto含まない + Guitar.nGood数・Auto含まない + Bass.nGood数・Auto含まない; // - int nPoor = Drums.nPoor数・Auto含まない + Guitar.nPoor数・Auto含まない + Bass.nPoor数・Auto含まない; // - int nMiss = Drums.nMiss数・Auto含まない + Guitar.nMiss数・Auto含まない + Bass.nMiss数・Auto含まない; // + int nPerfect = Drums.nPerfect数_Auto含まない + Guitar.nPerfect数_Auto含まない + Bass.nPerfect数_Auto含まない; // #24569 2011.3.1 yyagi: to calculate result rank without AUTO chips + int nGreat = Drums.nGreat数_Auto含まない + Guitar.nGreat数_Auto含まない + Bass.nGreat数_Auto含まない; // + int nGood = Drums.nGood数_Auto含まない + Guitar.nGood数_Auto含まない + Bass.nGood数_Auto含まない; // + int nPoor = Drums.nPoor数_Auto含まない + Guitar.nPoor数_Auto含まない + Bass.nPoor数_Auto含まない; // + int nMiss = Drums.nMiss数_Auto含まない + Guitar.nMiss数_Auto含まない + Bass.nMiss数_Auto含まない; // int nCombo = Drums.n最大コンボ数 + Guitar.n最大コンボ数 + Bass.n最大コンボ数; // if (CDTXMania.ConfigIni.nSkillMode == 0) { diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CSong\347\256\241\347\220\206.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CSong\347\256\241\347\220\206.cs" index c048cf52..9dd5e3c7 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CSong\347\256\241\347\220\206.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CSong\347\256\241\347\220\206.cs" @@ -703,6 +703,7 @@ private void tスコアキャッシュを曲リストに反映する( List int nL12345 = (int)p[ 0 ]; if ( part != E楽器パート.UNKNOWN ) { - ノードリスト.Sort( delegate( C曲リストノード n1, C曲リストノード n2 ) + Trace.WriteLine( "----------ソート開始------------" ); + ノードリスト.Sort( delegate( C曲リストノード n1, C曲リストノード n2 ) //2016.03.12 kairera0467 少数第2位も考慮するようにするテスト。 { #region [ 共通処理 ] if ( n1 == n2 ) { return 0; } - int num = this.t比較0_共通( n1, n2 ); + float num = this.t比較0_共通( n1, n2 ); //2016.06.17 kairera0467 ソートが正確に行われるよう修正。(int→float) if ( num != 0 ) { - return order * num; + return (int)(order * num); } if ( ( n1.eノード種別 == C曲リストノード.Eノード種別.BOX ) && ( n2.eノード種別 == C曲リストノード.Eノード種別.BOX ) ) { return order * n1.arスコア[ 0 ].ファイル情報.フォルダの絶対パス.CompareTo( n2.arスコア[ 0 ].ファイル情報.フォルダの絶対パス ); } #endregion - int nSumPlayCountN1 = 0, nSumPlayCountN2 = 0; + float nSumPlayCountN1 = 0, nSumPlayCountN2 = 0; if ( n1.arスコア[ nL12345 ] != null ) { - nSumPlayCountN1 = n1.arスコア[ nL12345 ].譜面情報.レベル[ (int) part ]; - //KSM added: If less than 100, multiply by 10 to get 3 digits for proper comparison - if (nSumPlayCountN1 < 100) - { - nSumPlayCountN1 *= 10; - } + nSumPlayCountN1 = ( n1.arスコア[ nL12345 ].譜面情報.レベル[ (int) part ] / 10.0f ) + ( n1.arスコア[ nL12345 ].譜面情報.レベルDec[ (int) part ] / 100.0f ); } if ( n2.arスコア[ nL12345 ] != null ) { - nSumPlayCountN2 = n2.arスコア[ nL12345 ].譜面情報.レベル[ (int) part ]; - //KSM added: Same, if less than 100, multiply by 10 to get 3 digits for proper comparison - if (nSumPlayCountN2 < 100) - { - nSumPlayCountN2 *= 10; - } + nSumPlayCountN2 = ( n2.arスコア[ nL12345 ].譜面情報.レベル[ (int) part ] / 10.0f ) + ( n2.arスコア[ nL12345 ].譜面情報.レベルDec[ (int) part ] / 100.0f ); } num = nSumPlayCountN2 - nSumPlayCountN1; if ( num != 0 ) { - return order * num; + return (int)( (order * num) * 100 ); } return order * n1.strタイトル.CompareTo( n2.strタイトル ); } ); - //KSM: Comment redundant code. - //foreach (C曲リストノード c曲リストノード in ノードリスト) - //{ - // int nSumPlayCountN1 = 0; - // if (c曲リストノード.arスコア[nL12345] != null) - // { - // nSumPlayCountN1 = c曲リストノード.arスコア[nL12345].譜面情報.レベル[(int)part]; - // } - // // Debug.WriteLine( nSumPlayCountN1 + ":" + c曲リストノード.strタイトル ); - //} + foreach ( C曲リストノード c曲リストノード in ノードリスト ) + { + int nSumPlayCountN1 = 0; + if ( c曲リストノード.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN1 = c曲リストノード.arスコア[ nL12345 ].譜面情報.レベル[ (int) part ] + c曲リストノード.arスコア[ nL12345 ].譜面情報.レベルDec[ (int) part ]; + } +// Debug.WriteLine( nSumPlayCountN1 + ":" + c曲リストノード.strタイトル ); + } } } public void t曲リストのソート5_BestRank順( List ノードリスト, E楽器パート part, int order, params object[] p ) @@ -1724,7 +1715,7 @@ ini.stセクション[ n ].n最大コンボ数 #endregion score.譜面情報.最大スキル[ n楽器番号 ] = ini.stセクション[ n ].db演奏型スキル値; score.譜面情報.最大曲別スキル[ n楽器番号 ] = ini.stセクション[ n ].dbゲーム型スキル値; - score.譜面情報.フルコンボ[ n楽器番号 ] = ini.stセクション[ n ].bフルコンボである; + score.譜面情報.フルコンボ[ n楽器番号 ] = ini.stセクション[ n ].bフルコンボである | ini.stセクション[ n楽器番号 * 2 ].bフルコンボである; } score.譜面情報.演奏回数.Drums = ini.stファイル.PlayCountDrums; score.譜面情報.演奏回数.Guitar = ini.stファイル.PlayCountGuitar; @@ -1778,7 +1769,7 @@ private int t比較0_共通( C曲リストノード n1, C曲リストノード n } /// - /// 検索を中断・スローダウンする + /// 検索を中断_スローダウンする /// private void SlowOrSuspendSearchTask() { diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/02.\343\202\277\343\202\244\343\203\210\343\203\253/CStage\343\202\277\343\202\244\343\203\210\343\203\253.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/02.\343\202\277\343\202\244\343\203\210\343\203\253/CStage\343\202\277\343\202\244\343\203\210\343\203\253.cs" index b69b60ec..892a8c4e 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/02.\343\202\277\343\202\244\343\203\210\343\203\253/CStage\343\202\277\343\202\244\343\203\210\343\203\253.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/02.\343\202\277\343\202\244\343\203\210\343\203\253/CStage\343\202\277\343\202\244\343\203\210\343\203\253.cs" @@ -11,6 +11,7 @@ namespace DTXMania { internal class CStageタイトル : CStage { + public static readonly string VERSION_DISPLAY = "DTX:J:A:A:2020072800"; // コンストラクタ public CStageタイトル() @@ -184,6 +185,8 @@ public override int On進行描画() if( this.tx背景 != null ) this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 ); + CDTXMania.act文字コンソール.tPrint( 2, 2, C文字コンソール.Eフォント種別.白, VERSION_DISPLAY); + if( this.txメニュー != null ) { int x = MENU_X; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/03.\343\202\252\343\203\227\343\202\267\343\203\247\343\203\263/CStage\343\202\252\343\203\227\343\202\267\343\203\247\343\203\263.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/03.\343\202\252\343\203\227\343\202\267\343\203\247\343\203\263/CStage\343\202\252\343\203\227\343\202\267\343\203\247\343\203\263.cs" index 007e62de..3cc72847 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/03.\343\202\252\343\203\227\343\202\267\343\203\247\343\203\263/CStage\343\202\252\343\203\227\343\202\267\343\203\247\343\203\263.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/03.\343\202\252\343\203\227\343\202\267\343\203\247\343\203\263/CStage\343\202\252\343\203\227\343\202\267\343\203\247\343\203\263.cs" @@ -236,7 +236,7 @@ public override int On進行描画() //this.actオプションパネル.On進行描画(); //--------------------- #endregion - #region [ フェードイン・アウト ] + #region [ フェードイン_アウト ] //--------------------- switch( base.eフェーズID ) { @@ -441,35 +441,35 @@ private void tカーソルを下へ移動する() switch( this.n現在のメニュー番号 ) { case 0: - this.actList.t項目リストの設定・System(); + this.actList.t項目リストの設定_System(); break; //case 1: - // this.actList.t項目リストの設定・KeyAssignDrums(); + // this.actList.t項目リストの設定_KeyAssignDrums(); // break; //case 2: - // this.actList.t項目リストの設定・KeyAssignGuitar(); + // this.actList.t項目リストの設定_KeyAssignGuitar(); // break; //case 3: - // this.actList.t項目リストの設定・KeyAssignBass(); + // this.actList.t項目リストの設定_KeyAssignBass(); // break; case 1: - this.actList.t項目リストの設定・Drums(); + this.actList.t項目リストの設定_Drums(); break; case 2: - this.actList.t項目リストの設定・Guitar(); + this.actList.t項目リストの設定_Guitar(); break; case 3: - this.actList.t項目リストの設定・Bass(); + this.actList.t項目リストの設定_Bass(); break; case 4: - this.actList.t項目リストの設定・Exit(); + this.actList.t項目リストの設定_Exit(); break; } this.t説明文パネルに現在選択されているメニューの説明を描画する(); @@ -497,34 +497,34 @@ private void tカーソルを上へ移動する() switch( this.n現在のメニュー番号 ) { case 0: - this.actList.t項目リストの設定・System(); + this.actList.t項目リストの設定_System(); break; //case 1: - // this.actList.t項目リストの設定・KeyAssignDrums(); + // this.actList.t項目リストの設定_KeyAssignDrums(); // break; //case 2: - // this.actList.t項目リストの設定・KeyAssignGuitar(); + // this.actList.t項目リストの設定_KeyAssignGuitar(); // break; //case 3: - // this.actList.t項目リストの設定・KeyAssignBass(); + // this.actList.t項目リストの設定_KeyAssignBass(); // break; case 1: - this.actList.t項目リストの設定・Drums(); + this.actList.t項目リストの設定_Drums(); break; case 2: - this.actList.t項目リストの設定・Guitar(); + this.actList.t項目リストの設定_Guitar(); break; case 3: - this.actList.t項目リストの設定・Bass(); + this.actList.t項目リストの設定_Bass(); break; case 4: - this.actList.t項目リストの設定・Exit(); + this.actList.t項目リストの設定_Exit(); break; } this.t説明文パネルに現在選択されているメニューの説明を描画する(); diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CActConfigKeyAssign.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CActConfigKeyAssign.cs" index 500cd68e..fa0cec64 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CActConfigKeyAssign.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CActConfigKeyAssign.cs" @@ -121,7 +121,7 @@ public override int On進行描画() this.bキー入力待ち = false; CDTXMania.Input管理.tポーリング( CDTXMania.app.bApplicationActive, false ); } - else if( ( this.tキーチェックとアサイン・Keyboard() || this.tキーチェックとアサイン・MidiIn() ) || ( this.tキーチェックとアサイン・Joypad() || this.tキーチェックとアサイン・Mouse() ) ) + else if( ( this.tキーチェックとアサイン_Keyboard() || this.tキーチェックとアサイン_MidiIn() ) || ( this.tキーチェックとアサイン_Joypad() || this.tキーチェックとアサイン_Mouse() ) ) { this.bキー入力待ち = false; CDTXMania.Input管理.tポーリング( CDTXMania.app.bApplicationActive, false ); @@ -160,19 +160,19 @@ public override int On進行描画() switch( stkeyassignArray[ i ].入力デバイス ) { case E入力デバイス.キーボード: - this.tアサインコードの描画・Keyboard( i + 1, x + 20, y, stkeyassignArray[ i ].ID, stkeyassignArray[ i ].コード, this.n現在の選択行 == i ); + this.tアサインコードの描画_Keyboard( i + 1, x + 20, y, stkeyassignArray[ i ].ID, stkeyassignArray[ i ].コード, this.n現在の選択行 == i ); break; case E入力デバイス.MIDI入力: - this.tアサインコードの描画・MidiIn( i + 1, x + 20, y, stkeyassignArray[ i ].ID, stkeyassignArray[ i ].コード, this.n現在の選択行 == i ); + this.tアサインコードの描画_MidiIn( i + 1, x + 20, y, stkeyassignArray[ i ].ID, stkeyassignArray[ i ].コード, this.n現在の選択行 == i ); break; case E入力デバイス.ジョイパッド: - this.tアサインコードの描画・Joypad( i + 1, x + 20, y, stkeyassignArray[ i ].ID, stkeyassignArray[ i ].コード, this.n現在の選択行 == i ); + this.tアサインコードの描画_Joypad( i + 1, x + 20, y, stkeyassignArray[ i ].ID, stkeyassignArray[ i ].コード, this.n現在の選択行 == i ); break; case E入力デバイス.マウス: - this.tアサインコードの描画・Mouse( i + 1, x + 20, y, stkeyassignArray[ i ].ID, stkeyassignArray[ i ].コード, this.n現在の選択行 == i ); + this.tアサインコードの描画_Mouse( i + 1, x + 20, y, stkeyassignArray[ i ].ID, stkeyassignArray[ i ].コード, this.n現在の選択行 == i ); break; default: @@ -353,7 +353,7 @@ public STKEYLABEL( int nCode, string strLabel ) private CTexture txHitKeyダイアログ; private CTexture txカーソル; - private void tアサインコードの描画・Joypad( int line, int x, int y, int nID, int nCode, bool b強調 ) + private void tアサインコードの描画_Joypad( int line, int x, int y, int nID, int nCode, bool b強調 ) { string str = ""; switch( nCode ) @@ -399,7 +399,7 @@ public STKEYLABEL( int nCode, string strLabel ) } CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, string.Format( "{0,2}. Joypad #{1} ", line, nID ) + str, b強調, 0.75f ); } - private void tアサインコードの描画・Keyboard( int line, int x, int y, int nID, int nCode, bool b強調 ) + private void tアサインコードの描画_Keyboard( int line, int x, int y, int nID, int nCode, bool b強調 ) { string str = null; foreach( STKEYLABEL stkeylabel in this.KeyLabel ) @@ -416,15 +416,15 @@ public STKEYLABEL( int nCode, string strLabel ) } CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, str, b強調, 0.75f ); } - private void tアサインコードの描画・MidiIn( int line, int x, int y, int nID, int nCode, bool b強調 ) + private void tアサインコードの描画_MidiIn( int line, int x, int y, int nID, int nCode, bool b強調 ) { CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, string.Format( "{0,2}. MidiIn #{1} code.{2}", line, nID, nCode ), b強調, 0.75f ); } - private void tアサインコードの描画・Mouse( int line, int x, int y, int nID, int nCode, bool b強調 ) + private void tアサインコードの描画_Mouse( int line, int x, int y, int nID, int nCode, bool b強調 ) { CDTXMania.stageコンフィグ.actFont.t文字列描画( x, y, string.Format( "{0,2}. Mouse Button{1}", line, nCode ), b強調, 0.75f ); } - private bool tキーチェックとアサイン・Joypad() + private bool tキーチェックとアサイン_Joypad() { foreach( IInputDevice device in CDTXMania.Input管理.list入力デバイス ) { @@ -446,7 +446,7 @@ public STKEYLABEL( int nCode, string strLabel ) } return false; } - private bool tキーチェックとアサイン・Keyboard() + private bool tキーチェックとアサイン_Keyboard() { for( int i = 0; i < 0x100; i++ ) { @@ -468,7 +468,7 @@ public STKEYLABEL( int nCode, string strLabel ) } return false; } - private bool tキーチェックとアサイン・MidiIn() + private bool tキーチェックとアサイン_MidiIn() { foreach( IInputDevice device in CDTXMania.Input管理.list入力デバイス ) { @@ -490,7 +490,7 @@ public STKEYLABEL( int nCode, string strLabel ) } return false; } - private bool tキーチェックとアサイン・Mouse() + private bool tキーチェックとアサイン_Mouse() { for( int i = 0; i < 8; i++ ) { diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CActConfigList.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CActConfigList.cs" index 15e81601..386a0733 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CActConfigList.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CActConfigList.cs" @@ -63,8 +63,8 @@ public CItemBase ib現在の選択項目 // メソッド - #region [ t項目リストの設定・System() ] - public void t項目リストの設定・System() + #region [ t項目リストの設定_System() ] + public void t項目リストの設定_System() { this.tConfigIniへ記録する(); this.list項目リスト.Clear(); @@ -281,12 +281,12 @@ public CItemBase ib現在の選択項目 this.iSystemStoicMode = new CItemToggle("StoicMode", CDTXMania.ConfigIni.bストイックモード, "ストイック(禁欲)モード:\n" + "以下をまとめて表示ON/OFFします。\n" + - "・プレビュー画像/動画\n" + - "・リザルト画像/動画\n" + - "・NowLoading画像\n" + - "・演奏画面の背景画像\n" + - "・BGA 画像 / AVI 動画\n" + - "・グラフ画像\n", + "_プレビュー画像/動画\n" + + "_リザルト画像/動画\n" + + "_NowLoading画像\n" + + "_演奏画面の背景画像\n" + + "_BGA 画像 / AVI 動画\n" + + "_グラフ画像\n", "Turn ON to disable drawing\n * preview image / movie\n * result image / movie\n * nowloading image\n * wallpaper (in playing screen)\n * BGA / AVI (in playing screen)"); this.list項目リスト.Add(this.iSystemStoicMode); */ @@ -310,6 +310,12 @@ public CItemBase ib現在の選択項目 new string[] { "OFF", "ON", "GREAT-" }); this.list項目リスト.Add(this.iSystemShowLag); + this.iSystemShowLagColor = new CItemList("ShowLagTimeColor", CItemBase.Eパネル種別.通常, CDTXMania.ConfigIni.nShowLagTypeColor, + "ズレ時間表示の表示色変更:\n TYPE-A: 早ズレを赤、遅ズレを青で表示します。\n TYPE-B: 早ズレを青、遅ズレを赤で表示します。", + "ズレ時間表示の表示色変更:\n TYPE-A: 早ズレを赤、遅ズレを青で表示します。\n TYPE-B: 早ズレを青、遅ズレを赤で表示します。", + new string[] { "TYPE-A", "TYPE-B" } ); + this.list項目リスト.Add( this.iSystemShowLagColor ); + this.iSystemAutoResultCapture = new CItemToggle("AutoSaveResult", CDTXMania.ConfigIni.bIsAutoResultCapture, "ONにすると、NewRecord時に\n"+ "自動でリザルト画像を\n"+ @@ -444,13 +450,6 @@ public CItemBase ib現在の選択項目 #endregion - // #24074 2011.01.23 add ikanick - this.iSystemGraph = new CItemToggle("SkillMeter", CDTXMania.ConfigIni.bGraph有効, - "最高スキルと比較できるグラフを表示します。\n" + - "オートプレイだと表示されません。", - "To draw Graph or not."); - this.list項目リスト.Add(this.iSystemGraph); - this.iSystemSkinSubfolder = new CItemList("Skin (General)", CItemBase.Eパネル種別.通常, nSkinIndex, "スキン切替:スキンを切り替えます。\n" + "\n", @@ -481,6 +480,15 @@ public CItemBase ib現在の選択項目 new string[] { "Type-A", "Type-B" }); this.list項目リスト.Add(this.iInfoType); + // #36372 2016.06.19 kairera0467 + this.iSystemBGMAdjust = new CItemInteger( "BGMAdjust", -99, 99, CDTXMania.ConfigIni.nCommonBGMAdjustMs, + "BGMの再生タイミングの微調整を行います。\n" + + "-99 ~ 99ms まで指定可能です。\n" + + "値を指定してください。\n", + "To adjust the BGM play timing.\n" + + "You can set from -99 to 0ms.\n" ); + this.list項目リスト.Add( this.iSystemBGMAdjust ); + this.iSystemGoToKeyAssign = new CItemBase("System Keys", CItemBase.Eパネル種別.通常, "システムのキー入力に関する項目を設定します。", "Settings for the system key/pad inputs."); @@ -491,8 +499,8 @@ public CItemBase ib現在の選択項目 this.eメニュー種別 = Eメニュー種別.System; } #endregion - #region [ t項目リストの設定・Drums() ] - public void t項目リストの設定・Drums() + #region [ t項目リストの設定_Drums() ] + public void t項目リストの設定_Drums() { this.tConfigIniへ記録する(); this.list項目リスト.Clear(); @@ -774,7 +782,7 @@ public CItemBase ib現在の選択項目 this.iSystemCymbalFree = new CItemToggle("CymbalFree", CDTXMania.ConfigIni.bシンバルフリー, "シンバルフリーモード:\n" + - "左シンバル・右シンバルの区別をなく\n" + + "左シンバル_右シンバルの区別をなく\n" + "します。ライドシンバルまで区別をな\n" + "くすか否かは、CYGroup に従います。\n", "Turn ON to group LC (left cymbal) and\n" + @@ -841,9 +849,9 @@ public CItemBase ib現在の選択項目 this.iSystemFillIn = new CItemToggle("FillIn", CDTXMania.ConfigIni.bフィルイン有効, "フィルインエフェクトの使用:\n" + - "フィルイン区間の爆発パターンに特別\n" + + "フィルイン区間の爆発パターンに特別" + "のエフェクトを使用します。\n" + - "フィルインエフェクトの描画にはそれな\n" + + "フィルインエフェクトの描画にはそれな" + "りのマシンパワーが必要とされます。", "To show bursting effects at the fill-in\n" + " zone or not."); @@ -882,17 +890,7 @@ public CItemBase ib現在の選択項目 " for the drums.\n" + "You can specify from 1 to 99999."); this.list項目リスト.Add(this.iSystemMinComboDrums); - - // #23580 2011.1.3 yyagi - this.iDrumsInputAdjustTimeMs = new CItemInteger("InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums, - "ドラムの入力タイミングの微調整を行います。\n" + - "-99 ~ 99ms まで指定可能です。\n" + - "値を指定してください。\n", - "To adjust the drums input timing.\n" + - "You can set from -99 to 0ms.\n" + - "To decrease input lag, set minus value."); - this.list項目リスト.Add(this.iDrumsInputAdjustTimeMs); - + this.iDrumsHHOGraphics = new CItemList("HHOGraphics", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eHHOGraphics.Drums, "オープンハイハットの表示画像を変更します。\n" + "A: DTXMania元仕様\n" + @@ -1025,6 +1023,22 @@ public CItemBase ib現在の選択項目 new string[] { "OFF", "Mirror", "Part", "Super", "Hyper", "Master", "Another" }); this.list項目リスト.Add(this.iDrumsRandomPedal); + this.iDrumsGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph有効.Drums, + "最高スキルと比較できるグラフを表示します。\n" + + "オートプレイだと表示されません。", + "To draw Graph or not." ); + this.list項目リスト.Add( this.iDrumsGraph ); + + // #23580 2011.1.3 yyagi + this.iDrumsInputAdjustTimeMs = new CItemInteger("InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums, + "ドラムの入力タイミングの微調整を行います。\n" + + "-99 ~ 99ms まで指定可能です。\n" + + "値を指定してください。\n", + "To adjust the drums input timing.\n" + + "You can set from -99 to 0ms.\n" + + "To decrease input lag, set minus value."); + this.list項目リスト.Add(this.iDrumsInputAdjustTimeMs); + this.iDrumsGoToKeyAssign = new CItemBase("Drums Keys", CItemBase.Eパネル種別.通常, "ドラムのキー入力に関する項目を設定します。", "Settings for the drums key/pad inputs."); @@ -1035,8 +1049,8 @@ public CItemBase ib現在の選択項目 this.eメニュー種別 = Eメニュー種別.Drums; } #endregion - #region [ t項目リストの設定・Guitar() ] - public void t項目リストの設定・Guitar() + #region [ t項目リストの設定_Guitar() ] + public void t項目リストの設定_Guitar() { this.tConfigIniへ記録する(); this.list項目リスト.Clear(); @@ -1173,7 +1187,7 @@ public CItemBase ib現在の選択項目 this.list項目リスト.Add(this.iGuitarLight); this.iGuitarRandom = new CItemList("Random", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eRandom.Guitar, - "ギターのチップがランダムに降ってきます。\n Mirror: ミラーをかけます\n Part: 小節・レーン単位で交換\n Super: チップ単位で交換\n Hyper: 全部完全に変更", + "ギターのチップがランダムに降ってきます。\n Mirror: ミラーをかけます\n Part: 小節_レーン単位で交換\n Super: チップ単位で交換\n Hyper: 全部完全に変更", "Guitar chips come randomly.\n Mirror: \n Part: swapping lanes randomly for each\n measures.\n Super: swapping chip randomly\n Hyper: swapping randomly\n (number of lanes also changes)", new string[] { "OFF", "Mirror", "Part", "Super", "Hyper" }); this.list項目リスト.Add(this.iGuitarRandom); @@ -1222,6 +1236,14 @@ public CItemBase ib現在の選択項目 "Initial number to show the combo\n for the guitar.\nYou can specify from 1 to 99999."); this.list項目リスト.Add(this.iSystemMinComboGuitar); + this.iGuitarGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph有効.Guitar, + "最高スキルと比較できるグラフを表示します。\n" + + "オートプレイだと表示されません。\n" + + "この項目を有効にすると、ベースパートのグラフは\n" + + "無効になります。", + "To draw Graph or not." ); + this.list項目リスト.Add( this.iGuitarGraph ); + // #23580 2011.1.3 yyagi this.iGuitarInputAdjustTimeMs = new CItemInteger("InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar, "ギターの入力タイミングの微調整を行います。\n-99 ~ 99ms まで指定可能です。\n入力ラグを軽減するためには、\n負の値を指定してください。", @@ -1238,8 +1260,8 @@ public CItemBase ib現在の選択項目 this.eメニュー種別 = Eメニュー種別.Guitar; } #endregion - #region [ t項目リストの設定・Bass() ] - public void t項目リストの設定・Bass() + #region [ t項目リストの設定_Bass() ] + public void t項目リストの設定_Bass() { this.tConfigIniへ記録する(); this.list項目リスト.Clear(); @@ -1368,7 +1390,7 @@ public CItemBase ib現在の選択項目 this.iBassRandom = new CItemList("Random", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eRandom.Bass, - "ベースのチップがランダムに降ってきます。\n Mirror: ミラーをかけます\n Part: 小節・レーン単位で交換\n Super: チップ単位で交換\n Hyper: 全部完全に変更", + "ベースのチップがランダムに降ってきます。\n Mirror: ミラーをかけます\n Part: 小節_レーン単位で交換\n Super: チップ単位で交換\n Hyper: 全部完全に変更", "Bass chips come randomly.\n Mirror: \n Part: swapping lanes randomly for each\n measures.\n Super: swapping chip randomly\n Hyper: swapping randomly\n (number of lanes also changes)", new string[] { "OFF", "Mirror", "Part", "Super", "Hyper" }); this.list項目リスト.Add(this.iBassRandom); @@ -1416,6 +1438,14 @@ public CItemBase ib現在の選択項目 ""); this.list項目リスト.Add(this.iBassShutterOutPos); + this.iBassGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph有効.Bass, + "最高スキルと比較できるグラフを表示します。\n" + + "オートプレイだと表示されません。\n" + + "この項目を有効にすると、ギターパートのグラフは\n" + + "無効になります。", + "To draw Graph or not." ); + this.list項目リスト.Add( this.iBassGraph ); + // #23580 2011.1.3 yyagi this.iBassInputAdjustTimeMs = new CItemInteger("InputAdjust", -99, 99, CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass, "ベースの入力タイミングの微調整を行います。\n-99 ~ 99ms まで指定可能です。\n入力ラグを軽減するためには、\n負の値を指定してください。", @@ -1440,19 +1470,19 @@ public void tEsc押下() { if (this.eメニュー種別 == Eメニュー種別.KeyAssignSystem) { - t項目リストの設定・System(); + t項目リストの設定_System(); } else if (this.eメニュー種別 == Eメニュー種別.KeyAssignDrums) { - t項目リストの設定・Drums(); + t項目リストの設定_Drums(); } else if (this.eメニュー種別 == Eメニュー種別.KeyAssignGuitar) { - t項目リストの設定・Guitar(); + t項目リストの設定_Guitar(); } else if (this.eメニュー種別 == Eメニュー種別.KeyAssignBass) { - t項目リストの設定・Bass(); + t項目リストの設定_Bass(); } // これ以外なら何もしない } @@ -1609,7 +1639,7 @@ public void tEnter押下() this.list項目リスト[this.n現在の選択項目].tEnter押下(); if (this.list項目リスト[this.n現在の選択項目] == this.iSystemFullscreen) { - CDTXMania.app.b次のタイミングで全画面・ウィンドウ切り替えを行う = true; + CDTXMania.app.b次のタイミングで全画面_ウィンドウ切り替えを行う = true; } else if (this.list項目リスト[this.n現在の選択項目] == this.iSystemVSyncWait) { @@ -1633,35 +1663,35 @@ public void tEnter押下() #region [ キーアサインへの遷移と脱出 ] else if (this.list項目リスト[this.n現在の選択項目] == this.iSystemGoToKeyAssign) // #24609 2011.4.12 yyagi { - t項目リストの設定・KeyAssignSystem(); + t項目リストの設定_KeyAssignSystem(); } else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignSystemReturnToMenu) // #24609 2011.4.12 yyagi { - t項目リストの設定・System(); + t項目リストの設定_System(); } else if (this.list項目リスト[this.n現在の選択項目] == this.iDrumsGoToKeyAssign) // #24525 2011.3.15 yyagi { - t項目リストの設定・KeyAssignDrums(); + t項目リストの設定_KeyAssignDrums(); } else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignDrumsReturnToMenu) // #24525 2011.3.15 yyagi { - t項目リストの設定・Drums(); + t項目リストの設定_Drums(); } else if (this.list項目リスト[this.n現在の選択項目] == this.iGuitarGoToKeyAssign) // #24525 2011.3.15 yyagi { - t項目リストの設定・KeyAssignGuitar(); + t項目リストの設定_KeyAssignGuitar(); } else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignGuitarReturnToMenu) // #24525 2011.3.15 yyagi { - t項目リストの設定・Guitar(); + t項目リストの設定_Guitar(); } else if (this.list項目リスト[this.n現在の選択項目] == this.iBassGoToKeyAssign) // #24525 2011.3.15 yyagi { - t項目リストの設定・KeyAssignBass(); + t項目リストの設定_KeyAssignBass(); } else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignBassReturnToMenu) // #24525 2011.3.15 yyagi { - t項目リストの設定・Bass(); + t項目リストの設定_Bass(); } #endregion #region [ ダーク ] @@ -1729,6 +1759,24 @@ public void tEnter押下() } } #endregion + #region[ ギター_ベースグラフ ] + else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iGuitarGraph ) + { + if( this.iGuitarGraph.bON == true ) + { + CDTXMania.ConfigIni.bGraph有効.Bass = false; + this.iBassGraph.bON = false; + } + } + else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iBassGraph ) + { + if( this.iBassGraph.bON == true ) + { + CDTXMania.ConfigIni.bGraph有効.Guitar = false; + this.iGuitarGraph.bON = false; + } + } + #endregion else if (this.list項目リスト[this.n現在の選択項目] == this.iSystemUseBoxDefSkin) // #28195 2012.5.6 yyagi { CSkin.bUseBoxDefSkin = this.iSystemUseBoxDefSkin.bON; @@ -1784,12 +1832,12 @@ private void tGenerateSkinSample() } #region [ 項目リストの設定 ( Exit, KeyAssignSystem/Drums/Guitar/Bass) ] - public void t項目リストの設定・Exit() + public void t項目リストの設定_Exit() { this.tConfigIniへ記録する(); this.eメニュー種別 = Eメニュー種別.Unknown; } - public void t項目リストの設定・KeyAssignSystem() + public void t項目リストの設定_KeyAssignSystem() { //this.tConfigIniへ記録する(); this.list項目リスト.Clear(); @@ -1820,7 +1868,7 @@ private void tGenerateSkinSample() this.n現在の選択項目 = 0; this.eメニュー種別 = Eメニュー種別.KeyAssignSystem; } - public void t項目リストの設定・KeyAssignDrums() + public void t項目リストの設定_KeyAssignDrums() { // this.tConfigIniへ記録する(); this.list項目リスト.Clear(); @@ -1896,7 +1944,7 @@ private void tGenerateSkinSample() this.n現在の選択項目 = 0; this.eメニュー種別 = Eメニュー種別.KeyAssignDrums; } - public void t項目リストの設定・KeyAssignGuitar() + public void t項目リストの設定_KeyAssignGuitar() { // this.tConfigIniへ記録する(); this.list項目リスト.Clear(); @@ -1952,7 +2000,7 @@ private void tGenerateSkinSample() this.n現在の選択項目 = 0; this.eメニュー種別 = Eメニュー種別.KeyAssignGuitar; } - public void t項目リストの設定・KeyAssignBass() + public void t項目リストの設定_KeyAssignBass() { // this.tConfigIniへ記録する(); this.list項目リスト.Clear(); @@ -2019,6 +2067,7 @@ public void t次に移動() else { this.n目標のスクロールカウンタ += 100; + CDTXMania.stageコンフィグ.ct表示待機.n現在の値 = 0; } } public void t前に移動() @@ -2031,6 +2080,7 @@ public void t前に移動() else { this.n目標のスクロールカウンタ -= 100; + CDTXMania.stageコンフィグ.ct表示待機.n現在の値 = 0; } } @@ -2070,10 +2120,10 @@ public override void On活性化() this.prvFont = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str選曲リストフォント ), 15 ); // t項目リストの設定 の前に必要 - this.t項目リストの設定・Bass(); // #27795 2012.3.11 yyagi; System設定の中でDrumsの設定を参照しているため、 - this.t項目リストの設定・Guitar(); // 活性化の時点でDrumsの設定も入れ込んでおかないと、System設定中に例外発生することがある。 - this.t項目リストの設定・Drums(); // - this.t項目リストの設定・System(); // 順番として、最後にSystemを持ってくること。設定一覧の初期位置がSystemのため。 + this.t項目リストの設定_Bass(); // #27795 2012.3.11 yyagi; System設定の中でDrumsの設定を参照しているため、 + this.t項目リストの設定_Guitar(); // 活性化の時点でDrumsの設定も入れ込んでおかないと、System設定中に例外発生することがある。 + this.t項目リストの設定_Drums(); // + this.t項目リストの設定_System(); // 順番として、最後にSystemを持ってくること。設定一覧の初期位置がSystemのため。 this.b要素値にフォーカス中 = false; this.n目標のスクロールカウンタ = 0; this.n現在のスクロールカウンタ = 0; @@ -2456,7 +2506,7 @@ public int t進行描画(bool b項目リスト側にフォーカスがある) //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, list.list項目値[ list.n現在選択されている項目番号 ] ); strParam = list.list項目値[ list.n現在選択されている項目番号 ]; - #region [ 必要な場合に、Skinのサンプルを生成・描画する。#28195 2012.5.2 yyagi ] + #region [ 必要な場合に、Skinのサンプルを生成_描画する。#28195 2012.5.2 yyagi ] if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemSkinSubfolder ) { tGenerateSkinSample(); // 最初にSkinの選択肢にきたとき(Enterを押す前)に限り、サンプル生成が発生する。 @@ -2513,7 +2563,7 @@ public int t進行描画(bool b項目リスト側にフォーカスがある) #endregion #region[ 説明文パネル ] - if( this.b項目リスト側にフォーカスがある && this.n目標のスクロールカウンタ == 0 ) + if( this.b項目リスト側にフォーカスがある && this.n目標のスクロールカウンタ == 0 && CDTXMania.stageコンフィグ.ct表示待機.b終了値に達した ) { this.tx説明文パネル.t2D描画( CDTXMania.app.Device, 601, 252 ); if ( txSkinSample1 != null && this.n目標のスクロールカウンタ == 0 && this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemSkinSubfolder ) @@ -2665,6 +2715,7 @@ private enum Eメニュー種別 private CItemToggle iSystemStoicMode; private CItemToggle iSystemVSyncWait; private CItemList iSystemShowLag; // #25370 2011.6.3 yyagi + private CItemList iSystemShowLagColor; private CItemToggle iSystemAutoResultCapture; // #25399 2011.6.9 yyagi private CItemToggle iSystemBufferedInput; private CItemInteger iSystemRisky; // #23559 2011.7.27 yyagi @@ -2677,7 +2728,7 @@ private enum Eメニュー種別 private CItemList iSystemSkillMode; private CItemToggle iMutingLP; private CItemToggle iSystemClassicNotes; - private CItemToggle iSystemGraph; // #24074 2011.01.23 add ikanick + private CItemInteger iSystemBGMAdjust; // #36372 2016.06.19 kairera0467 #region [ GDオプション ] @@ -2764,6 +2815,7 @@ private struct stMenuItemRight private CItemInteger iBassShutterInPos; private CItemInteger iBassShutterOutPos; private CItemToggle iBassLaneFlush; + private CItemToggle iBassGraph; private CItemInteger iCommonPlaySpeed; // private CItemBase iCommonReturnToMenu; @@ -2806,6 +2858,7 @@ private struct stMenuItemRight private CItemInteger iDrumsShutterInPos; private CItemInteger iDrumsShutterOutPos; private CItemToggle iDrumsComboDisp; + private CItemToggle iDrumsGraph; //private CItemToggle iGuitarAutoPlay; private CItemThreeState iGuitarAutoPlayAll; // #23886 2012.5.8 yyagi @@ -2833,6 +2886,7 @@ private struct stMenuItemRight private CItemInteger iGuitarShutterInPos; private CItemInteger iGuitarShutterOutPos; private CItemToggle iGuitarLaneFlush; + private CItemToggle iGuitarGraph; private CItemInteger iDrumsInputAdjustTimeMs; // #23580 2011.1.3 yyagi private CItemInteger iGuitarInputAdjustTimeMs; // @@ -2874,39 +2928,39 @@ private void tConfigIniへ記録する() switch (this.eメニュー種別) { case Eメニュー種別.System: - this.tConfigIniへ記録する・System(); - this.tConfigIniへ記録する・KeyAssignSystem(); + this.tConfigIniへ記録する_System(); + this.tConfigIniへ記録する_KeyAssignSystem(); return; case Eメニュー種別.Drums: - this.tConfigIniへ記録する・Drums(); - this.tConfigIniへ記録する・KeyAssignDrums(); + this.tConfigIniへ記録する_Drums(); + this.tConfigIniへ記録する_KeyAssignDrums(); return; case Eメニュー種別.Guitar: - this.tConfigIniへ記録する・Guitar(); - this.tConfigIniへ記録する・KeyAssignGuitar(); + this.tConfigIniへ記録する_Guitar(); + this.tConfigIniへ記録する_KeyAssignGuitar(); return; case Eメニュー種別.Bass: - this.tConfigIniへ記録する・Bass(); - this.tConfigIniへ記録する・KeyAssignBass(); + this.tConfigIniへ記録する_Bass(); + this.tConfigIniへ記録する_KeyAssignBass(); return; } } - private void tConfigIniへ記録する・KeyAssignBass() + private void tConfigIniへ記録する_KeyAssignBass() { } - private void tConfigIniへ記録する・KeyAssignDrums() + private void tConfigIniへ記録する_KeyAssignDrums() { } - private void tConfigIniへ記録する・KeyAssignGuitar() + private void tConfigIniへ記録する_KeyAssignGuitar() { } - private void tConfigIniへ記録する・KeyAssignSystem() + private void tConfigIniへ記録する_KeyAssignSystem() { } - private void tConfigIniへ記録する・System() + private void tConfigIniへ記録する_System() { //CDTXMania.ConfigIni.eDark = (Eダークモード) this.iCommonDark.n現在選択されている項目番号; CDTXMania.ConfigIni.n演奏速度 = this.iCommonPlaySpeed.n現在の値; @@ -2926,7 +2980,6 @@ private void tConfigIniへ記録する() CDTXMania.ConfigIni.bAVI有効 = this.iSystemAVI.bON; CDTXMania.ConfigIni.bBGA有効 = this.iSystemBGA.bON; CDTXMania.ConfigIni.bDirectShowMode = this.iSystemDirectShowMode.bON; - CDTXMania.ConfigIni.bGraph有効 = this.iSystemGraph.bON; CDTXMania.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms = this.iSystemPreviewSoundWait.n現在の値; CDTXMania.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms = this.iSystemPreviewImageWait.n現在の値; CDTXMania.ConfigIni.b演奏情報を表示する = this.iSystemDebugInfo.bON; @@ -2945,6 +2998,7 @@ private void tConfigIniへ記録する() CDTXMania.ConfigIni.ボーナス演出を表示する = this.iSystemStageEffect.bON; CDTXMania.ConfigIni.nShowLagType = this.iSystemShowLag.n現在選択されている項目番号; // #25370 2011.6.3 yyagi + CDTXMania.ConfigIni.nShowLagTypeColor = this.iSystemShowLagColor.n現在選択されている項目番号; CDTXMania.ConfigIni.bIsAutoResultCapture = this.iSystemAutoResultCapture.bON; // #25399 2011.6.9 yyagi CDTXMania.ConfigIni.bAutoAddGage = this.iAutoAddGage.bON; CDTXMania.ConfigIni.nInfoType = this.iInfoType.n現在選択されている項目番号; @@ -2970,7 +3024,7 @@ private void tConfigIniへ記録する() CDTXMania.ConfigIni.nASIODevice = this.iSystemASIODevice.n現在選択されている項目番号; // #24820 2013.1.17 yyagi CDTXMania.ConfigIni.bTimeStretch = this.iSystemTimeStretch.bON; // #23664 2013.2.24 yyagi CDTXMania.ConfigIni.b曲名表示をdefのものにする = this.iSystemMusicNameDispDef.bON; - + CDTXMania.ConfigIni.nCommonBGMAdjustMs = this.iSystemBGMAdjust.n現在の値; // #36372 2016.06.19 kairera0467 //Trace.TraceInformation( "saved" ); //Trace.TraceInformation( "Skin現在Current : " + CDTXMania.Skin.GetCurrentSkinSubfolderFullName(true) ); @@ -2978,7 +3032,7 @@ private void tConfigIniへ記録する() //Trace.TraceInformation( "Skin現在BoxDef : " + CSkin.strBoxDefSkinSubfolderFullName ); } - private void tConfigIniへ記録する・Bass() + private void tConfigIniへ記録する_Bass() { //CDTXMania.ConfigIni.bAutoPlay.Bass = this.iBassAutoPlay.bON; CDTXMania.ConfigIni.bAutoPlay.BsR = this.iBassR.bON; @@ -3007,8 +3061,9 @@ private void tConfigIniへ記録する() CDTXMania.ConfigIni.b演奏音を強調する.Bass = this.iSystemSoundMonitorBass.bON; CDTXMania.ConfigIni.n表示可能な最小コンボ数.Bass = this.iSystemMinComboBass.n現在の値; + CDTXMania.ConfigIni.bGraph有効.Bass = this.iBassGraph.bON; } - private void tConfigIniへ記録する・Drums() + private void tConfigIniへ記録する_Drums() { CDTXMania.ConfigIni.bAutoPlay.LC = this.iDrumsLeftCymbal.bON; CDTXMania.ConfigIni.bAutoPlay.HH = this.iDrumsHiHat.bON; @@ -3063,10 +3118,11 @@ private void tConfigIniへ記録する() CDTXMania.ConfigIni.nShutterInSide.Drums = this.iDrumsShutterInPos.n現在の値; CDTXMania.ConfigIni.nShutterOutSide.Drums = this.iDrumsShutterOutPos.n現在の値; CDTXMania.ConfigIni.bドラムコンボ文字の表示 = this.iDrumsComboDisp.bON; + CDTXMania.ConfigIni.bGraph有効.Drums = this.iDrumsGraph.bON; //CDTXMania.ConfigIni.eDark = (Eダークモード) this.iCommonDark.n現在選択されている項目番号; // ダークはプリセット切り替えとして使うため、保存はしない。 } - private void tConfigIniへ記録する・Guitar() + private void tConfigIniへ記録する_Guitar() { //CDTXMania.ConfigIni.bAutoPlay.Guitar = this.iGuitarAutoPlay.bON; CDTXMania.ConfigIni.bAutoPlay.GtR = this.iGuitarR.bON; @@ -3095,6 +3151,7 @@ private void tConfigIniへ記録する() CDTXMania.ConfigIni.n表示可能な最小コンボ数.Guitar = this.iSystemMinComboGuitar.n現在の値; CDTXMania.ConfigIni.b演奏音を強調する.Guitar = this.iSystemSoundMonitorGuitar.bON; + CDTXMania.ConfigIni.bGraph有効.Guitar = this.iGuitarGraph.bON; } //----------------- #endregion diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CStage\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CStage\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260.cs" index 64af01c7..919f7523 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CStage\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CStage\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260.cs" @@ -66,6 +66,7 @@ public override void On活性化() } // this.bメニューにフォーカス中 = true; // ここまでOPTIONと共通 this.eItemPanelモード = EItemPanelモード.パッド一覧; + this.ct表示待機 = new CCounter( 0, 350, 1, CDTXMania.Timer ); } finally { @@ -90,6 +91,7 @@ public override void On非活性化() { this.ctキー反復用[i] = null; } + this.ct表示待機 = null; base.On非活性化(); } catch (UnauthorizedAccessException e) @@ -117,7 +119,7 @@ public override void OnManagedリソースの作成() // OPTIONと画 this.txMenuパネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\4_menu panel.png" ) ); this.txItemBar = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\4_item bar.png" ) ); - prvFont = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str選曲リストフォント ), 18 ); + this.prvFont = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str選曲リストフォント ), 18 ); string[] strMenuItem = { "System", "Drums", "Guitar", "Bass", "Exit" }; txMenuItemLeft = new CTexture[ strMenuItem.Length, 2 ]; for ( int i = 0; i < strMenuItem.Length; i++ ) @@ -176,6 +178,7 @@ public override int On進行描画() this.actFIFO.tフェードイン開始(); base.b初めての進行描画 = false; } + this.ct表示待機.t進行(); // 描画 @@ -252,7 +255,7 @@ public override int On進行描画() #endregion #region [ 説明文パネル ] //--------------------- - if( this.tx説明文パネル != null && !this.bメニューにフォーカス中 && this.actList.n目標のスクロールカウンタ == 0 ) + if( this.tx説明文パネル != null && !this.bメニューにフォーカス中 && this.actList.n目標のスクロールカウンタ == 0 && this.ct表示待機.b終了値に達した ) this.tx説明文パネル.t2D描画(CDTXMania.app.Device, 620, 270); //--------------------- #endregion @@ -273,7 +276,7 @@ public override int On進行描画() //this.actオプションパネル.On進行描画(); //--------------------- #endregion - #region [ フェードイン・アウト ] + #region [ フェードイン_アウト ] //--------------------- switch (base.eフェーズID) { @@ -298,7 +301,6 @@ public override int On進行描画() #region [ Enumerating Songs ] // CActEnumSongs側で表示する #endregion - // キー入力 if ((base.eフェーズID != CStage.Eフェーズ.共通_通常状態) @@ -468,6 +470,7 @@ public CCounter this[int index] private CTexture txItemBar; private CPrivateFastFont prvFont; private CTexture[,] txMenuItemLeft; + public CCounter ct表示待機; private void tカーソルを下へ移動する() { @@ -487,39 +490,40 @@ private void tカーソルを下へ移動する() else { CDTXMania.Skin.soundカーソル移動音.t再生する(); + this.ct表示待機.n現在の値 = 0; this.n現在のメニュー番号 = (this.n現在のメニュー番号 + 1) % 5; switch (this.n現在のメニュー番号) { case 0: - this.actList.t項目リストの設定・System(); + this.actList.t項目リストの設定_System(); break; //case 1: - // this.actList.t項目リストの設定・KeyAssignDrums(); + // this.actList.t項目リストの設定_KeyAssignDrums(); // break; //case 2: - // this.actList.t項目リストの設定・KeyAssignGuitar(); + // this.actList.t項目リストの設定_KeyAssignGuitar(); // break; //case 3: - // this.actList.t項目リストの設定・KeyAssignBass(); + // this.actList.t項目リストの設定_KeyAssignBass(); // break; case 1: - this.actList.t項目リストの設定・Drums(); + this.actList.t項目リストの設定_Drums(); break; case 2: - this.actList.t項目リストの設定・Guitar(); + this.actList.t項目リストの設定_Guitar(); break; case 3: - this.actList.t項目リストの設定・Bass(); + this.actList.t項目リストの設定_Bass(); break; case 4: - this.actList.t項目リストの設定・Exit(); + this.actList.t項目リストの設定_Exit(); break; } this.t説明文パネルに現在選択されているメニューの説明を描画する(); @@ -543,38 +547,39 @@ private void tカーソルを上へ移動する() else { CDTXMania.Skin.soundカーソル移動音.t再生する(); + this.ct表示待機.n現在の値 = 0; this.n現在のメニュー番号 = ((this.n現在のメニュー番号 - 1) + 5) % 5; switch (this.n現在のメニュー番号) { case 0: - this.actList.t項目リストの設定・System(); + this.actList.t項目リストの設定_System(); break; //case 1: - // this.actList.t項目リストの設定・KeyAssignDrums(); + // this.actList.t項目リストの設定_KeyAssignDrums(); // break; //case 2: - // this.actList.t項目リストの設定・KeyAssignGuitar(); + // this.actList.t項目リストの設定_KeyAssignGuitar(); // break; //case 3: - // this.actList.t項目リストの設定・KeyAssignBass(); + // this.actList.t項目リストの設定_KeyAssignBass(); // break; case 1: - this.actList.t項目リストの設定・Drums(); + this.actList.t項目リストの設定_Drums(); break; case 2: - this.actList.t項目リストの設定・Guitar(); + this.actList.t項目リストの設定_Guitar(); break; case 3: - this.actList.t項目リストの設定・Bass(); + this.actList.t項目リストの設定_Bass(); break; case 4: - this.actList.t項目リストの設定・Exit(); + this.actList.t項目リストの設定_Exit(); break; } this.t説明文パネルに現在選択されているメニューの説明を描画する(); @@ -671,7 +676,7 @@ private void t説明文パネルに現在選択されている項目の説明を { try { - var image = new Bitmap( (int)(400), (int)(192) ); // 説明文領域サイズの縦横 2 倍。(描画時に 0.5 倍で表示する・・・のは中止。処理速度向上のため。) + var image = new Bitmap( (int)(400), (int)(192) ); // 説明文領域サイズの縦横 2 倍。(描画時に 0.5 倍で表示する___のは中止。処理速度向上のため。) var graphics = Graphics.FromImage( image ); graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectPopupMenu.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectPopupMenu.cs" index 865b4e26..49dfbe29 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectPopupMenu.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectPopupMenu.cs" @@ -238,7 +238,7 @@ public int t進行描画() { if (!base.b活性化してない && this.bIsActivePopupMenu) { - n本体X = 500; + n本体X = 460; //XG選曲画面の中心点はX=646 Y=358 n本体Y = 150; @@ -352,31 +352,31 @@ public int t進行描画() } #endregion #region [ ソートメニュータイトル描画 ] - int x = n本体X + 80, y = n本体Y + 4; + int x = n本体X + 96, y = n本体Y + 4; font.t文字列描画(x, y, strMenuTitle, false, 1.0f); #endregion #region [ カーソル描画 ] - if (this.txCursor != null) - { - int height = 32; - int curX = n本体X + 20; + if ( this.txCursor != null ) + { + int height = 32; + int curX = n本体X + 12; int curY = n本体Y + 6 + (height * (this.n現在の選択行 + 1)); - this.txCursor.t2D描画(CDTXMania.app.Device, curX, curY, new Rectangle(0, 0, 16, 32)); - curX += 0x10; - Rectangle rectangle = new Rectangle(8, 0, 0x10, 0x20); - for (int j = 0; j < 16; j++) - { - this.txCursor.t2D描画(CDTXMania.app.Device, curX, curY, rectangle); - curX += 16; - } - this.txCursor.t2D描画(CDTXMania.app.Device, curX, curY, new Rectangle(0x10, 0, 16, 32)); - } + this.txCursor.t2D描画( CDTXMania.app.Device, curX, curY, new Rectangle( 0, 0, 16, 32 ) ); + curX += 0x10; + Rectangle rectangle = new Rectangle( 8, 0, 0x10, 0x20 ); + for ( int j = 0; j < 19; j++ ) + { + this.txCursor.t2D描画( CDTXMania.app.Device, curX, curY, rectangle ); + curX += 16; + } + this.txCursor.t2D描画( CDTXMania.app.Device, curX, curY, new Rectangle( 0x10, 0, 16, 32 ) ); + } #endregion #region [ ソート候補文字列描画 ] for (int i = 0; i < lciMenuItems.Count; i++) { bool bItemBold = (i == nItemSelecting && !bShowAllItems) ? true : false; - font.t文字列描画(n本体X + 30, n本体Y + 40 + i * 32, lciMenuItems[i].str項目名, bItemBold, 1.0f); + font.t文字列描画(n本体X + 18, n本体Y + 40 + i * 32, lciMenuItems[i].str項目名, bItemBold, 1.0f); bool bValueBold = (bItemBold || (i == nItemSelecting && bIsSelectingIntItem)) ? true : false; if (bItemBold || bShowAllItems) @@ -401,7 +401,7 @@ public int t進行描画() s = lciMenuItems[i].obj現在値().ToString(); break; } - font.t文字列描画(n本体X + 180, n本体Y + 40 + i * 32, s, bValueBold, 1.0f); + font.t文字列描画(n本体X + 200, n本体Y + 40 + i * 32, s, bValueBold, 1.0f); } } #endregion diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectPreimage\343\203\221\343\203\215\343\203\253.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectPreimage\343\203\221\343\203\215\343\203\253.cs" index 8bf6f3f5..ef1b19b6 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectPreimage\343\203\221\343\203\215\343\203\253.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectPreimage\343\203\221\343\203\215\343\203\253.cs" @@ -67,7 +67,7 @@ public override void OnManagedリソースの作成() this.n前回描画したフレーム番号 = -1; this.b動画フレームを作成した = false; this.pAVIBmp = IntPtr.Zero; - this.tプレビュー画像・動画の変更(); + this.tプレビュー画像_動画の変更(); base.OnManagedリソースの作成(); } } @@ -106,7 +106,7 @@ public override int On進行描画() } else if( ( this.ct遅延表示.n現在の値 >= 0 ) && this.b新しいプレビューファイルをまだ読み込んでいない ) { - this.tプレビュー画像・動画の変更(); + this.tプレビュー画像_動画の変更(); CDTXMania.Timer.t更新(); this.ct遅延表示.n現在の経過時間ms = CDTXMania.Timer.n現在時刻; this.b新しいプレビューファイルを読み込んだ = true; @@ -131,15 +131,15 @@ public override int On進行描画() { if( this.b新しいプレビューファイルをまだ読み込んでいない ) { - this.tプレビュー画像・動画の変更(); + this.tプレビュー画像_動画の変更(); CDTXMania.Timer.t更新(); this.ct遅延表示.n現在の経過時間ms = CDTXMania.Timer.n現在時刻; this.b新しいプレビューファイルを読み込んだ = true; } } - this.t描画処理・パネル本体(); -// this.t描画処理・ジャンル文字列(); - this.t描画処理・プレビュー画像(); + this.t描画処理_パネル本体(); +// this.t描画処理_ジャンル文字列(); + this.t描画処理_プレビュー画像(); } return 0; } @@ -211,7 +211,7 @@ private unsafe void tサーフェイスをクリアする( Surface sf ) } sf.UnlockRectangle(); } - private void tプレビュー画像・動画の変更() + private void tプレビュー画像_動画の変更() { if( this.avi != null ) { @@ -371,7 +371,7 @@ private bool t背景画像があればその一部からプレビュー画像を } return true; } - private void t描画処理・ジャンル文字列() + private void t描画処理_ジャンル文字列() { C曲リストノード c曲リストノード = CDTXMania.stage選曲.r現在選択中の曲; Cスコア cスコア = CDTXMania.stage選曲.r現在選択中のスコア; @@ -441,7 +441,7 @@ private bool t背景画像があればその一部からプレビュー画像を CDTXMania.act文字コンソール.tPrint( this.n本体X + 0x12, this.n本体Y - 30, C文字コンソール.Eフォント種別.赤細, str ); } } - private void t描画処理・パネル本体() + private void t描画処理_パネル本体() { int n基X = 0x12; int n基Y = 0x58; @@ -469,7 +469,7 @@ private bool t背景画像があればその一部からプレビュー画像を this.txパネル本体.t2D描画( CDTXMania.app.Device, this.n本体X, this.n本体Y ); } } - private unsafe void t描画処理・プレビュー画像() + private unsafe void t描画処理_プレビュー画像() { if( !CDTXMania.stage選曲.bスクロール中 && ( ( ( this.ct遅延表示 != null ) && ( this.ct遅延表示.n現在の値 > 0 ) ) && !this.b新しいプレビューファイルをまだ読み込んでいない ) ) { diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectPresound.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectPresound.cs" index 20d1c37b..bd5b334c 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectPresound.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectPresound.cs" @@ -64,7 +64,7 @@ public override int On進行描画() if( ( this.ctBGMフェードイン用 != null ) && this.ctBGMフェードイン用.b進行中 ) { this.ctBGMフェードイン用.t進行(); - CDTXMania.Skin.bgm選曲画面.n音量・現在のサウンド = this.ctBGMフェードイン用.n現在の値; + CDTXMania.Skin.bgm選曲画面.n音量_現在のサウンド = this.ctBGMフェードイン用.n現在の値; if( this.ctBGMフェードイン用.b終了値に達した ) { this.ctBGMフェードイン用.t停止(); @@ -73,13 +73,13 @@ public override int On進行描画() if( ( this.ctBGMフェードアウト用 != null ) && this.ctBGMフェードアウト用.b進行中 ) { this.ctBGMフェードアウト用.t進行(); - CDTXMania.Skin.bgm選曲画面.n音量・現在のサウンド = 100 - this.ctBGMフェードアウト用.n現在の値; + CDTXMania.Skin.bgm選曲画面.n音量_現在のサウンド = 100 - this.ctBGMフェードアウト用.n現在の値; if( this.ctBGMフェードアウト用.b終了値に達した ) { this.ctBGMフェードアウト用.t停止(); } } - this.t進行処理・プレビューサウンド(); + this.t進行処理_プレビューサウンド(); } return 0; } @@ -102,7 +102,7 @@ private void tBGMフェードアウト開始() this.ctBGMフェードイン用.t停止(); } this.ctBGMフェードアウト用 = new CCounter( 0, 100, 10, CDTXMania.Timer ); - this.ctBGMフェードアウト用.n現在の値 = 100 - CDTXMania.Skin.bgm選曲画面.n音量・現在のサウンド; + this.ctBGMフェードアウト用.n現在の値 = 100 - CDTXMania.Skin.bgm選曲画面.n音量_現在のサウンド; } private void tBGMフェードイン開始() { @@ -111,7 +111,7 @@ private void tBGMフェードイン開始() this.ctBGMフェードアウト用.t停止(); } this.ctBGMフェードイン用 = new CCounter( 0, 100, 20, CDTXMania.Timer ); - this.ctBGMフェードイン用.n現在の値 = CDTXMania.Skin.bgm選曲画面.n音量・現在のサウンド; + this.ctBGMフェードイン用.n現在の値 = CDTXMania.Skin.bgm選曲画面.n音量_現在のサウンド; } private void tプレビューサウンドの作成() { @@ -139,7 +139,7 @@ private void tプレビューサウンドの作成() } } } - private void t進行処理・プレビューサウンド() + private void t進行処理_プレビューサウンド() { if( ( this.ct再生待ちウェイト != null ) && !this.ct再生待ちウェイト.b停止中 ) { diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectQuickConfig.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectQuickConfig.cs" index a6391c5d..a7efb59a 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectQuickConfig.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectQuickConfig.cs" @@ -57,7 +57,7 @@ private List MakeListCItemBase(int nConfigSet, int nInst) List automode = tConfigureAuto_DefaultSettings(); if (nInst == (int)E楽器パート.DRUMS) { - l.Add(new CItemList("Auto Mode", CItemBase.Eパネル種別.通常, automode[nInst], "", "", new string[] { "All Auto", "Auto LP", "Auto BD", "2Pedal Auto", "XGLaneAuto", "Custom", "OFF" })); + l.Add(new CItemList("Auto Mode", CItemBase.Eパネル種別.通常, automode[nInst], "", "", new string[] { "All Auto", "Auto LP", "Auto BD", "2PedalAuto", "XGLaneAuto", "Custom", "OFF" })); } else { @@ -117,8 +117,20 @@ private List MakeListCItemBase(int nConfigSet, int nInst) new string[] { "OFF", "HIDDEN", "SUDDEN", "HID/SUD", "STEALTH" })); //ドラム、ギター、ベースでのHIDDEN/SUDDENの設定の分離を考えなければならない。 #endregion + #region [ 個別 Ghost ] + l.Add( new CItemList("AUTO Ghost", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eAutoGhost[ nInst ], + "AUTOプレーのゴーストを指定します。\n", + "Specify Play Ghost data.\n", + new string[] {"Perfect", "Last Play", "Hi Skill", "Hi Score", "Online" } + )); + l.Add(new CItemList("Target Ghost", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eTargetGhost[ nInst ], + "ターゲットゴーストを指定します。\n", + "Specify Target Ghost data.\n", + new string[] {"None", "Perfect", "Last Play", "Hi Skill", "Hi Score", "Online" } + )); + #endregion #region [ 共通 SET切り替え/More/Return ] - l.Add(new CSwitchItemList("Config Set", CItemBase.Eパネル種別.通常, nCurrentConfigSet, "", "", new string[] { "SET-1", "SET-2", "SET-3" })); + //l.Add(new CSwitchItemList("Config Set", CItemBase.Eパネル種別.通常, nCurrentConfigSet, "", "", new string[] { "SET-1", "SET-2", "SET-3" })); l.Add(new CSwitchItemList("More...", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "" })); l.Add(new CSwitchItemList("Return", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "", "" })); #endregion @@ -127,7 +139,7 @@ private List MakeListCItemBase(int nConfigSet, int nInst) } /// - /// 簡易CONFIGのAUTO設定値の初期値を、ConfigIniクラスから取得・推測する + /// 簡易CONFIGのAUTO設定値の初期値を、ConfigIniクラスから取得_推測する /// /// Drums,Guitar,BassのAutoMode値のリスト private List tConfigureAuto_DefaultSettings() @@ -274,16 +286,15 @@ public override void t進行描画sub() MakeAutoPanel(); } - if (this.txパネル本体 != null) - { - this.txパネル本体.t2D描画(CDTXMania.app.Device, 520, 100); - } - if (this.tx文字列パネル != null) - { - int x = (nCurrentTarget == (int)E楽器パート.DRUMS) ? 520 : 100; - this.tx文字列パネル.t2D描画(CDTXMania.app.Device, x + 50, 380); - - } + if ( this.txパネル本体 != null ) + { + this.txパネル本体.t2D描画( CDTXMania.app.Device, 486, 320 ); + } + if ( this.tx文字列パネル != null ) + { + int x = ( nCurrentTarget == (int) E楽器パート.DRUMS ) ? 486 : 100; + this.tx文字列パネル.t2D描画( CDTXMania.app.Device, x + 20, 330 ); + } } } @@ -420,10 +431,19 @@ public override void tEnter押下Main(int nSortOrder) } //CDTXMania.ConfigIni.nHidSud = (int) GetObj現在値((int) EOrder.SuddenHidden); break; - case (int)EOrder.ConfSet: // CONF-SET切り替え - nCurrentConfigSet = (int)GetIndex((int)EOrder.ConfSet); - //Initialize( lci[ nCurrentConfigSet ], true, QuickCfgTitle, pos ); + case (int) EOrder.AutoGhost: // #35411 chnmr0 AUTOゴーストデータ + EAutoGhostData gd = (EAutoGhostData)GetIndex((int)EOrder.AutoGhost); + CDTXMania.ConfigIni.eAutoGhost[ nCurrentTarget ] = gd; + break; + + case (int)EOrder.TargetGhost: // #35411 chnmr0 ターゲットゴーストデータ + ETargetGhostData gtd = (ETargetGhostData)GetIndex((int)EOrder.TargetGhost); + CDTXMania.ConfigIni.eTargetGhost[ nCurrentTarget ] = gtd; break; + //case (int)EOrder.ConfSet: // CONF-SET切り替え + // nCurrentConfigSet = (int)GetIndex((int)EOrder.ConfSet); + // //Initialize( lci[ nCurrentConfigSet ], true, QuickCfgTitle, pos ); + // break; case (int)EOrder.More: SetAutoParameters(); // 簡易CONFIGメニュー脱出に伴い、簡易CONFIG内のAUTOの設定をConfigIniクラスに反映する @@ -621,7 +641,9 @@ private enum EOrder : int Risky, PlaySpeed, SuddenHidden, - ConfSet, + AutoGhost, + TargetGhost, + //ConfSet, More, Return, END, Default = 99 diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectShowCurrentPosition.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectShowCurrentPosition.cs" index 734ec013..be34e391 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectShowCurrentPosition.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelectShowCurrentPosition.cs" @@ -55,7 +55,7 @@ public override int On進行描画() if ( this.txScrollBar != null ) { #region [ スクロールバーの描画 #27648 ] - this.txScrollBar.t2D描画(CDTXMania.app.Device, x - (CDTXMania.stage選曲.ct登場時アニメ用共通.n現在の値 / 2f), y, new Rectangle(0, 0, 12, 492)); // 本当のy座標は88なんだが、なぜか約30のバイアスが掛かる・・・ + this.txScrollBar.t2D描画(CDTXMania.app.Device, x - (CDTXMania.stage選曲.ct登場時アニメ用共通.n現在の値 / 2f), y, new Rectangle(0, 0, 12, 492)); // 本当のy座標は88なんだが、なぜか約30のバイアスが掛かる___ #endregion #region [ スクロール地点の描画 (計算はCActSelect曲リストで行う。スクロール位置と選曲項目の同期のため。)#27648 ] int py = CDTXMania.stage選曲.nスクロールバー相対y座標; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelect\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelect\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs" index d45eb38c..a2a95a8c 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelect\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelect\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs" @@ -39,6 +39,7 @@ public void t選択曲が変更された() this.db現在選択中の曲の曲別スキル[i] = cスコア.譜面情報.最大曲別スキル[i]; this.b現在選択中の曲の譜面[i] = cスコア.譜面情報.b譜面がある[i]; this.n現在選択中の曲のレベル[i] = cスコア.譜面情報.レベル[i]; + this.n現在選択中の曲のレベル小数点[ i ] = cスコア.譜面情報.レベルDec[ i ]; for (int j = 0; j < 5; j++) { if (c曲リストノード.arスコア[j] != null) @@ -66,18 +67,13 @@ public void t選択曲が変更された() if (c曲リストノード.arスコア[i] != null) { int nLevel = c曲リストノード.arスコア[i].譜面情報.レベル.Drums; - if (nLevel < 0) + if( nLevel < 0 ) { - nLevel = 0; - } - - if (nLevel > 999) + if( nLevel > 999 ) { - nLevel = 999; - } this.n選択中の曲のレベル難易度毎[i] = nLevel; @@ -105,28 +101,29 @@ public override void On活性化() { this.n現在選択中の曲の難易度 = 0; - for (int i = 0; i < 3; i++) + for( int i = 0; i < 3; i++ ) { - this.n現在選択中の曲のレベル[i] = 0; - this.db現在選択中の曲の曲別スキル[i] = 0.0; - this.n現在選択中の曲の最高ランク[i] = (int)CScoreIni.ERANK.UNKNOWN; - this.b現在選択中の曲がフルコンボ[i] = false; - this.db現在選択中の曲の最高スキル値[i] = 0.0; - for (int j = 0; j < 5; j++) + this.n現在選択中の曲のレベル[ i ] = 0; + this.n現在選択中の曲のレベル小数点[ i ] = 0; + this.db現在選択中の曲の曲別スキル[ i ] = 0.0; + this.n現在選択中の曲の最高ランク[ i ] = (int)CScoreIni.ERANK.UNKNOWN; + this.b現在選択中の曲がフルコンボ[ i ] = false; + this.db現在選択中の曲の最高スキル値[ i ] = 0.0; + for( int j = 0; j < 5; j++ ) { - this.n現在選択中の曲のレベル難易度毎DGB[j][i] = 0; - this.n現在選択中の曲のレベル小数点難易度毎DGB[j][i] = 0; - this.db現在選択中の曲の最高スキル値難易度毎[j][i] = 0.0; - this.n現在選択中の曲の最高ランク難易度毎[j][i] = (int)CScoreIni.ERANK.UNKNOWN; - this.b現在選択中の曲がフルコンボ難易度毎[j][i] = false; + this.n現在選択中の曲のレベル難易度毎DGB[ j ][ i ] = 0; + this.n現在選択中の曲のレベル小数点難易度毎DGB[ j ][ i ] = 0; + this.db現在選択中の曲の最高スキル値難易度毎[ j ][ i ] = 0.0; + this.n現在選択中の曲の最高ランク難易度毎[ j ][ i ] = (int)CScoreIni.ERANK.UNKNOWN; + this.b現在選択中の曲がフルコンボ難易度毎[ j ][ i ] = false; } } - for (int j = 0; j < 5; j++) + for( int j = 0; j < 5; j++ ) { - this.str難易度ラベル[j] = ""; - this.n選択中の曲のレベル難易度毎[j] = 0; + this.str難易度ラベル[ j ] = ""; + this.n選択中の曲のレベル難易度毎[ j ] = 0; - this.db現在選択中の曲の曲別スキル値難易度毎[j] = 0.0; + this.db現在選択中の曲の曲別スキル値難易度毎[ j ] = 0.0; } this.n難易度開始文字位置 = 0; this.r直前の曲 = null; @@ -293,13 +290,15 @@ public override int On進行描画() if (this.tx難易度パネル != null) this.tx難易度パネル.t2D描画(CDTXMania.app.Device, nPanelX, nPanelY, new Rectangle(nPanelW * j, 0, nPanelW, this.tx難易度パネル.sz画像サイズ.Height)); + int[] n難易度整数 = new int[5]; + int[] n難易度小数 = new int[5]; for (int i = 0; i < 5; i++) { if (this.str難易度ラベル[i] != null || CDTXMania.stage選曲.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.RANDOM) { int nBoxX = nPanelX; - int nBoxY = nPanelY + (nPanelH * (4 - i)) + (nPanelH / 2); + int nBoxY = ( 391 + ( ( 4 - i ) * 60 ) ) - 2; if (this.n現在選択中の曲の難易度 == i && this.tx難易度枠 != null) { @@ -310,8 +309,7 @@ public override int On進行描画() #region [ 選択曲の Lv の描画 ] if ((cスコア != null) && (this.tx難易度数字 != null)) { - int[] n難易度整数 = new int[5]; - int[] n難易度小数 = new int[5]; + if (n選択中の曲のレベル難易度毎[i] > 100) { n難易度整数[i] = (int)this.n現在選択中の曲のレベル難易度毎DGB[i][j] / 100; @@ -321,6 +319,7 @@ public override int On進行描画() { n難易度整数[i] = (int)this.n現在選択中の曲のレベル難易度毎DGB[i][j] / 10; n難易度小数[i] = (this.n現在選択中の曲のレベル難易度毎DGB[i][j] - (n難易度整数[i] * 10)) * 10; + n難易度小数[i] += this.n現在選択中の曲のレベル小数点難易度毎DGB[i][j]; } if (this.str難易度ラベル[i] != null && this.b現在選択中の曲に譜面がある[i][j]) @@ -338,7 +337,7 @@ public override int On進行描画() if (db変数 < 0) db変数 = 0; - if (db変数 >= 100) + if (db変数 > 100) db変数 = 100; if (db変数 != 0.00) @@ -370,9 +369,7 @@ public override int On進行描画() } #region [ 選択曲の 最高スキル値ゲージ+数値の描画 ] if (this.tx達成率MAX != null && db変数 == 100) - { - this.tx達成率MAX.t2D描画(CDTXMania.app.Device, nBoxX + nPanelW - 145, nBoxY + nPanelH - 27); - } + this.tx達成率MAX.t2D描画(CDTXMania.app.Device, nBoxX + nPanelW - 155, nBoxY + nPanelH - 27); else this.t達成率表示(nBoxX + nPanelW - 157, nBoxY + nPanelH - 27, string.Format("{0,6:##0.00}%", db変数)); #endregion @@ -398,22 +395,13 @@ public override int On進行描画() #region [ 選択曲の Lv の描画 ] if ((cスコア != null) && (this.tx難易度数字 != null)) { - int n難易度整数 = 0; - int n難易度小数 = 0; - if (this.n現在選択中の曲のレベル[j] >= 100) - { - n難易度整数 = (int)this.n現在選択中の曲のレベル[j] / 100; - n難易度小数 = (this.n現在選択中の曲のレベル[j] - (n難易度整数 * 100)); - } - else - { - n難易度整数 = (int)this.n現在選択中の曲のレベル[j] / 10; - n難易度小数 = (this.n現在選択中の曲のレベル[j] - (n難易度整数 * 10)) * 10; - } + n難易度整数[0] = (int)this.n現在選択中の曲のレベル[ j ] / 10; + n難易度小数[0] = (this.n現在選択中の曲のレベル[ j ] - ( n難易度整数[ 0 ] * 10 ) ) * 10; + n難易度小数[0] += this.n現在選択中の曲のレベル小数点[ j ]; if (this.b現在選択中の曲の譜面[j] && CDTXMania.stage選曲.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE) { - this.t難易度表示(nBoxX + nPanelW - 77, nBoxY + nPanelH - 35, string.Format("{0,4:0.00}", ((double)n難易度整数) + (((double)n難易度小数) / 100))); + this.t難易度表示(nBoxX + nPanelW - 77, nBoxY + nPanelH - 35, string.Format("{0,4:0.00}", ((double)n難易度整数[ 0 ]) + (((double)n難易度小数[ 0 ]) / 100))); } else if (!this.b現在選択中の曲の譜面[j] && CDTXMania.stage選曲.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE) { @@ -426,7 +414,7 @@ public override int On進行描画() if (db変数 < 0) db変数 = 0; - if (db変数 >= 100) + if (db変数 > 100) db変数 = 100; if (db変数 != 0.00) @@ -458,9 +446,7 @@ public override int On進行描画() } #region [ 選択曲の 最高スキル値ゲージ+数値の描画 ] if (this.tx達成率MAX != null && this.db現在選択中の曲の最高スキル値[j] == 100.00) - { - this.tx達成率MAX.t2D描画(CDTXMania.app.Device, nBoxX + nPanelW - 145, nBoxY + nPanelH - 27); - } + this.tx達成率MAX.t2D描画(CDTXMania.app.Device, nBoxX + nPanelW - 155, nBoxY + nPanelH - 27); else this.t達成率表示(nBoxX + nPanelW - 157, nBoxY + nPanelH - 27, string.Format("{0,6:##0.00}%", db変数)); #endregion @@ -533,13 +519,13 @@ public ST難易度数字(char ch, Rectangle rc) private double[] db現在選択中の曲の曲別スキル値難易度毎 = new double[5]; private STDGBVALUE db現在選択中の曲の曲別スキル; private STDGBVALUE n現在選択中の曲のレベル; + private STDGBVALUE n現在選択中の曲のレベル小数点; private int[] n選択中の曲のレベル難易度毎 = new int[5]; private STDGBVALUE n現在選択中の曲の最高ランク; private STDGBVALUE[] n現在選択中の曲の最高ランク難易度毎 = new STDGBVALUE[5]; private int n現在選択中の曲の難易度; private int n難易度開始文字位置; private const int n難易度表示可能文字数 = 0x24; - private const int nSkillPercentFontWidth = 12; /* private readonly Rectangle[] rcランク = new Rectangle[] { @@ -590,18 +576,18 @@ public ST難易度数字(char ch, Rectangle rc) }; private readonly ST達成率数字[] st達成率数字 = new ST達成率数字[] { - new ST達成率数字('0', new Rectangle(0 * nSkillPercentFontWidth, 0, nSkillPercentFontWidth, 20)), - new ST達成率数字('1', new Rectangle(1 * nSkillPercentFontWidth, 0, nSkillPercentFontWidth, 20)), - new ST達成率数字('2', new Rectangle(2 * nSkillPercentFontWidth, 0, nSkillPercentFontWidth, 20)), - new ST達成率数字('3', new Rectangle(3 * nSkillPercentFontWidth, 0, nSkillPercentFontWidth, 20)), - new ST達成率数字('4', new Rectangle(4 * nSkillPercentFontWidth, 0, nSkillPercentFontWidth, 20)), - new ST達成率数字('5', new Rectangle(5 * nSkillPercentFontWidth, 0, nSkillPercentFontWidth, 20)), - new ST達成率数字('6', new Rectangle(6 * nSkillPercentFontWidth, 0, nSkillPercentFontWidth, 20)), - new ST達成率数字('7', new Rectangle(7 * nSkillPercentFontWidth, 0, nSkillPercentFontWidth, 20)), - new ST達成率数字('8', new Rectangle(8 * nSkillPercentFontWidth, 0, nSkillPercentFontWidth, 20)), - new ST達成率数字('9', new Rectangle(9 * nSkillPercentFontWidth, 0, nSkillPercentFontWidth, 20)), - new ST達成率数字('.', new Rectangle(10 * nSkillPercentFontWidth + 3, 0, 6, 20)), - new ST達成率数字('%', new Rectangle(11 * nSkillPercentFontWidth, 0, nSkillPercentFontWidth, 20)) + new ST達成率数字('0', new Rectangle(0 * 12, 0, 12, 20)), + new ST達成率数字('1', new Rectangle(1 * 12, 0, 12, 20)), + new ST達成率数字('2', new Rectangle(2 * 12, 0, 12, 20)), + new ST達成率数字('3', new Rectangle(3 * 12, 0, 12, 20)), + new ST達成率数字('4', new Rectangle(4 * 12, 0, 12, 20)), + new ST達成率数字('5', new Rectangle(5 * 12, 0, 12, 20)), + new ST達成率数字('6', new Rectangle(6 * 12, 0, 12, 20)), + new ST達成率数字('7', new Rectangle(7 * 12, 0, 12, 20)), + new ST達成率数字('8', new Rectangle(8 * 12, 0, 12, 20)), + new ST達成率数字('9', new Rectangle(9 * 12, 0, 12, 20)), + new ST達成率数字('.', new Rectangle(10 * 12, 0, 6, 20)), + new ST達成率数字('%', new Rectangle(11 * 12 - 6, 0, 12, 20)) }; private readonly Rectangle rcunused = new Rectangle(0, 0x21, 80, 15); public CTexture txパネル本体; @@ -659,10 +645,10 @@ private void t達成率表示(int x, int y, string str) { if (this.st達成率数字[i].ch == c) { - Rectangle rectangle = new Rectangle(this.st達成率数字[i].rc.X, this.st達成率数字[i].rc.Y, nSkillPercentFontWidth, 20); + Rectangle rectangle = new Rectangle(this.st達成率数字[i].rc.X, this.st達成率数字[i].rc.Y, 12, 20); if (c == '.') { - rectangle.Width = 6; + rectangle.Width -= 6; } if (this.tx達成率数字 != null) { @@ -677,7 +663,7 @@ private void t達成率表示(int x, int y, string str) } else { - x += nSkillPercentFontWidth; + x += 12; } } } diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelect\346\233\262\343\203\252\343\202\271\343\203\210.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelect\346\233\262\343\203\252\343\202\271\343\203\210.cs" index a48fbcab..87002297 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelect\346\233\262\343\203\252\343\202\271\343\203\210.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelect\346\233\262\343\203\252\343\202\271\343\203\210.cs" @@ -71,6 +71,7 @@ public int nスクロールバー相対y座標 // t選択曲が変更された()内で使う、直前の選曲の保持 // (前と同じ曲なら選択曲変更に掛かる再計算を省略して高速化するため) private C曲リストノード song_last = null; + // コンストラクタ @@ -420,7 +421,8 @@ public void Refresh(CSongs管理 cs, bool bRemakeSongTitleBar ) // #26070 2012. } this.On非活性化(); this.r現在選択中の曲 = null; - this.On活性化(); + if( CDTXMania.r現在のステージ.eステージID == CStage.Eステージ.選曲 ) + this.On活性化(); } @@ -536,10 +538,9 @@ public override void OnManagedリソースの作成() this.tx上部パネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_header song list.png"), false); this.tx下部パネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_footer song list.png"), false); - prvFont = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str選曲リストフォント ), 30, FontStyle.Regular );//30 - prvFontSmall = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str選曲リストフォント ), 15, FontStyle.Regular );//15 - //KSM - prvFontSongSelect = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 17, FontStyle.Regular); + this.prvFont = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str選曲リストフォント ), 30, FontStyle.Regular ); + this.prvFontSmall = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str選曲リストフォント ), 15, FontStyle.Regular ); + for( int i = 0; i < 13; i++ ) this.t曲名バーの生成( i, this.stバー情報[ i ].strタイトル文字列, this.stバー情報[ i ].col文字色 ); @@ -621,10 +622,9 @@ public override void OnManagedリソースの解放() CDTXMania.t安全にDisposeする( ref this.tx選曲バー.Other ); CDTXMania.t安全にDisposeする( ref this.tx上部パネル ); CDTXMania.t安全にDisposeする( ref this.tx下部パネル ); - prvFont.Dispose(); - prvFontSmall.Dispose(); - //KSM - prvFontSongSelect.Dispose(); + + CDTXMania.t安全にDisposeする( ref this.prvFont ); + CDTXMania.t安全にDisposeする( ref this.prvFontSmall ); if( this.tx選択中の曲名テクスチャ != null ) { this.tx選択中の曲名テクスチャ.Dispose(); @@ -918,8 +918,8 @@ public override int On進行描画() return 0; } - int i選曲バーX座標 = 660; //選曲バーの座標用 - int i選択曲バーX座標 = 660; //選択曲バーの座標用 + int i選曲バーX座標 = 673; //選曲バーの座標用 + int i選択曲バーX座標 = 665; //選択曲バーの座標用 if( !this.b登場アニメ全部完了 ) { @@ -940,21 +940,21 @@ public override int On進行描画() #region [ バーテクスチャを描画。] //----------------- int width = (int) ( 425.0 / Math.Sin( Math.PI * 3 / 5 ) ); - int x = 660 - ( (int) ( width * db回転率 ) ); - int y = 269;//269 + int x = 665 - ( (int) ( width * db回転率 ) ); + int y = 269; this.tバーの描画(i選択曲バーX座標, y - 30, this.stバー情報[nパネル番号].eバー種別, true); //----------------- #endregion #region [ タイトル名テクスチャを描画。] //----------------- if( this.stバー情報[ nパネル番号 ].txタイトル名 != null ) - this.stバー情報[ nパネル番号 ].txタイトル名.t2D描画(CDTXMania.app.Device, i選択曲バーX座標 + 23, y); + this.stバー情報[ nパネル番号 ].txタイトル名.t2D描画(CDTXMania.app.Device, i選択曲バーX座標 + 65, y); //----------------- #endregion #region [ スキル値を描画。] //----------------- if( ( this.stバー情報[ nパネル番号 ].eバー種別 == Eバー種別.Score ) && ( this.e楽器パート != E楽器パート.UNKNOWN ) ) - this.tスキル値の描画( i選択曲バーX座標 -20, y + 12, this.stバー情報[nパネル番号].nスキル値[(int)this.e楽器パート]); + this.tスキル値の描画( i選択曲バーX座標 + 25, y + 12, this.stバー情報[nパネル番号].nスキル値[(int)this.e楽器パート]); //----------------- #endregion } @@ -974,13 +974,13 @@ public override int On進行描画() #region [ タイトル名テクスチャを描画。] //----------------- if( this.stバー情報[ nパネル番号 ].txタイトル名 != null ) - this.stバー情報[ nパネル番号 ].txタイトル名.t2D描画( CDTXMania.app.Device, x + 33, y + 8 );//KSM Change to +10 from +6 + this.stバー情報[ nパネル番号 ].txタイトル名.t2D描画( CDTXMania.app.Device, x + 88, y + 6 ); //----------------- #endregion #region [ スキル値を描画。] //----------------- if( ( this.stバー情報[ nパネル番号 ].eバー種別 == Eバー種別.Score ) && ( this.e楽器パート != E楽器パート.UNKNOWN ) ) - this.tスキル値の描画( x -10, y + 18, this.stバー情報[ nパネル番号 ].nスキル値[ (int) this.e楽器パート ] ); + this.tスキル値の描画( x + 34, y + 18, this.stバー情報[ nパネル番号 ].nスキル値[ (int) this.e楽器パート ] ); //----------------- #endregion } @@ -1014,7 +1014,7 @@ public override int On進行描画() { // (A) スクロールが停止しているときの選択曲バーの描画。 - int y選曲 = 269;//269 + int y選曲 = 269; #region [ バーテクスチャを描画。] //----------------- @@ -1024,7 +1024,7 @@ public override int On進行描画() #region [ タイトル名テクスチャを描画。] //----------------- if( this.stバー情報[ nパネル番号 ].txタイトル名 != null ) - this.stバー情報[ nパネル番号 ].txタイトル名.t2D描画( CDTXMania.app.Device, i選択曲バーX座標 + 23, y選曲 ); + this.stバー情報[ nパネル番号 ].txタイトル名.t2D描画( CDTXMania.app.Device, i選択曲バーX座標 + 65, y選曲 ); if (CDTXMania.stage選曲.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE && this.actステータスパネル.txパネル本体 == null) { @@ -1054,7 +1054,7 @@ public override int On進行描画() #region [ スキル値を描画。] //----------------- if( ( this.stバー情報[ nパネル番号 ].eバー種別 == Eバー種別.Score ) && ( this.e楽器パート != E楽器パート.UNKNOWN ) ) - this.tスキル値の描画(i選択曲バーX座標 - 20, y選曲 + 12, this.stバー情報[nパネル番号].nスキル値[(int)this.e楽器パート]); + this.tスキル値の描画(i選択曲バーX座標 + 25, y選曲 + 12, this.stバー情報[nパネル番号].nスキル値[(int)this.e楽器パート]); //----------------- #endregion } @@ -1070,13 +1070,13 @@ public override int On進行描画() #region [ タイトル名テクスチャを描画。] //----------------- if( this.stバー情報[ nパネル番号 ].txタイトル名 != null ) - this.stバー情報[ nパネル番号 ].txタイトル名.t2D描画( CDTXMania.app.Device, x + 33, y + 8 );//KSM Change to +10 from +6 + this.stバー情報[ nパネル番号 ].txタイトル名.t2D描画( CDTXMania.app.Device, x + 0x58, y + 6 ); //----------------- #endregion #region [ スキル値を描画。] //----------------- if( ( this.stバー情報[ nパネル番号 ].eバー種別 == Eバー種別.Score ) && ( this.e楽器パート != E楽器パート.UNKNOWN ) ) - this.tスキル値の描画( x - 10, y + 18, this.stバー情報[ nパネル番号 ].nスキル値[ (int) this.e楽器パート ] ); + this.tスキル値の描画( x + 34, y + 18, this.stバー情報[ nパネル番号 ].nスキル値[ (int) this.e楽器パート ] ); //----------------- #endregion } @@ -1249,15 +1249,10 @@ public struct STATUSPANEL private CPrivateFastFont prvFont; private CPrivateFastFont prvFontSmall; - //KSM New private member - private CPrivateFastFont prvFontSongSelect; - //2014.04.05.kairera0467 GITADORAグラデーションの色。 //本当は共通のクラスに設置してそれを参照する形にしたかったが、なかなかいいメソッドが無いため、とりあえず個別に設置。 - public Color clGITADORAgradationTopColor = Color.FromArgb(0, 211, 199); - public Color clGITADORAgradationBottomColor = Color.FromArgb(250, 232, 45); - //public Color clGITADORAgradationTopColor = Color.FromArgb(0, 220, 200);//Original Value - //public Color clGITADORAgradationBottomColor = Color.FromArgb(255, 250, 40); + public Color clGITADORAgradationTopColor = Color.FromArgb(0, 220, 200); + public Color clGITADORAgradationBottomColor = Color.FromArgb(255, 250, 40); private int nCurrentPosition = 0; private int nNumOfItems = 0; @@ -1329,20 +1324,20 @@ private void tスキル値の描画( int x, int y, int nスキル値 ) // 百の位の描画。 if( n百の位 > 0 ) - this.tスキル値の描画・1桁描画( x, y, n百の位, color ); + this.tスキル値の描画_1桁描画( x, y, n百の位, color ); // 十の位の描画。 if( n百の位 != 0 || n十の位 != 0 ) - this.tスキル値の描画・1桁描画( x + 14, y, n十の位, color ); + this.tスキル値の描画_1桁描画( x + 14, y, n十の位, color ); // 一の位の描画。 - this.tスキル値の描画・1桁描画( x + 0x1c, y, n一の位, color ); + this.tスキル値の描画_1桁描画( x + 0x1c, y, n一の位, color ); } - private void tスキル値の描画・1桁描画( int x, int y, int n数値, int color ) + private void tスキル値の描画_1桁描画( int x, int y, int n数値, int color ) { int dx = ( n数値 % 5 ) * 9; int dy = ( n数値 / 5 ) * 12; @@ -1466,8 +1461,6 @@ private void t曲名バーの生成( int nバー番号, string str曲名, Color //----------------- #endregion - - int n最大幅px = 0x310; int height = 0x25; int width = (int) ( ( sz曲名.Width + 2 ) * 0.5f ); @@ -1476,35 +1469,21 @@ private void t曲名バーの生成( int nバー番号, string str曲名, Color float f拡大率X = ( width <= n最大幅px ) ? 0.5f : ( ( (float) n最大幅px / (float) width ) * 0.5f ); // 長い文字列は横方向に圧縮。 - //Bitmap bmpSongName = new Bitmap( width * 2, height * 2, PixelFormat.Format32bppArgb ); - //Bitmap bmpSongName = new Bitmap(1,1); - using(Bitmap bmpSongName = this.prvFontSongSelect.DrawPrivateFont(str曲名, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true)) - { - this.stバー情報[nバー番号].txタイトル名 = CDTXMania.tテクスチャの生成(bmpSongName, false); - bmpSongName.Dispose(); - } - //bmpSongName = this.prvFontSongSelect.DrawPrivateFont(str曲名, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true); - - //KSM Commented off to test - //using( var bmp = new Bitmap( width * 2, height * 2, PixelFormat.Format32bppArgb ) ) // 2倍(面積4倍)のBitmapを確保。(0.5倍で表示する前提。) - //using( var g = Graphics.FromImage( bmp ) ) - //{ - // g.TextRenderingHint = TextRenderingHint.AntiAlias; - // float y = ( ( ( float ) bmp.Height ) / 2f ) - ( ( CDTXMania.ConfigIni.n選曲リストフォントのサイズdot * 2f ) / 2f ); - // //KSM Testing - // //g.DrawString( str曲名, this.ft曲リスト用フォント, new SolidBrush( this.color文字影 ), (float) 2f, (float) ( y + 2f ) ); - // g.DrawString(str曲名, this.ft曲リスト用フォント, new SolidBrush(Color.Yellow), (float)0f, (float)(y)); - // //g.DrawString( str曲名, this.ft曲リスト用フォント, new SolidBrush( color ), 0f, y ); - // g.DrawString(str曲名, this.ft曲リスト用フォント, new SolidBrush(Color.Black), 0f, y); - // CDTXMania.t安全にDisposeする( ref this.stバー情報[ nバー番号 ].txタイトル名 ); - - // this.stバー情報[ nバー番号 ].txタイトル名 = new CTexture( CDTXMania.app.Device, bmp, CDTXMania.TextureFormat ); - // this.stバー情報[ nバー番号 ].txタイトル名.vc拡大縮小倍率 = new Vector3( f拡大率X, 0.5f, 1f ); - - // g.Dispose(); - //} + using( var bmp = new Bitmap( width * 2, height * 2, PixelFormat.Format32bppArgb ) ) // 2倍(面積4倍)のBitmapを確保。(0.5倍で表示する前提。) + using( var g = Graphics.FromImage( bmp ) ) + { + g.TextRenderingHint = TextRenderingHint.AntiAlias; + float y = ( ( ( float ) bmp.Height ) / 2f ) - ( ( CDTXMania.ConfigIni.n選曲リストフォントのサイズdot * 2f ) / 2f ); + g.DrawString( str曲名, this.ft曲リスト用フォント, new SolidBrush( this.color文字影 ), (float) 2f, (float) ( y + 2f ) ); + g.DrawString( str曲名, this.ft曲リスト用フォント, new SolidBrush( color ), 0f, y ); + CDTXMania.t安全にDisposeする( ref this.stバー情報[ nバー番号 ].txタイトル名 ); + this.stバー情報[ nバー番号 ].txタイトル名 = new CTexture( CDTXMania.app.Device, bmp, CDTXMania.TextureFormat ); + this.stバー情報[ nバー番号 ].txタイトル名.vc拡大縮小倍率 = new Vector3( f拡大率X, 0.5f, 1f ); + + g.Dispose(); + } } catch( CTextureCreateFailedException ) { @@ -1520,11 +1499,11 @@ private void tアイテム数の描画() for (int p = s.Length - 1; p >= 0; p--) { - tアイテム数の描画・1桁描画(x, y, s[p]); + tアイテム数の描画_1桁描画(x, y, s[p]); x -= 16; } } - private void tアイテム数の描画・1桁描画(int x, int y, char s数値) + private void tアイテム数の描画_1桁描画(int x, int y, char s数値) { int dx, dy; if (s数値 == '/') diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CStage\351\201\270\346\233\262.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CStage\351\201\270\346\233\262.cs" index 7427a756..fe1e4ed7 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CStage\351\201\270\346\233\262.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CStage\351\201\270\346\233\262.cs" @@ -68,7 +68,7 @@ public C曲リストノード r確定された曲 } /// /// 現在演奏中の曲のスコアに対応する背景動画。 - /// r現在演奏中の曲のスコア の読み込み時に、自動検索・抽出・生成される。 + /// r現在演奏中の曲のスコア の読み込み時に、自動検索_抽出_生成される。 /// public CDirectShow r現在演奏中のスコアの背景動画 = null; public int n現在選択中の曲の難易度 @@ -325,7 +325,7 @@ public override int On進行描画() } if( !this.bBGM再生済み && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) ) { - CDTXMania.Skin.bgm選曲画面.n音量・次に鳴るサウンド = 100; + CDTXMania.Skin.bgm選曲画面.n音量_次に鳴るサウンド = 100; CDTXMania.Skin.bgm選曲画面.t再生する(); this.bBGM再生済み = true; } @@ -443,8 +443,7 @@ public override int On進行描画() #region [ Up ] this.ctキー反復用.Up.tキー反復(CDTXMania.Input管理.Keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.UpArrow), new CCounter.DGキー処理(this.tカーソルを上へ移動する)); this.ctキー反復用.R.tキー反復(CDTXMania.Pad.b押されているGB(Eパッド.R), new CCounter.DGキー処理(this.tカーソルを上へ移動する)); - //SN changed to HT by WJ - if (CDTXMania.Pad.b押された(E楽器パート.DRUMS, Eパッド.HT)) + if (CDTXMania.Pad.b押された(E楽器パート.DRUMS, Eパッド.SD)) { this.tカーソルを上へ移動する(); } @@ -452,8 +451,7 @@ public override int On進行描画() #region [ Down ] this.ctキー反復用.Down.tキー反復(CDTXMania.Input管理.Keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.DownArrow), new CCounter.DGキー処理(this.tカーソルを下へ移動する)); this.ctキー反復用.B.tキー反復(CDTXMania.Pad.b押されているGB(Eパッド.G), new CCounter.DGキー処理(this.tカーソルを下へ移動する)); - //Wj change ft to lt - if (CDTXMania.Pad.b押された(E楽器パート.DRUMS, Eパッド.LT)) + if (CDTXMania.Pad.b押された(E楽器パート.DRUMS, Eパッド.FT)) { this.tカーソルを下へ移動する(); } @@ -593,13 +591,12 @@ public override int On進行描画() this.actSortSongs.tActivatePopupMenu(E楽器パート.BASS, ref this.act曲リスト); } #endregion - #region [ FTx2 Drums: ソート画面 ] - //wj changed HT to FT - if (CDTXMania.Pad.b押された(E楽器パート.DRUMS, Eパッド.FT)) + #region [ HTx2 Drums: ソート画面 ] + if (CDTXMania.Pad.b押された(E楽器パート.DRUMS, Eパッド.HT)) { // [HT]x2 ソート画面 2013.12.31.kairera0467 // - CommandHistory.Add(E楽器パート.DRUMS, EパッドFlag.FT); - EパッドFlag[] comSort = new EパッドFlag[] { EパッドFlag.FT, EパッドFlag.FT }; + CommandHistory.Add(E楽器パート.DRUMS, EパッドFlag.HT); + EパッドFlag[] comSort = new EパッドFlag[] { EパッドFlag.HT, EパッドFlag.HT }; if (CommandHistory.CheckCommand(comSort, E楽器パート.DRUMS)) { CDTXMania.Skin.sound変更音.t再生する(); @@ -608,6 +605,20 @@ public override int On進行描画() } #endregion } + //if( CDTXMania.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.F6) ) + //{ + // if (CDTXMania.EnumSongs.IsEnumerating) + // { + // // Debug.WriteLine( "バックグラウンドでEnumeratingSongs中だったので、一旦中断します。" ); + // CDTXMania.EnumSongs.Abort(); + // CDTXMania.actEnumSongs.On非活性化(); + // } + + // CDTXMania.EnumSongs.StartEnumFromDisk(); + // //CDTXMania.EnumSongs.ChangeEnumeratePriority(ThreadPriority.Normal); + // CDTXMania.actEnumSongs.bコマンドでの曲データ取得 = true; + // CDTXMania.actEnumSongs.On活性化(); + //} } this.actSortSongs.t進行描画(); this.actQuickConfig.t進行描画(); @@ -712,7 +723,7 @@ private struct STCommandTime // #24063 2011.1.16 yyagi コマンド入力時刻 public EパッドFlag ePad; // 押されたコマンド(同時押しはOR演算で列挙する) public long time; // コマンド入力時刻 } - public class CCommandHistory // #24063 2011.1.16 yyagi コマンド入力履歴を保持・確認するクラス + public class CCommandHistory // #24063 2011.1.16 yyagi コマンド入力履歴を保持_確認するクラス { readonly int buffersize = 16; private List stct; @@ -813,7 +824,7 @@ private void t曲をランダム選択する() { if( song.listランダム用ノードリスト == null ) { - song.listランダム用ノードリスト = this.t指定された曲が存在する場所の曲を列挙する・子リスト含む( song ); + song.listランダム用ノードリスト = this.t指定された曲が存在する場所の曲を列挙する_子リスト含む( song ); } int count = song.listランダム用ノードリスト.Count; if( count == 0 ) @@ -887,7 +898,7 @@ private void t曲を選択する() } CDTXMania.Skin.bgm選曲画面.t停止する(); } - private List t指定された曲が存在する場所の曲を列挙する・子リスト含む( C曲リストノード song ) + private List t指定された曲が存在する場所の曲を列挙する_子リスト含む( C曲リストノード song ) { List list = new List(); song = song.r親ノード; @@ -901,15 +912,15 @@ private void t曲を選択する() } if( ( c曲リストノード.list子リスト != null ) && CDTXMania.ConfigIni.bランダムセレクトで子BOXを検索対象とする ) { - this.t指定された曲の子リストの曲を列挙する・孫リスト含む( c曲リストノード, ref list ); + this.t指定された曲の子リストの曲を列挙する_孫リスト含む( c曲リストノード, ref list ); } } return list; } - this.t指定された曲の子リストの曲を列挙する・孫リスト含む( song, ref list ); + this.t指定された曲の子リストの曲を列挙する_孫リスト含む( song, ref list ); return list; } - private void t指定された曲の子リストの曲を列挙する・孫リスト含む( C曲リストノード r親, ref List list ) + private void t指定された曲の子リストの曲を列挙する_孫リスト含む( C曲リストノード r親, ref List list ) { if( ( r親 != null ) && ( r親.list子リスト != null ) ) { @@ -921,7 +932,7 @@ private void t曲を選択する() } if( ( c曲リストノード.list子リスト != null ) && CDTXMania.ConfigIni.bランダムセレクトで子BOXを検索対象とする ) { - this.t指定された曲の子リストの曲を列挙する・孫リスト含む( c曲リストノード, ref list ); + this.t指定された曲の子リストの曲を列挙する_孫リスト含む( c曲リストノード, ref list ); } } } diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/06.\346\233\262\350\252\255\343\201\277\350\276\274\343\201\277/CStage\346\233\262\350\252\255\343\201\277\350\276\274\343\201\277.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/06.\346\233\262\350\252\255\343\201\277\350\276\274\343\201\277/CStage\346\233\262\350\252\255\343\201\277\350\276\274\343\201\277.cs" index 02688135..4dcb38d8 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/06.\346\233\262\350\252\255\343\201\277\350\276\274\343\201\277/CStage\346\233\262\350\252\255\343\201\277\350\276\274\343\201\277.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/06.\346\233\262\350\252\255\343\201\277\350\276\274\343\201\277/CStage\346\233\262\350\252\255\343\201\277\350\276\274\343\201\277.cs" @@ -200,7 +200,6 @@ public override void On活性化() CDTX cdtx = new CDTX( strDTXファイルパス, true ); if( !CDTXMania.bコンパクトモード && CDTXMania.ConfigIni.b曲名表示をdefのものにする ) - //this.str曲タイトル = CDTXMania.stage選曲.r現在選択中の曲.strタイトル; this.str曲タイトル = CDTXMania.stage選曲.r確定された曲.strタイトル; else this.str曲タイトル = cdtx.TITLE; @@ -218,7 +217,63 @@ public override void On活性化() Trace.TraceError( "#SOUND_NOWLOADING に指定されたサウンドファイルの読み込みに失敗しました。({0})", strNowLoadingサウンドファイルパス ); } } - int LEVEL = cdtx.LEVEL.Drums; + // 2015.12.26 kairera0467 本家DTXからつまみ食い。 + // #35411 2015.08.19 chnmr0 add + // Read ghost data by config + // It does not exist a ghost file for 'perfect' actually + string [] inst = {"dr", "gt", "bs"}; + if( CDTXMania.ConfigIni.bIsSwappedGuitarBass ) + { + inst[1] = "bs"; + inst[2] = "gt"; + } + + for(int instIndex = 0; instIndex < inst.Length; ++instIndex) + { + //break; //2016.01.03 kairera0467 以下封印。 + bool readAutoGhostCond = false; + readAutoGhostCond |= instIndex == 0 ? CDTXMania.ConfigIni.bドラムが全部オートプレイである : false; + readAutoGhostCond |= instIndex == 1 ? CDTXMania.ConfigIni.bギターが全部オートプレイである : false; + readAutoGhostCond |= instIndex == 2 ? CDTXMania.ConfigIni.bベースが全部オートプレイである : false; + + CDTXMania.listTargetGhsotLag[instIndex] = null; + CDTXMania.listAutoGhostLag[instIndex] = null; + CDTXMania.listTargetGhostScoreData[instIndex] = null; + this.nCurrentInst = instIndex; + + if ( readAutoGhostCond ) + { + string[] prefix = { "perfect", "lastplay", "hiskill", "hiscore", "online" }; + int indPrefix = (int)CDTXMania.ConfigIni.eAutoGhost[ instIndex ]; + string filename = cdtx.strフォルダ名 + "\\" + cdtx.strファイル名 + "." + prefix[ indPrefix ] + "." + inst[ instIndex ] + ".ghost"; + if( File.Exists( filename ) ) + { + CDTXMania.listAutoGhostLag[ instIndex ] = new List(); + CDTXMania.listTargetGhostScoreData[ instIndex ] = new CScoreIni.C演奏記録(); + ReadGhost(filename, CDTXMania.listAutoGhostLag[ instIndex ]); + } + } + + if( CDTXMania.ConfigIni.eTargetGhost[instIndex] != ETargetGhostData.NONE ) + { + string[] prefix = { "none", "perfect", "lastplay", "hiskill", "hiscore", "online" }; + int indPrefix = (int)CDTXMania.ConfigIni.eTargetGhost[ instIndex ]; + string filename = cdtx.strフォルダ名 + "\\" + cdtx.strファイル名 + "." + prefix[ indPrefix ] + "." + inst[ instIndex ] + ".ghost"; + if( File.Exists( filename ) ) + { + CDTXMania.listTargetGhsotLag[instIndex] = new List(); + CDTXMania.listTargetGhostScoreData[ instIndex ] = new CScoreIni.C演奏記録(); + this.stGhostLag[instIndex] = new List(); + ReadGhost(filename, CDTXMania.listTargetGhsotLag[instIndex]); + } + else if( CDTXMania.ConfigIni.eTargetGhost[instIndex] == ETargetGhostData.PERFECT ) + { + // All perfect + CDTXMania.listTargetGhsotLag[instIndex] = new List(); + } + } + } + cdtx.On非活性化(); base.On活性化(); if( !CDTXMania.bコンパクトモード ) @@ -259,11 +314,12 @@ public override void OnManagedリソースの作成() #region[ 曲名、アーティスト名テクスチャの生成 ] if ((this.str曲タイトル != null) && (this.str曲タイトル.Length > 0)) { - pfタイトル = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 40, FontStyle.Regular); + this.pfタイトル = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 40, FontStyle.Regular); Bitmap bmpSongName = new Bitmap(1, 1); - bmpSongName = pfタイトル.DrawPrivateFont(this.str曲タイトル, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true); + bmpSongName = this.pfタイトル.DrawPrivateFont(this.str曲タイトル, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true); this.txタイトル = CDTXMania.tテクスチャの生成(bmpSongName, false); - bmpSongName.Dispose(); + CDTXMania.t安全にDisposeする( ref bmpSongName ); + CDTXMania.t安全にDisposeする( ref this.pfタイトル ); } else { @@ -276,7 +332,8 @@ public override void OnManagedリソースの作成() Bitmap bmpArtistName = new Bitmap(1, 1); bmpArtistName = pfアーティスト.DrawPrivateFont(this.strアーティスト名, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true); this.txアーティスト = CDTXMania.tテクスチャの生成(bmpArtistName, false); - bmpArtistName.Dispose(); + CDTXMania.t安全にDisposeする( ref bmpArtistName ); + CDTXMania.t安全にDisposeする( ref this.pfアーティスト ); } else { @@ -299,12 +356,14 @@ public override void OnManagedリソースの解放() if( !base.b活性化してない ) { //テクスチャ11枚 + //2018.03.15 kairera0467 PrivateFontが抜けていた&フォント生成直後に解放するようにしてみる CDTXMania.tテクスチャの解放( ref this.tx背景 ); CDTXMania.tテクスチャの解放( ref this.txジャケット ); CDTXMania.tテクスチャの解放( ref this.txタイトル ); CDTXMania.tテクスチャの解放( ref this.txアーティスト ); CDTXMania.tテクスチャの解放( ref this.tx難易度パネル ); CDTXMania.tテクスチャの解放( ref this.txパートパネル ); + CDTXMania.tテクスチャの解放( ref this.txLevel ); base.OnManagedリソースの解放(); } } @@ -334,7 +393,7 @@ public override int On進行描画() { CDTXMania.Skin.sound曲読込開始音.t再生する(); this.nBGM再生開始時刻 = CSound管理.rc演奏用タイマ.n現在時刻; - this.nBGMの総再生時間ms = CDTXMania.Skin.sound曲読込開始音.n長さ・現在のサウンド; + this.nBGMの総再生時間ms = CDTXMania.Skin.sound曲読込開始音.n長さ_現在のサウンド; } // this.actFI.tフェードイン開始(); // #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略 base.eフェーズID = CStage.Eフェーズ.共通_フェードイン; @@ -370,19 +429,21 @@ public override int On進行描画() string path = cdtx.strフォルダ名 + cdtx.PREIMAGE; try { - if( !File.Exists( path ) ) + if( this.txジャケット == null ) // 2019.04.26 kairera0467 { - this.txジャケット = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_preimage default.png" ) ); - } - else - { - this.txジャケット = CDTXMania.tテクスチャの生成( path ); + if( !File.Exists( path ) ) + { + this.txジャケット = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_preimage default.png" ) ); + } + else + { + this.txジャケット = CDTXMania.tテクスチャの生成( path ); + } } } - #pragma warning disable 0168 // variable declared but not used. - catch (Exception ex) - #pragma warning restore 0168 // variable declared but not used. + catch( Exception ex ) { + Trace.TraceError( ex.StackTrace ); } @@ -395,7 +456,7 @@ public override int On進行描画() mat *= Matrix.Translation(206f, 66f, 0f); mat *= Matrix.RotationZ(0.28f); - this.txジャケット.t3D描画(CDTXMania.app.Device, mat); + this.txジャケット.t3D描画(CDTXMania.app.Device, mat); } if (this.txタイトル != null) @@ -460,8 +521,7 @@ public override int On進行描画() this.txパートパネル.t2D描画(CDTXMania.app.Device, 191 + k, 52, new Rectangle(0, j * 50, 262, 50)); //this.txジャケット.Dispose(); - if (this.tx難易度パネル != null) - this.tx難易度パネル.t2D描画(CDTXMania.app.Device, 191 + k, 102, new Rectangle(0, this.nIndex * 50, 262, 50)); + this.t難易度パネルを描画する( CDTXMania.stage選曲.r確定された曲.ar難易度ラベル[ CDTXMania.stage選曲.n確定された曲の難易度 ], 191 + k, 102 ); k = 700; } @@ -510,6 +570,116 @@ public override int On進行描画() Trace.TraceInformation("FILE: {0}", CDTXMania.DTX.strファイル名の絶対パス); Trace.TraceInformation("---------------------------"); + // #35411 2015.08.19 chnmr0 add ゴースト機能のためList chip 読み込み後楽器パート出現順インデックスを割り振る + int[] curCount = new int[(int)E楽器パート.UNKNOWN]; + for (int i = 0; i < curCount.Length; ++i) + { + curCount[i] = 0; + } + foreach (CDTX.CChip chip in CDTXMania.DTX.listChip) + { + if (chip.e楽器パート != E楽器パート.UNKNOWN) + { + chip.n楽器パートでの出現順 = curCount[(int)chip.e楽器パート]++; + if( CDTXMania.listTargetGhsotLag[ (int)chip.e楽器パート ] != null ) + { + var lag = new STGhostLag(); + lag.index = chip.n楽器パートでの出現順; + lag.nJudgeTime = chip.n発声時刻ms + CDTXMania.listTargetGhsotLag[ (int)chip.e楽器パート ][ chip.n楽器パートでの出現順 ]; + lag.nLagTime = CDTXMania.listTargetGhsotLag[ (int)chip.e楽器パート ][ chip.n楽器パートでの出現順 ]; + + this.stGhostLag[ (int)chip.e楽器パート ].Add( lag ); + } + } + } + + string [] inst = {"dr", "gt", "bs"}; + if( CDTXMania.ConfigIni.bIsSwappedGuitarBass ) + { + inst[1] = "bs"; + inst[2] = "gt"; + } + //演奏記録をゴーストから逆生成 + for( int i = 0; i < 3; i++ ) + { + int nNowCombo = 0; + int nMaxCombo = 0; + + //2016.06.18 kairera0467 「.ghost.score」ファイルが無かった場合ghostファイルから逆算を行う形に変更。 + string[] prefix = { "none", "perfect", "lastplay", "hiskill", "hiscore", "online" }; + int indPrefix = (int)CDTXMania.ConfigIni.eTargetGhost[ i ]; + string filename = cdtx.strフォルダ名 + "\\" + cdtx.strファイル名 + "." + prefix[ indPrefix ] + "." + inst[ i ] + ".ghost"; + + if( this.stGhostLag[ i ] == null || File.Exists( filename + ".score" ) ) + continue; + CDTXMania.listTargetGhostScoreData[ i ] = new CScoreIni.C演奏記録(); + + for( int n = 0; n < this.stGhostLag[ i ].Count; n++ ) + { + int ghostLag = 128; + ghostLag = this.stGhostLag[ i ][ n ].nLagTime; + // 上位8ビットが1ならコンボが途切れている(ギターBAD空打ちでコンボ数を再現するための措置) + if (ghostLag > 255) + { + nNowCombo = 0; + } + ghostLag = (ghostLag & 255) - 128; + + if( ghostLag <= 127 ) + { + E判定 eJudge = this.e指定時刻からChipのJUDGEを返す( ghostLag, 0 ); + + switch( eJudge ) + { + case E判定.Perfect: + CDTXMania.listTargetGhostScoreData[ i ].nPerfect数++; + break; + case E判定.Great: + CDTXMania.listTargetGhostScoreData[ i ].nGreat数++; + break; + case E判定.Good: + CDTXMania.listTargetGhostScoreData[ i ].nGood数++; + break; + case E判定.Poor: + CDTXMania.listTargetGhostScoreData[ i ].nPoor数++; + break; + case E判定.Miss: + case E判定.Bad: + CDTXMania.listTargetGhostScoreData[ i ].nMiss数++; + break; + } + switch( eJudge ) + { + case E判定.Perfect: + case E判定.Great: + case E判定.Good: + nNowCombo++; + CDTXMania.listTargetGhostScoreData[ i ].n最大コンボ数 = Math.Max( nNowCombo, CDTXMania.listTargetGhostScoreData[ i ].n最大コンボ数 ); + break; + case E判定.Poor: + case E判定.Miss: + case E判定.Bad: + CDTXMania.listTargetGhostScoreData[ i ].n最大コンボ数 = Math.Max( nNowCombo, CDTXMania.listTargetGhostScoreData[ i ].n最大コンボ数 ); + nNowCombo = 0; + break; + } + //Trace.WriteLine( eJudge.ToString() + " " + nNowCombo.ToString() + "Combo Max:" + nMaxCombo.ToString() + "Combo" ); + } + } + //CDTXMania.listTargetGhostScoreData[ i ].n最大コンボ数 = nMaxCombo; + int nTotal = CDTXMania.DTX.n可視チップ数.Drums; + if( i == 1 ) nTotal = CDTXMania.DTX.n可視チップ数.Guitar; + else if( i == 2 ) nTotal = CDTXMania.DTX.n可視チップ数.Bass; + if( CDTXMania.ConfigIni.nSkillMode == 0 ) + { + CDTXMania.listTargetGhostScoreData[ i ].db演奏型スキル値 = CScoreIni.t旧演奏型スキルを計算して返す( nTotal, CDTXMania.listTargetGhostScoreData[ i ].nPerfect数, CDTXMania.listTargetGhostScoreData[ i ].nGreat数, CDTXMania.listTargetGhostScoreData[ i ].nGood数, CDTXMania.listTargetGhostScoreData[ i ].nPoor数, CDTXMania.listTargetGhostScoreData[ i ].nMiss数, (E楽器パート)i, CDTXMania.listTargetGhostScoreData[ i ].bAutoPlay ); + } + else + { + CDTXMania.listTargetGhostScoreData[ i ].db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( nTotal, CDTXMania.listTargetGhostScoreData[ i ].nPerfect数, CDTXMania.listTargetGhostScoreData[ i ].nGreat数, CDTXMania.listTargetGhostScoreData[ i ].nGood数, CDTXMania.listTargetGhostScoreData[ i ].nPoor数, CDTXMania.listTargetGhostScoreData[ i ].nMiss数, CDTXMania.listTargetGhostScoreData[ i ].n最大コンボ数, (E楽器パート)i, CDTXMania.listTargetGhostScoreData[ i ].bAutoPlay ); + } + } + span = (TimeSpan)(DateTime.Now - timeBeginLoad); Trace.TraceInformation("DTX読込所要時間: {0}", span.ToString()); @@ -552,11 +722,11 @@ public override int On進行描画() { CDTXMania.DTX.PlanToAddMixerChannel(); } - CDTXMania.DTX.t譜面仕様変更(E楽器パート.DRUMS, CDTXMania.ConfigIni.eNumOfLanes.Drums); CDTXMania.DTX.t旧仕様のドコドコチップを振り分ける(E楽器パート.DRUMS, CDTXMania.ConfigIni.bAssignToLBD.Drums); CDTXMania.DTX.tドコドコ仕様変更(E楽器パート.DRUMS, CDTXMania.ConfigIni.eDkdkType.Drums); CDTXMania.DTX.tドラムのランダム化(E楽器パート.DRUMS, CDTXMania.ConfigIni.eRandom.Drums); CDTXMania.DTX.tドラムの足ランダム化(E楽器パート.DRUMS, CDTXMania.ConfigIni.eRandomPedal.Drums); + CDTXMania.DTX.t譜面仕様変更(E楽器パート.DRUMS, CDTXMania.ConfigIni.eNumOfLanes.Drums); CDTXMania.DTX.tギターとベースのランダム化(E楽器パート.GUITAR, CDTXMania.ConfigIni.eRandom.Guitar); CDTXMania.DTX.tギターとベースのランダム化(E楽器パート.BASS, CDTXMania.ConfigIni.eRandom.Bass); @@ -674,6 +844,7 @@ private struct ST泡 private readonly ST文字位置[] st小文字位置; private readonly ST文字位置[] st大文字位置; + private int nCurrentInst; private long nBGMの総再生時間ms; private long nBGM再生開始時刻; private CSound sd読み込み音; @@ -692,8 +863,8 @@ private struct ST泡 //2014.04.05.kairera0467 GITADORAグラデーションの色。 //本当は共通のクラスに設置してそれを参照する形にしたかったが、なかなかいいメソッドが無いため、とりあえず個別に設置。 - private Color clGITADORAgradationTopColor = Color.FromArgb(0, 211, 199); - private Color clGITADORAgradationBottomColor = Color.FromArgb(250, 232, 45); + private Color clGITADORAgradationTopColor = Color.FromArgb(0, 220, 200); + private Color clGITADORAgradationBottomColor = Color.FromArgb(255, 250, 40); private DateTime timeBeginLoad; private DateTime timeBeginLoadWAV; @@ -708,8 +879,145 @@ public struct STATUSPANEL } public int nIndex; public STATUSPANEL[] stパネルマップ; + + private STDGBVALUE> stGhostLag; + + [StructLayout(LayoutKind.Sequential)] + private struct STGhostLag + { + public int index; + public int nJudgeTime; + public int nLagTime; + public STGhostLag( int index, int nJudgeTime, int nLagTime ) + { + this.index = index; + this.nJudgeTime = nJudgeTime; + this.nLagTime = nLagTime; + } + } + protected E判定 e指定時刻からChipのJUDGEを返す( long nTime, int nInputAdjustTime ) + { + //if ( pChip != null ) + { + int nDeltaTime = Math.Abs((int)nTime + nInputAdjustTime); + if ( nDeltaTime <= CDTXMania.nPerfect範囲ms ) + { + return E判定.Perfect; + } + if ( nDeltaTime <= CDTXMania.nGreat範囲ms ) + { + return E判定.Great; + } + if ( nDeltaTime <= CDTXMania.nGood範囲ms ) + { + return E判定.Good; + } + if ( nDeltaTime <= CDTXMania.nPoor範囲ms ) + { + return E判定.Poor; + } + } + return E判定.Miss; + } //----------------- + private void ReadGhost( string filename, List list ) // #35411 2015.08.19 chnmr0 add + { + //return; //2015.12.31 kairera0467 以下封印 + if( File.Exists( filename ) ) + { + using( FileStream fs = new FileStream( filename, FileMode.Open, FileAccess.Read ) ) + { + using( BinaryReader br = new BinaryReader( fs ) ) + { + try + { + int cnt = br.ReadInt32(); + for( int i = 0; i < cnt; ++i ) + { + short lag = br.ReadInt16(); + list.Add( lag ); + } + } + catch( EndOfStreamException ) + { + Trace.TraceInformation("ゴーストデータは正しく読み込まれませんでした。"); + list.Clear(); + } + } + } + } + + if( File.Exists( filename + ".score" ) ) + { + using( FileStream fs = new FileStream( filename + ".score", FileMode.Open, FileAccess.Read ) ) + { + using( StreamReader sr = new StreamReader( fs ) ) + { + try + { + string strScoreDataFile = sr.ReadToEnd(); + + strScoreDataFile = strScoreDataFile.Replace( Environment.NewLine, "\n" ); + string[] delimiter = { "\n" }; + string[] strSingleLine = strScoreDataFile.Split( delimiter, StringSplitOptions.RemoveEmptyEntries ); + + for( int i = 0; i < strSingleLine.Length; i++ ) + { + string[] strA = strSingleLine[ i ].Split( '=' ); + if (strA.Length != 2) + continue; + + switch( strA[ 0 ] ) + { + case "Score": + CDTXMania.listTargetGhostScoreData[ (int)this.nCurrentInst ].nスコア = Convert.ToInt32( strA[ 1 ] ); + continue; + case "PlaySkill": + CDTXMania.listTargetGhostScoreData[ (int)this.nCurrentInst ].db演奏型スキル値 = Convert.ToDouble( strA[ 1 ] ); + continue; + case "Skill": + CDTXMania.listTargetGhostScoreData[ (int)this.nCurrentInst ].dbゲーム型スキル値 = Convert.ToDouble( strA[ 1 ] ); + continue; + case "Perfect": + CDTXMania.listTargetGhostScoreData[ (int)this.nCurrentInst ].nPerfect数_Auto含まない = Convert.ToInt32( strA[ 1 ] ); + continue; + case "Great": + CDTXMania.listTargetGhostScoreData[ (int)this.nCurrentInst ].nGreat数_Auto含まない = Convert.ToInt32( strA[ 1 ] ); + continue; + case "Good": + CDTXMania.listTargetGhostScoreData[ (int)this.nCurrentInst ].nGood数_Auto含まない = Convert.ToInt32( strA[ 1 ] ); + continue; + case "Poor": + CDTXMania.listTargetGhostScoreData[ (int)this.nCurrentInst ].nPoor数_Auto含まない = Convert.ToInt32( strA[ 1 ] ); + continue; + case "Miss": + CDTXMania.listTargetGhostScoreData[ (int)this.nCurrentInst ].nMiss数_Auto含まない = Convert.ToInt32( strA[ 1 ] ); + continue; + case "MaxCombo": + CDTXMania.listTargetGhostScoreData[ (int)this.nCurrentInst ].n最大コンボ数 = Convert.ToInt32( strA[ 1 ] ); + continue; + default: + continue; + } + } + } + catch( NullReferenceException ) + { + Trace.TraceInformation("ゴーストデータの記録が正しく読み込まれませんでした。"); + } + catch( EndOfStreamException ) + { + Trace.TraceInformation("ゴーストデータの記録が正しく読み込まれませんでした。"); + } + } + } + } + else + { + CDTXMania.listTargetGhostScoreData[ (int)this.nCurrentInst ] = null; + } + } private void t小文字表示(int x, int y, string str) { this.t小文字表示(x, y, str, false); @@ -768,6 +1076,65 @@ private void t大文字表示(int x, int y, string str, bool bExtraLarge) } } } + private void t難易度パネルを描画する( string strラベル名, int nX, int nY ) + { + string strRawScriptFile; + + Rectangle rect = new Rectangle( 0, 0, 262, 50 ); + + //ファイルの存在チェック + if( File.Exists( CSkin.Path( @"Script\difficult.dtxs" ) ) ) + { + //スクリプトを開く + StreamReader reader = new StreamReader( CSkin.Path( @"Script\difficult.dtxs" ), Encoding.GetEncoding( "Shift_JIS" ) ); + strRawScriptFile = reader.ReadToEnd(); + + strRawScriptFile = strRawScriptFile.Replace( Environment.NewLine, "\n" ); + string[] delimiter = { "\n" }; + string[] strSingleLine = strRawScriptFile.Split( delimiter, StringSplitOptions.RemoveEmptyEntries ); + + for( int i = 0; i < strSingleLine.Length; i++ ) + { + if( strSingleLine[ i ].StartsWith( "//" ) ) + continue; //コメント行の場合は無視 + + //まずSplit + string[] arScriptLine = strSingleLine[ i ].Split( ',' ); + + if( ( arScriptLine.Length >= 4 && arScriptLine.Length <= 5 ) == false ) + continue; //引数が4つか5つじゃなければ無視。 + + if( arScriptLine[ 0 ] != "6" ) + continue; //使用するシーンが違うなら無視。 + + if( arScriptLine.Length == 4 ) + { + if( String.Compare( arScriptLine[ 1 ], strラベル名, true ) != 0 ) + continue; //ラベル名が違うなら無視。大文字小文字区別しない + } + else if( arScriptLine.Length == 5 ) + { + if( arScriptLine[ 4 ] == "1" ) + { + if( arScriptLine[ 1 ] != strラベル名 ) + continue; //ラベル名が違うなら無視。 + } + else + { + if( String.Compare( arScriptLine[ 1 ], strラベル名, true ) != 0 ) + continue; //ラベル名が違うなら無視。大文字小文字区別しない + } + } + rect.X = Convert.ToInt32( arScriptLine[ 2 ] ); + rect.Y = Convert.ToInt32( arScriptLine[ 3 ] ); + + break; + } + } + + if( this.tx難易度パネル != null ) + this.tx難易度パネル.t2D描画( CDTXMania.app.Device, nX, nY, rect ); + } #endregion } } diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217AVI.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217AVI.cs" index fca3f76f..81bf1e1c 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217AVI.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217AVI.cs" @@ -3,6 +3,7 @@ using System.Text; using System.Runtime.InteropServices; using System.Drawing; +using System.Diagnostics; using System.IO; using SlimDX; using SlimDX.Direct3D9; @@ -17,235 +18,305 @@ internal class CAct演奏AVI : CActivity public CAct演奏AVI() { - base.list子Activities.Add(this.actFill = new CAct演奏Drumsフィルインエフェクト()); - base.list子Activities.Add(this.actPanel = new CAct演奏パネル文字列()); + base.list子Activities.Add( this.actFill = new CAct演奏Drumsフィルインエフェクト() ); + base.list子Activities.Add( this.actPanel = new CAct演奏パネル文字列() ); base.b活性化してない = true; } // メソッド - + public void Start(int nチャンネル番号, CDTX.CAVI rAVI, CDTX.CDirectShow dsBGV, int n開始サイズW, int n開始サイズH, int n終了サイズW, int n終了サイズH, int n画像側開始位置X, int n画像側開始位置Y, int n画像側終了位置X, int n画像側終了位置Y, int n表示側開始位置X, int n表示側開始位置Y, int n表示側終了位置X, int n表示側終了位置Y, int n総移動時間ms, int n移動開始時刻ms) { - if ( ( nチャンネル番号 == 0x54 || nチャンネル番号 == 0x5A ) && CDTXMania.ConfigIni.bDirectShowMode == false && CDTXMania.ConfigIni.bAVI有効 ) + //2016.01.21 kairera0467 VfW時代のコードを除去+大改造 + + this.rAVI = rAVI; + #region[ アスペクト比からどっちを使うか判別 ] + // 旧DShowモードを使っていて、旧規格クリップだったら新DShowモードを使う。 + if( CDTXMania.ConfigIni.bDirectShowMode == false ) + { + this.fClipアスペクト比 = ( (float)rAVI.avi.nフレーム幅 / (float)rAVI.avi.nフレーム高さ ); + this.bUseMRenderer = false; + } + else + { + this.fClipアスペクト比 = ( (float)dsBGV.dshow.n幅px / (float)dsBGV.dshow.n高さpx ); + if( this.fClipアスペクト比 < 1.77f ) + this.bUseMRenderer = false; + } + #endregion + + if( nチャンネル番号 == 0x54 || nチャンネル番号 == 0x5A ) { - this.rAVI = rAVI; - //this.dsBGV.dshow.Dispose(); - this.n開始サイズW = n開始サイズW; - this.n開始サイズH = n開始サイズH; - this.n終了サイズW = n終了サイズW; - this.n終了サイズH = n終了サイズH; - this.n画像側開始位置X = n画像側開始位置X; - this.n画像側開始位置Y = n画像側開始位置Y; - this.n画像側終了位置X = n画像側終了位置X; - this.n画像側終了位置Y = n画像側終了位置Y; - this.n表示側開始位置X = n表示側開始位置X; - this.n表示側開始位置Y = n表示側開始位置Y; - this.n表示側終了位置X = n表示側終了位置X; - this.n表示側終了位置Y = n表示側終了位置Y; - this.n総移動時間ms = n総移動時間ms; - this.n移動開始時刻ms = (n移動開始時刻ms != -1) ? n移動開始時刻ms : CSound管理.rc演奏用タイマ.n現在時刻; - this.n前回表示したフレーム番号 = -1; - if ((this.rAVI != null) && (this.rAVI.avi != null)) + if( this.bUseMRenderer ) { - float f拡大率x; - float f拡大率y; - this.framewidth = this.rAVI.avi.nフレーム幅; - this.frameheight = this.rAVI.avi.nフレーム高さ; - this.fAVIアスペクト比 = ((float)this.framewidth) / ((float)this.frameheight); - if (this.tx描画用 == null) + //MemoryRenderer + this.dsBGV = dsBGV; + if( this.dsBGV != null && this.dsBGV.dshow != null ) { - this.tx描画用 = new CTexture(CDTXMania.app.Device, (int)this.framewidth, (int)this.frameheight, CDTXMania.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.Managed); - } - if (fAVIアスペクト比 < 1.77f) - { - //旧企画クリップだった場合 - this.ratio1 = 720f / ((float)this.frameheight); - this.position = (int)((1280f - (this.framewidth * this.ratio1)) / 2f); - int num = (int)(this.framewidth * this.ratio1); - if (num <= 565) - { - this.position = 295 + ((int)((565f - (this.framewidth * this.ratio1)) / 2f)); - this.i1 = 0; - this.i2 = (int)this.framewidth; - this.rec = new Rectangle(0, 0, 0, 0); - this.rec3 = new Rectangle(0, 0, 0, 0); - this.rec2 = new Rectangle(0, 0, (int)this.framewidth, (int)this.frameheight); - } - else + this.framewidth = (uint)this.dsBGV.dshow.n幅px; + this.frameheight = (uint)this.dsBGV.dshow.n高さpx; + float f拡大率x; + float f拡大率y; + + if ( this.tx描画用 == null ) { - this.position = 295 - ((int)(((this.framewidth * this.ratio1) - 565f) / 2f)); - this.i1 = (int)(((float)(295 - this.position)) / this.ratio1); - this.i2 = (int)((565f / ((float)num)) * this.framewidth); - this.rec = new Rectangle(0, 0, this.i1, (int)this.frameheight); - this.rec3 = new Rectangle(this.i1 + this.i2, 0, (((int)this.framewidth) - this.i1) - this.i2, (int)this.frameheight); - this.rec2 = new Rectangle(this.i1, 0, this.i2, (int)this.frameheight); + try + { + this.tx描画用 = new CTexture( CDTXMania.app.Device, (int)this.framewidth, (int)this.frameheight, CDTXMania.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.Managed ); + } + catch ( CTextureCreateFailedException e ) + { + Trace.TraceError( "CActAVI: OnManagedリソースの作成(): " + e.Message ); + this.tx描画用 = null; + } } - this.tx描画用.vc拡大縮小倍率.X = this.ratio1; - this.tx描画用.vc拡大縮小倍率.Y = this.ratio1; - } - else - { + + #region[ リサイズ処理 ] //ワイドクリップの処理 - this.ratio1 = 1280f / ((float)this.framewidth); - this.position = (int)((720f - (this.frameheight * this.ratio1)) / 2f); - this.i1 = (int)(this.framewidth * 0.23046875); - this.i2 = (int)(this.framewidth * 0.44140625); - this.rec = new Rectangle(0, 0, this.i1, (int)this.frameheight); - this.rec2 = new Rectangle(this.i1, 0, this.i2, (int)this.frameheight); - this.rec3 = new Rectangle(this.i1 + this.i2, 0, (((int)this.framewidth) - this.i1) - this.i2, (int)this.frameheight); + this.ratio1 = 1280.0f / ( (float)this.framewidth ); + this.position = (int)( ( 720.0f - ( this.frameheight * this.ratio1 ) ) / 2.0f ); + this.i1 = (int)( this.framewidth * 0.23046875 ); + this.i2 = (int)( this.framewidth * 0.44140625 ); + this.rec = new Rectangle( 0, 0, this.i1, (int)this.frameheight ); + this.rec2 = new Rectangle( this.i1, 0, this.i2, (int)this.frameheight ); + this.rec3 = new Rectangle( this.i1 + this.i2, 0, ( ( (int)this.framewidth ) - this.i1 ) - this.i2, (int)this.frameheight ); this.tx描画用.vc拡大縮小倍率.X = this.ratio1; this.tx描画用.vc拡大縮小倍率.Y = this.ratio1; - } + if( this.framewidth > 420 ) + f拡大率x = 420f / ( (float)this.framewidth ); + else + f拡大率x = 1f; - if (this.framewidth > 420) - { - f拡大率x = 420f / ((float)this.framewidth); - } - else - { - f拡大率x = 1f; - } - if (this.frameheight > 580) - { - f拡大率y = 580f / ((float)this.frameheight); - } - else - { - f拡大率y = 1f; + if( this.frameheight > 580 ) + f拡大率y = 580f / ( (float)this.frameheight ); + else + f拡大率y = 1f; + + if( f拡大率x > f拡大率y ) + f拡大率x = f拡大率y; + else + f拡大率y = f拡大率x; + + this.smallvc = new Vector3( f拡大率x, f拡大率y, 1.0f ); + #endregion } - if (f拡大率x > f拡大率y) + + if ( fClipアスペクト比 > 1.77f && this.dsBGV != null && this.dsBGV.dshow != null ) { - f拡大率x = f拡大率y; + this.dsBGV.dshow.t再生開始(); + this.bDShowクリップを再生している = true; } - else + if ( fClipアスペクト比 < 1.77f && this.dsBGV != null && this.dsBGV.dshow != null ) { - f拡大率y = f拡大率x; + this.dsBGV.dshow.t再生開始(); + this.bDShowクリップを再生している = true; } - - this.smallvc = new Vector3(f拡大率x, f拡大率y, 1f); - this.vclip = new Vector3(1.42f, 1.42f, 1f); } - } - else if ( ( nチャンネル番号 == 0x54 || nチャンネル番号 == 0x5A ) && CDTXMania.ConfigIni.bDirectShowMode && CDTXMania.ConfigIni.bAVI有効 ) - { - this.rAVI = rAVI; - this.dsBGV = dsBGV; - if (this.dsBGV != null && this.dsBGV.dshow != null) + else if( this.bUseCAviDS ) { - this.framewidth = (uint)this.dsBGV.dshow.n幅px; - this.frameheight = (uint)this.dsBGV.dshow.n高さpx; - float f拡大率x; - float f拡大率y; - this.fAVIアスペクト比 = ((float)this.framewidth) / ((float)this.frameheight); + //CAviDS + this.rAVI = rAVI; + this.n開始サイズW = n開始サイズW; + this.n開始サイズH = n開始サイズH; + this.n終了サイズW = n終了サイズW; + this.n終了サイズH = n終了サイズH; + this.n画像側開始位置X = n画像側開始位置X; + this.n画像側開始位置Y = n画像側開始位置Y; + this.n画像側終了位置X = n画像側終了位置X; + this.n画像側終了位置Y = n画像側終了位置Y; + this.n表示側開始位置X = n表示側開始位置X; + this.n表示側開始位置Y = n表示側開始位置Y; + this.n表示側終了位置X = n表示側終了位置X; + this.n表示側終了位置Y = n表示側終了位置Y; + this.n総移動時間ms = n総移動時間ms; + this.n移動開始時刻ms = ( n移動開始時刻ms != -1 ) ? n移動開始時刻ms : CSound管理.rc演奏用タイマ.n現在時刻; - if (fAVIアスペクト比 < 1.77f) + if( ( this.rAVI != null ) && ( this.rAVI.avi != null ) ) { - #region[ 旧規格クリップ時の処理。結果的には面倒な処理なんだよな・・・・ ] - this.n開始サイズW = n開始サイズW; - this.n開始サイズH = n開始サイズH; - this.n終了サイズW = n終了サイズW; - this.n終了サイズH = n終了サイズH; - this.n画像側開始位置X = n画像側開始位置X; - this.n画像側開始位置Y = n画像側開始位置Y; - this.n画像側終了位置X = n画像側終了位置X; - this.n画像側終了位置Y = n画像側終了位置Y; - this.n表示側開始位置X = n表示側開始位置X; - this.n表示側開始位置Y = n表示側開始位置Y; - this.n表示側終了位置X = n表示側終了位置X; - this.n表示側終了位置Y = n表示側終了位置Y; - this.n総移動時間ms = n総移動時間ms; - this.n移動開始時刻ms = (n移動開始時刻ms != -1) ? n移動開始時刻ms : CSound管理.rc演奏用タイマ.n現在時刻; - this.n前回表示したフレーム番号 = -1; + float f拡大率x; + float f拡大率y; + this.framewidth = (uint)this.rAVI.avi.nフレーム幅; + this.frameheight = (uint)this.rAVI.avi.nフレーム高さ; + if( this.tx描画用 == null ) + { + this.tx描画用 = new CTexture( CDTXMania.app.Device, (int)this.framewidth, (int)this.frameheight, CDTXMania.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.Managed ); + } - this.vclip = new Vector3(1.42f, 1.42f, 1f); - this.dsBGV = null; - #endregion - } - if (this.tx描画用 == null) - { - this.tx描画用 = new CTexture(CDTXMania.app.Device, (int)this.framewidth, (int)this.frameheight, CDTXMania.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.Managed); - } + if( fClipアスペクト比 < 1.77f ) + { + //旧規格クリップだった場合 + this.ratio1 = 720f / ( (float)this.frameheight ); + this.position = (int)( ( 1280f - ( this.framewidth * this.ratio1 ) ) / 2f ); + int num = (int)( this.framewidth * this.ratio1 ); + if( num <= 565 ) + { + this.position = 295 + ( (int)( ( 565f - ( this.framewidth * this.ratio1 ) ) / 2f ) ); + this.i1 = 0; + this.i2 = (int)this.framewidth; + this.rec = new Rectangle( 0, 0, 0, 0 ); + this.rec3 = new Rectangle( 0, 0, 0, 0 ); + this.rec2 = new Rectangle( 0, 0, (int)this.framewidth, (int)this.frameheight ); + } + else + { + this.position = 295 - ( (int)( ( ( this.framewidth * this.ratio1 ) - 565f ) / 2f ) ); + this.i1 = (int)( ( (float)( 295 - this.position ) ) / this.ratio1 ); + this.i2 = (int)( ( 565f / ( (float)num ) ) * this.framewidth ); + this.rec = new Rectangle( 0, 0, this.i1, (int)this.frameheight ); + this.rec3 = new Rectangle( this.i1 + this.i2, 0, ( ( (int)this.framewidth ) - this.i1 ) - this.i2, (int)this.frameheight ); + this.rec2 = new Rectangle( this.i1, 0, this.i2, (int)this.frameheight ); + } + this.tx描画用.vc拡大縮小倍率.X = this.ratio1; + this.tx描画用.vc拡大縮小倍率.Y = this.ratio1; + } + else + { + //ワイドクリップの処理 + this.ratio1 = 1280f / ( (float)this.framewidth ); + this.position = (int)( ( 720f - ( this.frameheight * this.ratio1 ) ) / 2f ); + this.i1 = (int)( this.framewidth * 0.23046875 ); + this.i2 = (int)( this.framewidth * 0.44140625 ); + this.rec = new Rectangle( 0, 0, this.i1, (int)this.frameheight ); + this.rec2 = new Rectangle( this.i1, 0, this.i2, (int)this.frameheight ); + this.rec3 = new Rectangle( this.i1 + this.i2, 0, ( ( (int)this.framewidth ) - this.i1 ) - this.i2, (int)this.frameheight ); + this.tx描画用.vc拡大縮小倍率.X = this.ratio1; + this.tx描画用.vc拡大縮小倍率.Y = this.ratio1; + } + + + if( this.framewidth > 420 ) + { + f拡大率x = 420f / ( (float)this.framewidth ); + } + else + { + f拡大率x = 1f; + } + if( this.frameheight > 580 ) + { + f拡大率y = 580f / ( (float)this.frameheight ); + } + else + { + f拡大率y = 1f; + } + if( f拡大率x > f拡大率y ) + { + f拡大率x = f拡大率y; + } + else + { + f拡大率y= f拡大率x; + } - #region[ リサイズ処理 ] - if (fAVIアスペクト比 < 1.77f) + this.smallvc = new Vector3( f拡大率x, f拡大率y, 1f ); + this.vclip = new Vector3( 1.42f, 1.42f, 1f ); + //this.rAVI.avi.Run(); + } + } + else + { + this.rAVI = rAVI; + this.n開始サイズW = n開始サイズW; + this.n開始サイズH = n開始サイズH; + this.n終了サイズW = n終了サイズW; + this.n終了サイズH = n終了サイズH; + this.n画像側開始位置X = n画像側開始位置X; + this.n画像側開始位置Y = n画像側開始位置Y; + this.n画像側終了位置X = n画像側終了位置X; + this.n画像側終了位置Y = n画像側終了位置Y; + this.n表示側開始位置X = n表示側開始位置X; + this.n表示側開始位置Y = n表示側開始位置Y; + this.n表示側終了位置X = n表示側終了位置X; + this.n表示側終了位置Y = n表示側終了位置Y; + this.n総移動時間ms = n総移動時間ms; + this.n移動開始時刻ms = ( n移動開始時刻ms != -1 ) ? n移動開始時刻ms : CSound管理.rc演奏用タイマ.n現在時刻; + this.n前回表示したフレーム番号 = -1; + if( ( this.rAVI != null ) && ( this.rAVI.avi != null ) ) { - //旧企画クリップだった場合 - this.ratio1 = 720f / ((float)this.frameheight); - this.position = (int)((1280f - (this.framewidth * this.ratio1)) / 2f); - int num = (int)(this.framewidth * this.ratio1); - if (num <= 565) + float f拡大率x; + float f拡大率y; + this.framewidth = this.rAVI.avi.nフレーム幅; + this.frameheight = this.rAVI.avi.nフレーム高さ; + if( this.tx描画用 == null ) + { + this.tx描画用 = new CTexture( CDTXMania.app.Device, (int)this.framewidth, (int)this.frameheight, CDTXMania.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.Managed ); + } + if( fClipアスペクト比 < 1.77f ) { - this.position = 295 + ((int)((565f - (this.framewidth * this.ratio1)) / 2f)); - this.i1 = 0; - this.i2 = (int)this.framewidth; - this.rec = new Rectangle(0, 0, 0, 0); - this.rec3 = new Rectangle(0, 0, 0, 0); - this.rec2 = new Rectangle(0, 0, (int)this.framewidth, (int)this.frameheight); + //旧規格クリップだった場合 + this.ratio1 = 720.0f / this.frameheight; + this.position = (int)( ( 1280.0f - ( this.framewidth * this.ratio1 ) ) / 2.0f ); + int num = (int)( this.framewidth * this.ratio1 ); + if( num <= 565 ) + { + this.position = 295 + ( (int)( ( 565f - ( this.framewidth * this.ratio1 ) ) / 2f ) ); + this.i1 = 0; + this.i2 = (int)this.framewidth; + this.rec = new Rectangle(0, 0, 0, 0); + this.rec3 = new Rectangle(0, 0, 0, 0); + this.rec2 = new Rectangle(0, 0, (int)this.framewidth, (int)this.frameheight); + } + else + { + this.position = 295 - ((int)(((this.framewidth * this.ratio1) - 565f) / 2f)); + this.i1 = (int)(((float)(295 - this.position)) / this.ratio1); + this.i2 = (int)((565f / ((float)num)) * this.framewidth); + this.rec = new Rectangle(0, 0, this.i1, (int)this.frameheight); + this.rec3 = new Rectangle(this.i1 + this.i2, 0, (((int)this.framewidth) - this.i1) - this.i2, (int)this.frameheight); + this.rec2 = new Rectangle(this.i1, 0, this.i2, (int)this.frameheight); + } + this.tx描画用.vc拡大縮小倍率.X = this.ratio1; + this.tx描画用.vc拡大縮小倍率.Y = this.ratio1; } else { - this.position = 295 - ((int)(((this.framewidth * this.ratio1) - 565f) / 2f)); - this.i1 = (int)(((float)(295 - this.position)) / this.ratio1); - this.i2 = (int)((565f / ((float)num)) * this.framewidth); + //ワイドクリップの処理 + this.ratio1 = 1280f / ((float)this.framewidth); + this.position = (int)((720f - (this.frameheight * this.ratio1)) / 2f); + this.i1 = (int)(this.framewidth * 0.23046875); + this.i2 = (int)(this.framewidth * 0.44140625); this.rec = new Rectangle(0, 0, this.i1, (int)this.frameheight); - this.rec3 = new Rectangle(this.i1 + this.i2, 0, (((int)this.framewidth) - this.i1) - this.i2, (int)this.frameheight); this.rec2 = new Rectangle(this.i1, 0, this.i2, (int)this.frameheight); + this.rec3 = new Rectangle(this.i1 + this.i2, 0, (((int)this.framewidth) - this.i1) - this.i2, (int)this.frameheight); + this.tx描画用.vc拡大縮小倍率.X = this.ratio1; + this.tx描画用.vc拡大縮小倍率.Y = this.ratio1; } - this.tx描画用.vc拡大縮小倍率.X = this.ratio1; - this.tx描画用.vc拡大縮小倍率.Y = this.ratio1; - } - else - { - //ワイドクリップの処理 - this.ratio1 = 1280f / ((float)this.framewidth); - this.position = (int)((720f - (this.frameheight * this.ratio1)) / 2f); - this.i1 = (int)(this.framewidth * 0.23046875); - this.i2 = (int)(this.framewidth * 0.44140625); - this.rec = new Rectangle(0, 0, this.i1, (int)this.frameheight); - this.rec2 = new Rectangle(this.i1, 0, this.i2, (int)this.frameheight); - this.rec3 = new Rectangle(this.i1 + this.i2, 0, (((int)this.framewidth) - this.i1) - this.i2, (int)this.frameheight); - this.tx描画用.vc拡大縮小倍率.X = this.ratio1; - this.tx描画用.vc拡大縮小倍率.Y = this.ratio1; - } - if (this.framewidth > 420) - { - f拡大率x = 420f / ((float)this.framewidth); - } - else - { - f拡大率x = 1f; - } - if (this.frameheight > 580) - { - f拡大率y = 580f / ((float)this.frameheight); - } - else - { - f拡大率y = 1f; - } - if (f拡大率x > f拡大率y) - { - f拡大率x = f拡大率y; - } - else - { - f拡大率y = f拡大率x; - } - - this.smallvc = new Vector3(f拡大率x, f拡大率y, 1f); - #endregion - } + if (this.framewidth > 420) + { + f拡大率x = 420f / ((float)this.framewidth); + } + else + { + f拡大率x = 1f; + } + if (this.frameheight > 580) + { + f拡大率y = 580f / ((float)this.frameheight); + } + else + { + f拡大率y = 1f; + } + if (f拡大率x > f拡大率y) + { + f拡大率x = f拡大率y; + } + else + { + f拡大率y = f拡大率x; + } - if (fAVIアスペクト比 > 1.77f && this.dsBGV != null && this.dsBGV.dshow != null) - { - this.dsBGV.dshow.t再生開始(); - this.bDShowクリップを再生している = true; + this.smallvc = new Vector3(f拡大率x, f拡大率y, 1f); + this.vclip = new Vector3(1.42f, 1.42f, 1f); + } } } + } public void SkipStart(int n移動開始時刻ms) { @@ -352,7 +423,7 @@ public override void OnManagedリソースの作成() { this.txクリップパネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_ClipPanelC.png")); } - else if (CDTXMania.ConfigIni.bGraph有効 && CDTXMania.ConfigIni.bDrums有効) + else if (CDTXMania.ConfigIni.bGraph有効.Drums && CDTXMania.ConfigIni.bDrums有効) { this.txクリップパネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_ClipPanelB.png")); } @@ -368,18 +439,18 @@ public override void OnManagedリソースの作成() this.stフィルイン[i].ct進行 = new CCounter(0, 30, 30, CDTXMania.Timer); this.stフィルイン[i].b使用中 = false; } - //this.txフィルインエフェクト = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Fillin Effect.png")); + this.txフィルインエフェクト = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Fillin Effect.png" ) ); - this.txフィルインエフェクト = new CTexture[ 31 ]; - for( int fill = 0; fill < 31; fill++ ) - { - this.txフィルインエフェクト[ fill ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\StageEffect\7_StageEffect_" + fill.ToString() + ".png" ) ); - if( this.txフィルインエフェクト[ fill ] == null ) - continue; + //this.txフィルインエフェクト = new CTexture[ 31 ]; + //for( int fill = 0; fill < 31; fill++ ) + //{ + // this.txフィルインエフェクト[ fill ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\StageEffect\7_StageEffect_" + fill.ToString() + ".png" ) ); + // if( this.txフィルインエフェクト[ fill ] == null ) + // continue; - this.txフィルインエフェクト[ fill ].b加算合成 = true; - this.txフィルインエフェクト[ fill ].vc拡大縮小倍率 = new Vector3( 2.0f, 2.0f, 1.0f ); - } + // this.txフィルインエフェクト[ fill ].b加算合成 = true; + // this.txフィルインエフェクト[ fill ].vc拡大縮小倍率 = new Vector3( 2.0f, 2.0f, 1.0f ); + //} base.OnManagedリソースの作成(); } @@ -413,11 +484,11 @@ public override void OnManagedリソースの解放() //テクスチャ 17枚 //CDTXMania.tテクスチャの解放(ref this.txドラム); CDTXMania.tテクスチャの解放(ref this.txクリップパネル); - //CDTXMania.tテクスチャの解放( ref this.txフィルインエフェクト ); - for( int ar = 0; ar < 31; ar++ ) - { - CDTXMania.tテクスチャの解放( ref this.txフィルインエフェクト[ ar ] ); - } + CDTXMania.tテクスチャの解放( ref this.txフィルインエフェクト ); + //for( int ar = 0; ar < 31; ar++ ) + //{ + // CDTXMania.tテクスチャの解放( ref this.txフィルインエフェクト[ ar ] ); + //} base.OnManagedリソースの解放(); } } @@ -461,51 +532,44 @@ public unsafe int t進行描画(int x, int y) #region[ムービーのフレーム作成処理] if ((!base.b活性化してない)) { - if (((this.bFullScreen || this.bWindowMode) && (this.tx描画用 != null)) && (this.dsBGV != null || this.rAVI != null)) //クリップ無し曲での進入防止。 + if( ( ( this.tx描画用 != null )) && ( this.dsBGV != null || this.rAVI != null ) ) //クリップ無し曲での進入防止。 { Rectangle rectangle; Rectangle rectangle2; - int time = (int)((CSound管理.rc演奏用タイマ.n現在時刻 - this.n移動開始時刻ms) * (((double)CDTXMania.ConfigIni.n演奏速度) / 20.0)); - int frameNoFromTime = 0; - #region[ frameNoFromTime ] - if (CDTXMania.ConfigIni.bDirectShowMode == true && (this.dsBGV != null)) - { - if (this.fAVIアスペクト比 > 1.77f) - { - this.dsBGV.dshow.MediaSeeking.GetPositions(out this.lDshowPosition, out this.lStopPosition); - frameNoFromTime = (int)lDshowPosition; - } - else - { - frameNoFromTime = this.rAVI.avi.GetFrameNoFromTime(time); - } - } - else if (this.rAVI != null) + int time = (int)( ( CSound管理.rc演奏用タイマ.n現在時刻 - this.n移動開始時刻ms ) * ( ( (double)CDTXMania.ConfigIni.n演奏速度 ) / 20.0 ) ); + int frameNoFromTime = 0; + if( this.bUseMRenderer ) { - frameNoFromTime = this.rAVI.avi.GetFrameNoFromTime(time); + this.dsBGV.dshow.MediaSeeking.GetPositions( out this.lDshowPosition, out this.lStopPosition ); + frameNoFromTime = (int)lDshowPosition; } + else if( this.bUseCAviDS ) + frameNoFromTime = time; + else + frameNoFromTime = this.rAVI.avi.GetFrameNoFromTime( time ); #endregion - if ((this.n総移動時間ms != 0) && (this.n総移動時間ms < time)) + if( ( this.n総移動時間ms != 0 ) && ( this.n総移動時間ms < time ) ) { this.n総移動時間ms = 0; this.n移動開始時刻ms = -1L; } - if ((this.n総移動時間ms == 0) && this.rAVI.avi != null ? (frameNoFromTime >= this.rAVI.avi.GetMaxFrameCount()) : false) + if((((this.n前回表示したフレーム番号 != frameNoFromTime) || !this.bフレームを作成した)) && ( fClipアスペクト比 < 1.77f || ( !this.bUseMRenderer ) )) { - this.n移動開始時刻ms = -1L; + this.n前回表示したフレーム番号 = frameNoFromTime; + this.bフレームを作成した = true; } - if ((((this.n前回表示したフレーム番号 != frameNoFromTime) || !this.bフレームを作成した)) && (fAVIアスペクト比 < 1.77f || CDTXMania.ConfigIni.bDirectShowMode == false)) + if( !this.bUseMRenderer && !this.bUseCAviDS ) { - this.pBmp = this.rAVI.avi.GetFramePtr(frameNoFromTime); + this.pBmp = this.rAVI.avi.GetFramePtr( frameNoFromTime ); this.n前回表示したフレーム番号 = frameNoFromTime; this.bフレームを作成した = true; } - + //ループ防止 - if (this.lDshowPosition >= this.lStopPosition && CDTXMania.ConfigIni.bDirectShowMode == true && this.dsBGV != null) + if( this.lDshowPosition >= this.lStopPosition && this.bUseMRenderer && this.dsBGV != null ) { this.dsBGV.dshow.MediaSeeking.SetPositions( DsLong.FromInt64((long)(0)), @@ -516,31 +580,30 @@ public unsafe int t進行描画(int x, int y) this.bDShowクリップを再生している = false; } - Size size = new Size((int)this.framewidth, (int)this.frameheight); - Size sz720pサイズ = new Size(1280, 720); - Size sz開始サイズ = new Size(this.n開始サイズW, this.n開始サイズH); - Size sz終了サイズ = new Size(this.n終了サイズW, this.n終了サイズH); - Point location = new Point(this.n画像側開始位置X, this.n画像側終了位置Y); - Point point2 = new Point(this.n画像側終了位置X, this.n画像側終了位置Y); - Point point3 = new Point(this.n表示側開始位置X, this.n表示側開始位置Y); - Point point4 = new Point(this.n表示側終了位置X, this.n表示側終了位置Y); - if (CSound管理.rc演奏用タイマ.n現在時刻 < this.n移動開始時刻ms) + Size size = new Size( (int)this.framewidth, (int)this.frameheight ); + Size sz720pサイズ = new Size( 1280, 720); + Size sz開始サイズ = new Size( this.n開始サイズW, this.n開始サイズH ); + Size sz終了サイズ = new Size( this.n終了サイズW, this.n終了サイズH ); + Point location = new Point( this.n画像側開始位置X, this.n画像側終了位置Y ); + Point point2 = new Point( this.n画像側終了位置X, this.n画像側終了位置Y ); + Point point3 = new Point( this.n表示側開始位置X, this.n表示側開始位置Y ); + Point point4 = new Point( this.n表示側終了位置X, this.n表示側終了位置Y ); + if( CSound管理.rc演奏用タイマ.n現在時刻 < this.n移動開始時刻ms ) { this.n移動開始時刻ms = CSound管理.rc演奏用タイマ.n現在時刻; } - time = (int)((CSound管理.rc演奏用タイマ.n現在時刻 - this.n移動開始時刻ms) * (((double)CDTXMania.ConfigIni.n演奏速度) / 20.0)); - if (this.n総移動時間ms == 0) + if( this.n総移動時間ms == 0 ) { - rectangle = new Rectangle(location, sz開始サイズ); - rectangle2 = new Rectangle(point3, sz開始サイズ); + rectangle = new Rectangle( location, sz開始サイズ ); + rectangle2 = new Rectangle( point3, sz開始サイズ ); } else { - double num5 = ((double)time) / ((double)this.n総移動時間ms); - Size size5 = new Size(sz開始サイズ.Width + ((int)((sz終了サイズ.Width - sz開始サイズ.Width) * num5)), sz開始サイズ.Height + ((int)((sz終了サイズ.Height - sz開始サイズ.Height) * num5))); - rectangle = new Rectangle((int)((point2.X - location.X) * num5), (int)((point2.Y - location.Y) * num5), ((int)((point2.X - location.X) * num5)) + size5.Width, ((int)((point2.Y - location.Y) * num5)) + size5.Height); - rectangle2 = new Rectangle((int)((point4.X - point3.X) * num5), (int)((point4.Y - point3.Y) * num5), ((int)((point4.X - point3.X) * num5)) + size5.Width, ((int)((point4.Y - point3.Y) * num5)) + size5.Height); - if (rectangle.X < 0) + double db経過時間倍率 = ( (double)time ) / ( (double)this.n総移動時間ms ); + Size size5 = new Size( sz開始サイズ.Width + ( (int)( ( sz終了サイズ.Width - sz開始サイズ.Width ) * db経過時間倍率 ) ), sz開始サイズ.Height + ( (int)( ( sz終了サイズ.Height - sz開始サイズ.Height ) * db経過時間倍率 ) ) ); + rectangle = new Rectangle( (int)( (point2.X - location.X ) * db経過時間倍率 ), (int)( ( point2.Y - location.Y ) * db経過時間倍率 ), ( (int)( ( point2.X - location.X ) * db経過時間倍率 ) ) + size5.Width, ( (int)((point2.Y - location.Y) * db経過時間倍率 ) ) + size5.Height ); + rectangle2 = new Rectangle( (int)( (point4.X - point3.X ) * db経過時間倍率 ), (int)( ( point4.Y - point3.Y ) * db経過時間倍率 ), ( (int)( (point4.X - point3.X ) * db経過時間倍率 ) ) + size5.Width, ( (int)( ( point4.Y - point3.Y ) * db経過時間倍率 ) ) + size5.Height ); + if( rectangle.X < 0 ) { int num6 = -rectangle.X; rectangle2.X += num6; @@ -548,7 +611,7 @@ public unsafe int t進行描画(int x, int y) rectangle.X = 0; rectangle.Width -= num6; } - if (rectangle.Y < 0) + if( rectangle.Y < 0 ) { int num7 = -rectangle.Y; rectangle2.Y += num7; @@ -556,19 +619,19 @@ public unsafe int t進行描画(int x, int y) rectangle.Y = 0; rectangle.Height -= num7; } - if (rectangle.Right > size.Width) + if( rectangle.Right > size.Width ) { int num8 = rectangle.Right - size.Width; rectangle2.Width -= num8; rectangle.Width -= num8; } - if (rectangle.Bottom > size.Height) + if( rectangle.Bottom > size.Height ) { int num9 = rectangle.Bottom - size.Height; rectangle2.Height -= num9; rectangle.Height -= num9; } - if (rectangle2.X < 0) + if( rectangle2.X < 0 ) { int num10 = -rectangle2.X; rectangle.X += num10; @@ -576,7 +639,7 @@ public unsafe int t進行描画(int x, int y) rectangle2.X = 0; rectangle2.Width -= num10; } - if (rectangle2.Y < 0) + if( rectangle2.Y < 0 ) { int num11 = -rectangle2.Y; rectangle.Y += num11; @@ -584,26 +647,80 @@ public unsafe int t進行描画(int x, int y) rectangle2.Y = 0; rectangle2.Height -= num11; } - if (rectangle2.Right > sz720pサイズ.Width) + if( rectangle2.Right > sz720pサイズ.Width ) { int num12 = rectangle2.Right - sz720pサイズ.Width; rectangle.Width -= num12; rectangle2.Width -= num12; } - if (rectangle2.Bottom > sz720pサイズ.Height) + if( rectangle2.Bottom > sz720pサイズ.Height ) { int num13 = rectangle2.Bottom - sz720pサイズ.Height; rectangle.Height -= num13; rectangle2.Height -= num13; } } - if ((this.tx描画用 != null) && (this.n総移動時間ms != -1) && CDTXMania.ConfigIni.bDirectShowMode == false) + + + if( this.bUseMRenderer ) + { + if( fClipアスペクト比 > 1.77f && ( this.bDShowクリップを再生している == true ) && this.dsBGV.dshow != null ) + { + #region[ ワイドクリップ ] + this.dsBGV.dshow.t現時点における最新のスナップイメージをTextureに転写する( this.tx描画用 ); + + if( this.bFullScreen ) + { + if( this.dsBGV.dshow.b上下反転 ) + this.tx描画用.t2D上下反転描画( CDTXMania.app.Device, this.position, y ); + else + this.tx描画用.t2D描画( CDTXMania.app.Device, x, y ); + } + #endregion + } + } + else if( this.bUseCAviDS ) + { + if( ( this.tx描画用 != null ) && ( this.n総移動時間ms != -1 ) ) + { + #region[ フレームの生成 ] + //this.rAVI.avi.tGetBitmap( CDTXMania.app.Device, this.tx描画用, time ); + #endregion + + if( this.bFullScreen ) + { + #region[ 動画の描画 ] + if( fClipアスペクト比 > 1.77f ) + { + this.tx描画用.t2D上下反転描画( CDTXMania.app.Device, this.position, 0 ); + } + else + { + if( CDTXMania.ConfigIni.bDrums有効 ) + { + this.tx描画用.vc拡大縮小倍率 = this.vclip; + //this.tx描画用.t2D描画( CDTXMania.app.Device, 882, 0 ); + this.tx描画用.t2D上下反転描画( CDTXMania.app.Device, 882, 0 ); + } + else if( CDTXMania.ConfigIni.bGuitar有効 ) + { + this.tx描画用.vc拡大縮小倍率 = new Vector3( 1f, 1f, 1f ); + this.PositionG = (int)( ( 1280f - (float)( this.framewidth ) ) / 2f); + //this.tx描画用.t2D描画( CDTXMania.app.Device, this.PositionG, 0 ); + this.tx描画用.t2D上下反転描画( CDTXMania.app.Device, this.PositionG, 0); + } + } + #endregion + } + } + } + else { #region[ 通常の動画生成&再生処理 ] - if (this.bフレームを作成した && (this.pBmp != IntPtr.Zero)) + if( this.bフレームを作成した && ( this.pBmp != IntPtr.Zero ) ) { #region[ フレームの生成 ] - DataRectangle rectangle3 = this.tx描画用.texture.LockRectangle(0, LockFlags.None); + DataRectangle rectangle3 = this.tx描画用.texture.LockRectangle( 0, LockFlags.None ); DataStream data = rectangle3.Data; int num14 = rectangle3.Pitch / this.tx描画用.szテクスチャサイズ.Width; BitmapUtil.BITMAPINFOHEADER* pBITMAPINFOHEADER = (BitmapUtil.BITMAPINFOHEADER*)this.pBmp.ToPointer(); @@ -612,11 +729,11 @@ public unsafe int t進行描画(int x, int y) switch (num14) { case 2: - this.rAVI.avi.tBitmap24ToGraphicsStreamR5G6B5(pBITMAPINFOHEADER, data, this.tx描画用.szテクスチャサイズ.Width, this.tx描画用.szテクスチャサイズ.Height); + this.rAVI.avi.tBitmap24ToGraphicsStreamR5G6B5( pBITMAPINFOHEADER, data, this.tx描画用.szテクスチャサイズ.Width, this.tx描画用.szテクスチャサイズ.Height ); break; case 4: - this.rAVI.avi.tBitmap24ToGraphicsStreamX8R8G8B8(pBITMAPINFOHEADER, data, this.tx描画用.szテクスチャサイズ.Width, this.tx描画用.szテクスチャサイズ.Height); + this.rAVI.avi.tBitmap24ToGraphicsStreamX8R8G8B8( pBITMAPINFOHEADER, data, this.tx描画用.szテクスチャサイズ.Width, this.tx描画用.szテクスチャサイズ.Height ); break; } } @@ -624,87 +741,26 @@ public unsafe int t進行描画(int x, int y) this.bフレームを作成した = false; #endregion } - if (this.bFullScreen) + if( this.bFullScreen ) { #region[ 動画の描画 ] - if (fAVIアスペクト比 > 1.77f) + if( fClipアスペクト比 > 1.77f ) { - this.tx描画用.t2D描画(CDTXMania.app.Device, this.position, 0); - this.tx描画用.t2D描画(CDTXMania.app.Device, 0, this.position); + this.tx描画用.t2D描画( CDTXMania.app.Device, this.position, 0 ); + this.tx描画用.t2D描画( CDTXMania.app.Device, 0, this.position ); } else { - if (CDTXMania.ConfigIni.bDrums有効) + if( CDTXMania.ConfigIni.bDrums有効 ) { this.tx描画用.vc拡大縮小倍率 = this.vclip; this.tx描画用.t2D描画(CDTXMania.app.Device, 882, 0); } - else if (CDTXMania.ConfigIni.bGuitar有効) - { - this.tx描画用.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f); - this.PositionG = (int)((1280f - (float)(this.framewidth)) / 2f); - this.tx描画用.t2D描画(CDTXMania.app.Device, this.PositionG, 0); - } - } - #endregion - } - #endregion - } - else if ((this.tx描画用 != null) && CDTXMania.ConfigIni.bDirectShowMode == true) - { - #region[ DirectShowMode ] - if (fAVIアスペクト比 > 1.77f && (this.bDShowクリップを再生している == true) && this.dsBGV.dshow != null) - { - #region[ ワイドクリップ ] - //this.rAVI.avi.Dispose(); //2013.06.26.kairera0467 DShow時にAVIをメモリから外すことで軽くしたいが、エラーを吐くため保留。 - this.dsBGV.dshow.t現時点における最新のスナップイメージをTextureに転写する(this.tx描画用); - - if (this.bFullScreen) - { - if (this.dsBGV.dshow.b上下反転) - this.tx描画用.t2D上下反転描画(CDTXMania.app.Device, this.position, y); - else - this.tx描画用.t2D描画(CDTXMania.app.Device, x, y); - } - #endregion - } - else if (fAVIアスペクト比 < 1.77f) - { - #region[ 旧規格クリップ(DShow未対応) ] - if (this.bフレームを作成した && (this.pBmp != IntPtr.Zero)) - { - DataRectangle rectangle3 = this.tx描画用.texture.LockRectangle(0, LockFlags.None); - DataStream data = rectangle3.Data; - int num14 = rectangle3.Pitch / this.tx描画用.szテクスチャサイズ.Width; - BitmapUtil.BITMAPINFOHEADER* pBITMAPINFOHEADER = (BitmapUtil.BITMAPINFOHEADER*)this.pBmp.ToPointer(); - if (pBITMAPINFOHEADER->biBitCount == 0x18) - { - switch (num14) - { - case 2: - this.rAVI.avi.tBitmap24ToGraphicsStreamR5G6B5(pBITMAPINFOHEADER, data, this.tx描画用.szテクスチャサイズ.Width, this.tx描画用.szテクスチャサイズ.Height); - break; - - case 4: - this.rAVI.avi.tBitmap24ToGraphicsStreamX8R8G8B8(pBITMAPINFOHEADER, data, this.tx描画用.szテクスチャサイズ.Width, this.tx描画用.szテクスチャサイズ.Height); - break; - } - } - this.tx描画用.texture.UnlockRectangle(0); - this.bフレームを作成した = false; - this.tx描画用.vc拡大縮小倍率 = this.vclip; - } - if (this.bFullScreen) - { - if (CDTXMania.ConfigIni.bDrums有効) - { - this.tx描画用.t2D描画(CDTXMania.app.Device, 882, 0); - } - else if (CDTXMania.ConfigIni.bGuitar有効) + else if( CDTXMania.ConfigIni.bGuitar有効 ) { - this.tx描画用.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f); - this.PositionG = (int)((1280f - (float)(this.framewidth)) / 2f); - this.tx描画用.t2D描画(CDTXMania.app.Device, this.PositionG, 0); + this.tx描画用.vc拡大縮小倍率 = new Vector3( 1f, 1f, 1f ); + this.PositionG = (int)( ( 1280f - (float)( this.framewidth ) ) / 2f ); + this.tx描画用.t2D描画( CDTXMania.app.Device, this.PositionG, 0 ); } } #endregion @@ -738,7 +794,7 @@ public unsafe int t進行描画(int x, int y) this.stフィルイン[ i ].b使用中 = false; } //if ( this.txフィルインエフェクト != null ) - //CStage演奏ドラム画面 stageDrum = CDTXMania.stage演奏ドラム画面; + CStage演奏ドラム画面 stageDrum = CDTXMania.stage演奏ドラム画面; //CStage演奏ギター画面 stageGuitar = CDTXMania.stage演奏ギター画面; //if( ( CDTXMania.ConfigIni.bDrums有効 ? stageDrum.txボーナスエフェクト : stageGuitar.txボーナスエフェクト ) != null ) @@ -749,17 +805,15 @@ public unsafe int t進行描画(int x, int y) //this.txフィルインエフェクト.t2D描画(CDTXMania.app.Device, 0, -2, new Rectangle(0, 0 + (360 * numf), 640, 360)); if( CDTXMania.ConfigIni.bDrums有効 ) { - //stageDrum.txボーナスエフェクト.vc拡大縮小倍率 = new Vector3( 2.0f, 2.0f, 1.0f ); - //stageDrum.txボーナスエフェクト.b加算合成 = true; - //stageDrum.txボーナスエフェクト.t2D描画( CDTXMania.app.Device, 0, -2, new Rectangle(0, 0 + ( 360 * numf ), 640, 360 )) ; + stageDrum.txボーナスエフェクト.vc拡大縮小倍率 = new Vector3( 2.0f, 2.0f, 1.0f ); + stageDrum.txボーナスエフェクト.b加算合成 = true; + stageDrum.txボーナスエフェクト.t2D描画( CDTXMania.app.Device, 0, -2, new Rectangle(0, 0 + ( 360 * numf ), 640, 360 )) ; try { - if( this.txフィルインエフェクト[ this.stフィルイン[ i ].ct進行.n現在の値 ] != null ) - this.txフィルインエフェクト[ this.stフィルイン[ i ].ct進行.n現在の値 ].t2D描画( CDTXMania.app.Device, 0, 0 ); + //if( this.txフィルインエフェクト[ this.stフィルイン[ i ].ct進行.n現在の値 ] != null ) + // this.txフィルインエフェクト[ this.stフィルイン[ i ].ct進行.n現在の値 ].t2D描画( CDTXMania.app.Device, 0, 0 ); } - #pragma warning disable 0168 // variable declared but not used. - catch ( Exception ex) - #pragma warning restore 0168 // variable declared but not used. + catch( Exception ex ) { } } @@ -772,207 +826,187 @@ public unsafe int t進行描画(int x, int y) if (CDTXMania.ConfigIni.bShowMusicInfo) this.actPanel.t進行描画(); - if ((((this.n総移動時間ms != -1L) && (((this.rAVI != null)) && (this.rAVI.avi != null)) || (this.dsBGV != null && this.dsBGV.dshow != null))) && (this.bWindowMode) && this.tx描画用 != null && (CDTXMania.ConfigIni.bAVI有効)) + if( ( ( this.bWindowMode ) && this.tx描画用 != null && ( CDTXMania.ConfigIni.bAVI有効 ) ) ) { this.vector = this.tx描画用.vc拡大縮小倍率; this.tx描画用.vc拡大縮小倍率 = this.smallvc; this.tx描画用.n透明度 = 0xff; - #region[ スキルメーター有効 ] - if (CDTXMania.ConfigIni.bGraph有効 && CDTXMania.ConfigIni.bDrums有効) - { - this.n本体X = 10; - this.n本体Y = 300; - if (this.fAVIアスペクト比 > 0.96f) - { - this.ratio2 = 260f / ((float)this.framewidth); - this.position2 = 20 + this.n本体Y + (int)((270f - (this.frameheight * this.ratio2)) / 2f); - } - else + if( CDTXMania.ConfigIni.bDrums有効 ) + { + if( CDTXMania.ConfigIni.bGraph有効.Drums ) { - this.ratio2 = 270f / ((float)this.frameheight); - this.position2 = 5 + this.n本体X + (int)((260 - (this.framewidth * this.ratio2)) / 2f); - } - if (this.txクリップパネル != null) - this.txクリップパネル.t2D描画(CDTXMania.app.Device, this.n本体X, this.n本体Y); + #region[ スキルメーター有効 ] + this.n本体X = 2; + this.n本体Y = 402; - this.smallvc = new Vector3(this.ratio2, this.ratio2, 1f); + if( this.fClipアスペクト比 > 0.96f ) + { + this.ratio2 = 260f / ( (float)this.framewidth ); + this.position2 = 20 + this.n本体Y + (int)( (270f - ( this.frameheight * this.ratio2 ) ) / 2f ); + } + else + { + this.ratio2 = 270f / ( (float)this.frameheight ); + this.position2 = 5 + this.n本体X + (int)( ( 260 - ( this.framewidth * this.ratio2 ) ) / 2f ); + } + if( this.txクリップパネル != null ) + this.txクリップパネル.t2D描画( CDTXMania.app.Device, this.n本体X, this.n本体Y ); - if (CDTXMania.ConfigIni.bDirectShowMode) - { - if (this.dsBGV != null && this.bDShowクリップを再生している) + this.smallvc = new Vector3( this.ratio2, this.ratio2, 1f ); + + if( this.bUseMRenderer ) { - this.dsBGV.dshow.t現時点における最新のスナップイメージをTextureに転写する(this.tx描画用); - if (this.dsBGV.dshow.b上下反転) - { - this.tx描画用.t2D上下反転描画(CDTXMania.app.Device, 5 + this.n本体X, this.position2); - } - else if (this.dsBGV != null && CDTXMania.ConfigIni.bDirectShowMode == true) + if( this.dsBGV != null && this.bDShowクリップを再生している ) { - this.tx描画用.t2D描画(CDTXMania.app.Device, 5 + this.n本体X, this.position2); + this.dsBGV.dshow.t現時点における最新のスナップイメージをTextureに転写する( this.tx描画用 ); + if( this.dsBGV.dshow.b上下反転 ) + this.tx描画用.t2D上下反転描画( CDTXMania.app.Device, 5 + this.n本体X, this.position2 ); + else if( this.dsBGV != null ) + this.tx描画用.t2D描画( CDTXMania.app.Device, 5 + this.n本体X, this.position2 ); } } - else if (this.n総移動時間ms != -1 && this.fAVIアスペクト比 < 0.96f) + else { - this.tx描画用.t2D描画(CDTXMania.app.Device, this.position2, 20 + this.n本体Y); + if( this.n総移動時間ms != -1 && this.rAVI != null ) + { + if( this.fClipアスペクト比 < 0.96f ) + this.tx描画用.t2D描画( CDTXMania.app.Device, this.position2, 20 + this.n本体Y ); + else + this.tx描画用.t2D描画( CDTXMania.app.Device, 5 + this.n本体X, this.position2 ); + } } } + #endregion else { - if (this.fAVIアスペクト比 < 0.96f) + #region[ スキルメーター無効 ] + this.n本体X = 854; + this.n本体Y = 142; + + if( this.fClipアスペクト比 > 1.77f ) { - this.tx描画用.t2D描画(CDTXMania.app.Device, this.position2, 20 + this.n本体Y); + this.ratio2 = 416f / ((float)this.framewidth); + this.position2 = 30 + this.n本体Y + (int)((234f - (this.frameheight * this.ratio2)) / 2f); } else { - this.tx描画用.t2D描画(CDTXMania.app.Device, 5 + this.n本体X, this.position2); + this.ratio2 = 234f / ((float)this.frameheight); + this.position2 = 5 + this.n本体X + (int)((416f - (this.framewidth * this.ratio2)) / 2f); } - } - } - #endregion - #region[ スキルメーター無効 ] - else if (!CDTXMania.ConfigIni.bGraph有効 && CDTXMania.ConfigIni.bDrums有効) - { - this.n本体X = 854; - this.n本体Y = 142; - - if (this.fAVIアスペクト比 > 1.77f) - { - this.ratio2 = 416f / ((float)this.framewidth); - this.position2 = 30 + this.n本体Y + (int)((234f - (this.frameheight * this.ratio2)) / 2f); - } - else - { - this.ratio2 = 234f / ((float)this.frameheight); - this.position2 = 5 + this.n本体X + (int)((416f - (this.framewidth * this.ratio2)) / 2f); - } - if (this.txクリップパネル != null) - this.txクリップパネル.t2D描画(CDTXMania.app.Device, this.n本体X, this.n本体Y); - this.smallvc = new Vector3(this.ratio2, this.ratio2, 1f); - this.tx描画用.vc拡大縮小倍率 = this.smallvc; - if (CDTXMania.ConfigIni.bDirectShowMode) - { - if (this.dsBGV != null && this.bDShowクリップを再生している) + if( this.txクリップパネル != null ) + this.txクリップパネル.t2D描画( CDTXMania.app.Device, this.n本体X, this.n本体Y ); + this.smallvc = new Vector3( this.ratio2, this.ratio2, 1f ); + this.tx描画用.vc拡大縮小倍率 = this.smallvc; + if( this.bUseMRenderer ) { - this.dsBGV.dshow.t現時点における最新のスナップイメージをTextureに転写する(this.tx描画用); - if (this.dsBGV.dshow.b上下反転) + if( this.dsBGV != null && this.bDShowクリップを再生している ) { - this.tx描画用.t2D上下反転描画(CDTXMania.app.Device, 5 + this.n本体X, this.position2); + this.dsBGV.dshow.t現時点における最新のスナップイメージをTextureに転写する( this.tx描画用 ); + if( this.dsBGV.dshow.b上下反転 ) + this.tx描画用.t2D上下反転描画( CDTXMania.app.Device, 5 + this.n本体X, this.position2 ); + else if( this.dsBGV != null ) + this.tx描画用.t2D描画( CDTXMania.app.Device, 5 + this.n本体X, this.position2 ); } - else if (this.dsBGV != null && CDTXMania.ConfigIni.bDirectShowMode) - { - this.tx描画用.t2D描画(CDTXMania.app.Device, 5 + this.n本体X, this.position2); - } - } - else if (this.n総移動時間ms != -1 && this.fAVIアスペクト比 < 1.77f) - { - this.tx描画用.t2D描画(CDTXMania.app.Device, this.position2, 30 + this.n本体Y); - } - } - else - { - if (this.fAVIアスペクト比 < 1.77f) - { - this.tx描画用.t2D描画(CDTXMania.app.Device, this.position2, 30 + this.n本体Y); } else { - this.tx描画用.t2D描画(CDTXMania.app.Device, 5 + this.n本体X, this.position2); + if( this.n総移動時間ms != -1 && this.rAVI != null ) + { + if( this.fClipアスペクト比 < 1.77f ) + this.tx描画用.t2D描画( CDTXMania.app.Device, this.position2, 30 + this.n本体Y ); + else + this.tx描画用.t2D描画( CDTXMania.app.Device, 5 + this.n本体X, this.position2 ); + } } + #endregion } } - #endregion - #region[ ギター時 ] - if (CDTXMania.ConfigIni.bGuitar有効) + else if( CDTXMania.ConfigIni.bGuitar有効 ) { - + #region[ ギター時 ] #region[ 本体位置 ] this.n本体X = 380; this.n本体Y = 50; - int nグラフX = 267; - if (CDTXMania.ConfigIni.bGraph有効 && !CDTXMania.DTX.bチップがある.Bass) + if( CDTXMania.ConfigIni.bGraph有効.Bass && !CDTXMania.DTX.bチップがある.Bass ) this.n本体X = this.n本体X + nグラフX; - - if (CDTXMania.ConfigIni.bGraph有効 && !CDTXMania.DTX.bチップがある.Guitar) + if( CDTXMania.ConfigIni.bGraph有効.Guitar && !CDTXMania.DTX.bチップがある.Guitar ) this.n本体X = this.n本体X - nグラフX; #endregion - if (this.fAVIアスペクト比 > 1.77f) + if( this.fClipアスペクト比 > 1.77f ) { - this.ratio2 = 460f / ((float)this.framewidth); - this.position2 = 5 + this.n本体Y + (int)((258f - (this.frameheight * this.ratio2)) / 2f); + this.ratio2 = 460f / ( (float)this.framewidth ); + this.position2 = 5 + this.n本体Y + (int)( ( 258f - ( this.frameheight * this.ratio2 ) ) / 2f ); } else { - this.ratio2 = 258f / ((float)this.frameheight); - this.position2 = 30 + this.n本体X + (int)((460f - (this.framewidth * this.ratio2)) / 2f); + this.ratio2 = 258f / ( (float)this.frameheight ); + this.position2 = 30 + this.n本体X + (int)( ( 460f - ( this.framewidth * this.ratio2 ) ) / 2f ); } - if (this.txクリップパネル != null) - this.txクリップパネル.t2D描画(CDTXMania.app.Device, this.n本体X, this.n本体Y); - this.smallvc = new Vector3(this.ratio2, this.ratio2, 1f); + if( this.txクリップパネル != null ) + this.txクリップパネル.t2D描画( CDTXMania.app.Device, this.n本体X, this.n本体Y ); + this.smallvc = new Vector3( this.ratio2, this.ratio2, 1f ); this.tx描画用.vc拡大縮小倍率 = this.smallvc; - if (CDTXMania.ConfigIni.bDirectShowMode) + if( this.bUseMRenderer ) { - if (this.dsBGV != null && this.bDShowクリップを再生している) + if( this.dsBGV != null && this.bDShowクリップを再生している ) { - this.dsBGV.dshow.t現時点における最新のスナップイメージをTextureに転写する(this.tx描画用); - if (this.dsBGV.dshow.b上下反転) - { - this.tx描画用.t2D上下反転描画(CDTXMania.app.Device, 30 + this.n本体X, this.position2); - } - else if (this.dsBGV != null && CDTXMania.ConfigIni.bDirectShowMode == true) - { + this.dsBGV.dshow.t現時点における最新のスナップイメージをTextureに転写する( this.tx描画用 ); + if( this.dsBGV.dshow.b上下反転 ) + this.tx描画用.t2D上下反転描画( CDTXMania.app.Device, 30 + this.n本体X, this.position2 ); + else if( this.dsBGV != null ) this.tx描画用.t2D描画(CDTXMania.app.Device, 30 + this.n本体X, this.position2); - } - } - else - { - this.tx描画用.t2D描画(CDTXMania.app.Device, this.position2, 5 + this.n本体Y); } } else { - if (this.fAVIアスペクト比 < 1.77f) + if( this.rAVI != null ) { - this.tx描画用.t2D描画(CDTXMania.app.Device, this.position2, 5 + this.n本体Y); - } - else - { - this.tx描画用.t2D描画(CDTXMania.app.Device, 30 + this.n本体X, this.position2); + if( this.fClipアスペクト比 < 1.77f ) + this.tx描画用.t2D描画( CDTXMania.app.Device, this.position2, 5 + this.n本体Y ); + else + this.tx描画用.t2D描画( CDTXMania.app.Device, 30 + this.n本体X, this.position2 ); } } + #endregion } - #endregion this.tx描画用.vc拡大縮小倍率 = this.vector; } IInputDevice keyboard = CDTXMania.Input管理.Keyboard; - if (CDTXMania.Pad.b押された(E楽器パート.BASS, Eパッド.Help)) + if( CDTXMania.Pad.b押された( E楽器パート.BASS, Eパッド.Help ) ) { - if (this.b再生トグル == false) + if( this.b再生トグル == false ) { - if (this.dsBGV != null) + if( this.dsBGV != null ) { - if (this.dsBGV.dshow != null) + if( this.dsBGV.dshow != null ) this.dsBGV.dshow.MediaCtrl.Pause(); } - if (this.ds汎用 != null) + if( !this.bUseMRenderer && this.bUseCAviDS ) { - this.ds汎用.MediaCtrl.Pause(); + if( this.rAVI.avi != null ) + { + //this.rAVI.avi.Pause(); + } } this.b再生トグル = true; } - else if (this.b再生トグル == true) + else if( this.b再生トグル == true ) { - if (this.dsBGV != null) + if( this.dsBGV != null ) { - if (this.dsBGV.dshow != null) + if( this.dsBGV.dshow != null ) this.dsBGV.dshow.MediaCtrl.Run(); } - if (this.ds汎用 != null) + if( !this.bUseMRenderer && this.bUseCAviDS ) { - this.ds汎用.MediaCtrl.Run(); + if( this.rAVI.avi != null ) + { + //this.rAVI.avi.Run(); + } } this.b再生トグル = false; } @@ -1024,7 +1058,9 @@ public override int On進行描画() private bool bフレームを作成した; private bool b再生トグル; private bool bDShowクリップを再生している; - public float fAVIアスペクト比; + private bool bUseMRenderer = true; + private bool bUseCAviDS = false; + public float fClipアスペクト比; private uint frameheight; private uint framewidth; private int i1; @@ -1063,7 +1099,8 @@ public override int On進行描画() private CTexture txlanes; private CTexture txクリップパネル; //private CTexture txドラム; - private CTexture[] txフィルインエフェクト; + //private CTexture[] txフィルインエフェクト; + private CTexture txフィルインエフェクト; private CTexture tx描画用; private CTexture tx描画用2; private CTexture txDShow汎用; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217Combo\345\205\261\351\200\232.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217Combo\345\205\261\351\200\232.cs" index 0182950e..cb190f1f 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217Combo\345\205\261\351\200\232.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217Combo\345\205\261\351\200\232.cs" @@ -203,7 +203,7 @@ public class CSTAT public int n現在表示中のCOMBO値; public int n最高COMBO値; public int n残像表示中のCOMBO値; - public long n前回の時刻・ジャンプ用; + public long n前回の時刻_ジャンプ用; } } @@ -232,10 +232,10 @@ public void tコンボリセット処理() // メソッド - protected virtual void tコンボ表示・ドラム(int nCombo値, int nジャンプインデックス) + protected virtual void tコンボ表示_ドラム(int nCombo値, int nジャンプインデックス) { } - protected virtual void tコンボ表示・ドラム(int nCombo値, int nジャンプインデックス, int nX中央位置px, int nY上辺位置px) + protected virtual void tコンボ表示_ドラム(int nCombo値, int nジャンプインデックス, int nX中央位置px, int nY上辺位置px) { #region [ 事前チェック。] @@ -391,13 +391,13 @@ public void tコンボリセット処理() //----------------- #endregion } - protected virtual void tコンボ表示・ギター(int nCombo値, int nジャンプインデックス) + protected virtual void tコンボ表示_ギター(int nCombo値, int nジャンプインデックス) { } - protected virtual void tコンボ表示・ベース(int nCombo値, int nジャンプインデックス) + protected virtual void tコンボ表示_ベース(int nCombo値, int nジャンプインデックス) { } - protected void tコンボ表示・ギター(int nCombo値, int nジャンプインデックス, int nコンボx, int nコンボy) + protected void tコンボ表示_ギター(int nCombo値, int nジャンプインデックス, int nコンボx, int nコンボy) { #region [ 事前チェック。] //----------------- @@ -500,7 +500,7 @@ public void tコンボリセット処理() #endregion } } - protected void tコンボ表示・ベース(int nCombo値, int nジャンプインデックス, int nコンボx, int nコンボy) + protected void tコンボ表示_ベース(int nCombo値, int nジャンプインデックス, int nコンボx, int nコンボy) { #region [ 事前チェック。] //----------------- @@ -622,7 +622,7 @@ public override void On活性化() this.status[i].n現在表示中のCOMBO値 = 0; this.status[i].n残像表示中のCOMBO値 = 0; this.status[i].nジャンプインデックス値 = 99999; - this.status[i].n前回の時刻・ジャンプ用 = -1; + this.status[i].n前回の時刻_ジャンプ用 = -1; this.status[i].nコンボが切れた時刻 = -1; } this.nUnitTime = (float)((60 / CDTXMania.DTX.BPM) / 4) * 10; @@ -704,16 +704,16 @@ public override int On進行描画() //----------------- if (this.status[i].nジャンプインデックス値 < 360) { - if ((this.status[i].n前回の時刻・ジャンプ用 == -1) || (CDTXMania.Timer.n現在時刻 < this.status[i].n前回の時刻・ジャンプ用)) - this.status[i].n前回の時刻・ジャンプ用 = CDTXMania.Timer.n現在時刻; + if ((this.status[i].n前回の時刻_ジャンプ用 == -1) || (CDTXMania.Timer.n現在時刻 < this.status[i].n前回の時刻_ジャンプ用)) + this.status[i].n前回の時刻_ジャンプ用 = CDTXMania.Timer.n現在時刻; const long INTERVAL = 2; - while ((CDTXMania.Timer.n現在時刻 - this.status[i].n前回の時刻・ジャンプ用) >= INTERVAL) + while ((CDTXMania.Timer.n現在時刻 - this.status[i].n前回の時刻_ジャンプ用) >= INTERVAL) { if (this.status[i].nジャンプインデックス値 < 2000) this.status[i].nジャンプインデックス値 += 3; - this.status[i].n前回の時刻・ジャンプ用 += INTERVAL; + this.status[i].n前回の時刻_ジャンプ用 += INTERVAL; } } //----------------- @@ -733,7 +733,7 @@ public override int On進行描画() // モード変更 this.status[i].e現在のモード = EMode.進行表示中; this.status[i].nジャンプインデックス値 = 0; - this.status[i].n前回の時刻・ジャンプ用 = CDTXMania.Timer.n現在時刻; + this.status[i].n前回の時刻_ジャンプ用 = CDTXMania.Timer.n現在時刻; goto Retry; } @@ -758,22 +758,22 @@ public override int On進行描画() if (e今回の状態遷移イベント == EEvent.数値更新) { this.status[i].nジャンプインデックス値 = 0; - this.status[i].n前回の時刻・ジャンプ用 = CDTXMania.Timer.n現在時刻; + this.status[i].n前回の時刻_ジャンプ用 = CDTXMania.Timer.n現在時刻; } this.status[i].n現在表示中のCOMBO値 = this.status[i].nCOMBO値; switch (i) { case 0: - this.tコンボ表示・ドラム(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値); + this.tコンボ表示_ドラム(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値); break; case 1: - this.tコンボ表示・ギター(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値); + this.tコンボ表示_ギター(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値); break; case 2: - this.tコンボ表示・ベース(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値); + this.tコンボ表示_ベース(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値); break; } break; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217RGB\345\205\261\351\200\232.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217RGB\345\205\261\351\200\232.cs" index 3a126feb..8bfe3e65 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217RGB\345\205\261\351\200\232.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217RGB\345\205\261\351\200\232.cs" @@ -7,7 +7,7 @@ namespace DTXMania { internal class CAct演奏RGB共通 : CActivity { - //こっちではほとんどやることなんてないんだけどね・・・・ + //こっちではほとんどやることなんてないんだけどね____ //一応暫定対応として押している状態を取得&発信しているだけ。 // プロパティ diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\202\271\343\202\255\343\203\253\343\203\241\343\203\274\343\202\277\343\203\274.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\202\271\343\202\255\343\203\253\343\203\241\343\203\274\343\202\277\343\203\274.cs" index 3e949531..89eff0c4 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\202\271\343\202\255\343\203\253\343\203\241\343\203\274\343\202\277\343\203\274.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\202\271\343\202\255\343\203\253\343\203\241\343\203\274\343\202\277\343\203\274.cs" @@ -3,6 +3,7 @@ using System.Text; using System.Runtime.InteropServices; using System.Drawing; +using System.Diagnostics; using System.IO; using SlimDX; using FDK; @@ -11,20 +12,27 @@ namespace DTXMania { internal class CAct演奏スキルメーター : CActivity { - - - // #24074 2011.01.23 ikanick グラフの描画 - // 実装内容 - // ・左を現在、右を目標 - // ・基準線(60,70,80,90,100%)を超えると線が黄色くなる(元は白) - // ・目標を超えると現在が光る - // ・オート時には描画しない - // 要望・実装予定 - // ・グラフを波打たせるなどの視覚の向上→実装済 - // 修正等 - // ・画像がないと落ちる→修正済 - - // プロパティ + // グラフ仕様 + // _ギターとベースで同時にグラフを出すことはない。 + // + // _目標のメーター画像 + // →ゴーストがあった + //   _ゴーストに基づいたグラフ(リアルタイム比較) + //  →なかった + //   _ScoreIniの自己ベストのグラフ + // + + private STDGBVALUE nGraphBG_XPos = new STDGBVALUE(); //ドラムにも座標指定があるためDGBVALUEとして扱う。 + private int nGraphBG_YPos = 200; + private int DispHeight = 400; + private int DispWidth = 60; + private CCounter counterYposInImg = null; + private readonly int slices = 10; + private int nGraphUsePart = 0; + private int[] nGraphGauge_XPos = new int[ 2 ]; + private int nPart = 0; + + // プロパティ public double dbグラフ値現在_渡 { @@ -48,445 +56,368 @@ public double dbグラフ値目標_渡 this.dbグラフ値目標 = value; } } - - // コンストラクタ - - public CAct演奏スキルメーター() - { - ST文字位置[] st文字位置Array = new ST文字位置[11]; - ST文字位置 st文字位置 = new ST文字位置(); - st文字位置.ch = '0'; - st文字位置.pt = new Point(210, 0); - st文字位置Array[0] = st文字位置; - ST文字位置 st文字位置2 = new ST文字位置(); - st文字位置2.ch = '1'; - st文字位置2.pt = new Point(223, 0); - st文字位置Array[1] = st文字位置2; - ST文字位置 st文字位置3 = new ST文字位置(); - st文字位置3.ch = '2'; - st文字位置3.pt = new Point(235, 0); - st文字位置Array[2] = st文字位置3; - ST文字位置 st文字位置4 = new ST文字位置(); - st文字位置4.ch = '3'; - st文字位置4.pt = new Point(247, 0); - st文字位置Array[3] = st文字位置4; - ST文字位置 st文字位置5 = new ST文字位置(); - st文字位置5.ch = '4'; - st文字位置5.pt = new Point(259, 0); - st文字位置Array[4] = st文字位置5; - ST文字位置 st文字位置6 = new ST文字位置(); - st文字位置6.ch = '5'; - st文字位置6.pt = new Point(271, 0); - st文字位置Array[5] = st文字位置6; - ST文字位置 st文字位置7 = new ST文字位置(); - st文字位置7.ch = '6'; - st文字位置7.pt = new Point(283, 0); - st文字位置Array[6] = st文字位置7; - ST文字位置 st文字位置8 = new ST文字位置(); - st文字位置8.ch = '7'; - st文字位置8.pt = new Point(295, 0); - st文字位置Array[7] = st文字位置8; - ST文字位置 st文字位置9 = new ST文字位置(); - st文字位置9.ch = '8'; - st文字位置9.pt = new Point(307, 0); - st文字位置Array[8] = st文字位置9; - ST文字位置 st文字位置10 = new ST文字位置(); - st文字位置10.ch = '9'; - st文字位置10.pt = new Point(319, 0); - st文字位置Array[9] = st文字位置10; - ST文字位置 st文字位置11 = new ST文字位置(); - st文字位置11.ch = '.'; - st文字位置11.pt = new Point(331, 0); - st文字位置Array[10] = st文字位置11; - this.st小文字位置 = st文字位置Array; - base.b活性化してない = true; - } - - - // CActivity 実装 - - public override void On活性化() - { - this.n本体X[0] = 900; - this.n本体X[1] = 574; - this.n本体X[2] = 290; - - this.dbグラフ値目標 = 80f; - this.dbグラフ値現在 = 0f; - this.dbグラフ値比較 = 0f; - this.db現在の判定数合計 = 0f; - base.On活性化(); - } - public override void On非活性化() - { - base.On非活性化(); - } - public override void OnManagedリソースの作成() + public int[] n現在のAutoを含まない判定数_渡 { - if (!base.b活性化してない) + get { - this.txグラフ = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Graph_main.png")); - this.tx比較 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Graph_main.png")); - this.txグラフバックパネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Graph_main.png")); - this.tx数字 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Graph_main.png")); - this.txComboBom = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Combobomb.png")); - if (this.txComboBom != null) - this.txComboBom.b加算合成 = true; - base.OnManagedリソースの作成(); + return this.n現在のAutoを含まない判定数; } - } - public override void OnManagedリソースの解放() - { - if (!base.b活性化してない) + set { - CDTXMania.tテクスチャの解放(ref this.txグラフ); - CDTXMania.tテクスチャの解放(ref this.tx比較); - CDTXMania.tテクスチャの解放(ref this.txグラフバックパネル); - CDTXMania.tテクスチャの解放(ref this.tx数字); - CDTXMania.tテクスチャの解放(ref this.txComboBom); - base.OnManagedリソースの解放(); + this.n現在のAutoを含まない判定数 = value; } } - public override int On進行描画() - { - int j = 0; - - if (CDTXMania.ConfigIni.bGuitar有効) - { - if (!CDTXMania.DTX.bチップがある.Bass) - j = 1; - else if (!CDTXMania.DTX.bチップがある.Guitar) - j = 2; - else if (!CDTXMania.ConfigIni.bギターが全部オートプレイである && CDTXMania.ConfigIni.bベースが全部オートプレイである) - j = 1; - else if (CDTXMania.ConfigIni.bギターが全部オートプレイである && !CDTXMania.ConfigIni.bベースが全部オートプレイである) - j = 2; - } - - if (!base.b活性化してない) - { - if (base.b初めての進行描画) - { - this.ct爆発エフェクト = new CCounter(0, 13, 20, CDTXMania.Timer); - base.b初めての進行描画 = false; - } - double db1ノーツごとの達成率 = (double)this.dbグラフ値目標 / CDTXMania.DTX.n可視チップ数[j]; - - if (j == 0) - this.n現在演奏されたノーツ数 = - CDTXMania.stage演奏ドラム画面.nヒット数・Auto含む[j].Perfect + - CDTXMania.stage演奏ドラム画面.nヒット数・Auto含む[j].Great + - CDTXMania.stage演奏ドラム画面.nヒット数・Auto含む[j].Good + - CDTXMania.stage演奏ドラム画面.nヒット数・Auto含む[j].Poor + - CDTXMania.stage演奏ドラム画面.nヒット数・Auto含む[j].Miss; - else - this.n現在演奏されたノーツ数 = - CDTXMania.stage演奏ギター画面.nヒット数・Auto含む[j].Perfect + - CDTXMania.stage演奏ギター画面.nヒット数・Auto含む[j].Great + - CDTXMania.stage演奏ギター画面.nヒット数・Auto含む[j].Good + - CDTXMania.stage演奏ギター画面.nヒット数・Auto含む[j].Poor + - CDTXMania.stage演奏ギター画面.nヒット数・Auto含む[j].Miss; - - CScoreIni.C演奏記録 drums = new CScoreIni.C演奏記録(); - - double rate = (double)n現在演奏されたノーツ数 / (double)CDTXMania.DTX.n可視チップ数[j]; - - if (CDTXMania.ConfigIni.nSkillMode == 0) - { - //int n逆算Perfect = drums.nPerfect数・Auto含まない / this.n現在演奏されたノーツ数; - //int n逆算Great = drums.nGreat数・Auto含まない / this.n現在演奏されたノーツ数; - //this.dbグラフ値比較 = CScoreIni.t旧ゴーストスキルを計算して返す(CDTXMania.DTX.n可視チップ数[j], drums.nPerfect数, drums.nGreat数, drums.nGood数, drums.nPoor数, drums.nMiss数, E楽器パート[j]) * rate; - //this.dbグラフ値比較 = ((this.dbグラフ値目標_渡) / (double)CDTXMania.DTX.n可視チップ数[j]) * rate; - this.dbグラフ値比較 = this.dbグラフ値目標_渡; - } - else if (CDTXMania.ConfigIni.nSkillMode == 1) - { - //this.dbグラフ値比較 = CScoreIni.tゴーストスキルを計算して返す(CDTXMania.DTX.n可視チップ数[j], this.n現在演奏されたノーツ数, drums.n最大コンボ数, E楽器パート[j]); - this.dbグラフ値比較 = (double)(db1ノーツごとの達成率 * n現在演奏されたノーツ数); - } + + // コンストラクタ + public CAct演奏スキルメーター() + { + base.b活性化してない = true; + } - //this.dbグラフ値比較 = (double)(db1ノーツごとの達成率 * n現在演奏されたノーツ数); - // 背景暗幕 - Rectangle rectangle = new Rectangle(900, 0, 380, 720); - if (this.txグラフ != null) - { - this.txグラフバックパネル.t2D描画(CDTXMania.app.Device, this.n本体X[j], 0, rectangle); - this.txグラフバックパネル.t2D描画(CDTXMania.app.Device, 141 + this.n本体X[j], 650 - (int)(this.dbグラフ値現在 * 5.56), new Rectangle(499, 0, 201, (int)(this.dbグラフ値現在 * 5.56))); - } - this.t小文字表示(270 + this.n本体X[j], 658, string.Format("{0,6:##0.00}%", this.dbグラフ値現在)); - if (CDTXMania.ConfigIni.nInfoType == 0) - { - this.tx比較.t2D描画(CDTXMania.app.Device, 170 + this.n本体X[j], 200, new Rectangle(336, 0, 162, 60)); - this.t小文字表示(250 + this.n本体X[j], 224, string.Format("{0,6:##0.00}%", this.dbグラフ値目標)); - if (this.dbグラフ値現在 > this.dbグラフ値目標) - { - this.tx比較.n透明度 = 128; - } - } - else if (CDTXMania.ConfigIni.nInfoType == 1) - { - this.tx比較.t2D描画(CDTXMania.app.Device, 170 + this.n本体X[j], 200, new Rectangle(336, 205, 162, 60)); - this.tx比較.t2D描画(CDTXMania.app.Device, 170 + this.n本体X[j], 280, new Rectangle(336, 265, 162, 60)); - this.tx比較.t2D描画(CDTXMania.app.Device, 170 + this.n本体X[j], 360, new Rectangle(336, 325, 162, 60)); - this.tx比較.t2D描画(CDTXMania.app.Device, 170 + this.n本体X[j], 440, new Rectangle(336, 385, 162, 60)); - this.tx比較.t2D描画(CDTXMania.app.Device, 170 + this.n本体X[j], 520, new Rectangle(336, 445, 162, 60)); + // CActivity 実装 - if (j == 0) - { - this.t小文字表示(250 + this.n本体X[j], 224, string.Format("{0,6:###0}", CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[j].Perfect)); - this.t小文字表示(250 + this.n本体X[j], 304, string.Format("{0,6:###0}", CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[j].Great)); - this.t小文字表示(250 + this.n本体X[j], 384, string.Format("{0,6:###0}", CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[j].Good)); - this.t小文字表示(250 + this.n本体X[j], 464, string.Format("{0,6:###0}", CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[j].Poor)); - this.t小文字表示(250 + this.n本体X[j], 544, string.Format("{0,6:###0}", CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[j].Miss)); - } - else - { - this.t小文字表示(250 + this.n本体X[j], 224, string.Format("{0,6:###0}", CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[j].Perfect)); - this.t小文字表示(250 + this.n本体X[j], 304, string.Format("{0,6:###0}", CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[j].Great)); - this.t小文字表示(250 + this.n本体X[j], 384, string.Format("{0,6:###0}", CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[j].Good)); - this.t小文字表示(250 + this.n本体X[j], 464, string.Format("{0,6:###0}", CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[j].Poor)); - this.t小文字表示(250 + this.n本体X[j], 544, string.Format("{0,6:###0}", CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[j].Miss)); - } - } + public override void On活性化() + { + this.dbグラフ値目標 = 0f; + this.dbグラフ値現在 = 0f; - // 基準線 - rectangle = new Rectangle(78, 0, 60, 3); - if (this.txグラフ != null) - { - //this.txグラフ.n透明度 = 32; - //this.txグラフ.vc拡大縮小倍率 = new Vector3(58f, 1f, 1f); - for (int i = 0; i < 20; i++) - { - //this.txグラフ.t2D描画(CDTXMania.app.Device, 75 + this.n本体X[j], 94 + (int)(29.26 * i), rectangle); - } - //this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, 230f, 1f); - for (int i = 0; i < 2; i++) - { - //this.txグラフ.t2D描画(CDTXMania.app.Device, 75 + this.n本体X[j] + (int)(29.26 * i), 94, rectangle); - //this.txグラフ.t2D描画(CDTXMania.app.Device, 75 + this.n本体X[j] + (int)(29.26 * i), 94, rectangle); - } - } - if (this.txグラフ != null) - { - //this.txグラフ.vc拡大縮小倍率 = new Vector3(38f, 1f, 1f); - } - for (int i = 0; i < 5; i++) - { - // 基準線を越えたら線が黄色くなる - if (this.dbグラフ値現在 >= (100 - i * 10)) + this.n現在のAutoを含まない判定数 = new int[ 6 ]; + + base.On活性化(); + } + public override void On非活性化() + { + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + //this.pfNameFont = new CPrivateFastFont( new FontFamily( "Arial" ), 16, FontStyle.Bold ); + this.txグラフ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Graph_Main.png" ) ); + this.txグラフ_ゲージ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Graph_Gauge.png" ) ); + + //if( this.pfNameFont != null ) + //{ + // if( CDTXMania.ConfigIni.eTargetGhost.Drums == ETargetGhostData.PERFECT ) + // { + // this.txPlayerName = this.t指定された文字テクスチャを生成する( "DJ AUTO" ); + // } + // else if( CDTXMania.ConfigIni.eTargetGhost.Drums == ETargetGhostData.LAST_PLAY ) + // { + // this.txPlayerName = this.t指定された文字テクスチャを生成する( "LAST PLAY" ); + // } + //} + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + CDTXMania.tテクスチャの解放( ref this.txグラフ ); + CDTXMania.tテクスチャの解放( ref this.txグラフ_ゲージ ); + CDTXMania.tテクスチャの解放( ref this.txグラフ値自己ベストライン ); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + if( base.b初めての進行描画 ) + { + //座標などの定義は初回だけにする。 + //2016.03.29 kairera0467 非セッション譜面で、譜面が無いパートでグラフを有効にしている場合、譜面があるパートに一時的にグラフを切り替える。 + // 時間がなくて雑なコードになったため、後日最適化を行う。 + if( CDTXMania.ConfigIni.bDrums有効 ) { - rectangle = new Rectangle(78, 1, 60, 2);//黄色 - if (this.txグラフ != null) - { - //this.txグラフ.n透明度 = 224; - } + this.nPart = 0; + this.nGraphUsePart = 0; } - else + else if( CDTXMania.ConfigIni.bGuitar有効 ) { - rectangle = new Rectangle(78, 4, 60, 2); - if (this.txグラフ != null) + this.nGraphUsePart = ( CDTXMania.ConfigIni.bGraph有効.Guitar == true ) ? 1 : 2; + if( CDTXMania.DTX.bチップがある.Guitar ) + this.nPart = CDTXMania.ConfigIni.bGraph有効.Guitar ? 0 : 1; + else if( !CDTXMania.DTX.bチップがある.Guitar && CDTXMania.ConfigIni.bGraph有効.Guitar ) { - this.txグラフ.n透明度 = 160; + this.nPart = 1; + this.nGraphUsePart = 2; } + + if( !CDTXMania.DTX.bチップがある.Bass && CDTXMania.ConfigIni.bGraph有効.Bass ) + this.nPart = 0; } - if (this.txグラフ != null) + this.nGraphBG_XPos.Drums = 870; + this.nGraphBG_XPos.Guitar = 356; + this.nGraphBG_XPos.Bass = 647; + this.nGraphBG_YPos = this.nGraphUsePart == 0 ? 50 : 110; + //2016.06.24 kairera0467 StatusPanelとSkillMaterの場合はX座標を調整する。 + if( CDTXMania.ConfigIni.nInfoType == 1 ) { - this.txグラフ.t2D描画(CDTXMania.app.Device, 75 + this.n本体X[j], 94 + (int)(58.52 * i), rectangle); - + this.nGraphBG_XPos.Guitar = 629 + 9; + this.nGraphBG_XPos.Bass = 403; } - } - // グラフ - // --現在値 - if (this.dbグラフ値現在_表示 < this.dbグラフ値現在) - { - this.dbグラフ値現在_表示 += (this.dbグラフ値現在 - this.dbグラフ値現在_表示) / 5 + 0.01; - } - if (this.dbグラフ値現在_表示 >= this.dbグラフ値現在) - { - this.dbグラフ値現在_表示 = this.dbグラフ値現在; - } - rectangle = new Rectangle(0, 0, 72, (int)(556f * this.dbグラフ値現在_表示 / 100)); - if (this.txグラフ != null) - { - this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f); - //this.txグラフ.n透明度 = 192; - this.txグラフ.t2D描画(CDTXMania.app.Device, 69 + this.n本体X[j], 650 - (int)(556f * this.dbグラフ値現在_表示 / 100), rectangle); - } - for (int k = 0; k < 32; k++) - { - rectangle = new Rectangle(20, 0, 1, 1); - if (this.txグラフ != null) + + if( CDTXMania.ConfigIni.eTargetGhost[ this.nGraphUsePart ] != ETargetGhostData.NONE ) { - //this.stキラキラ[ k ].ct進行.t進行Loop(); - int num1 = (int)this.stキラキラ[k].x; - //int num2 = this.stキラキラ[ k ].ct進行.n現在の値; - //this.txグラフ.vc拡大縮小倍率 = new Vector3(this.stキラキラ[ k ].fScale, this.stキラキラ[ k ].fScale, this.stキラキラ[ k ].fScale); - //this.txグラフ.n透明度 = 138 - 2 * this.stキラキラ[ k ].Trans; - //if ( num2 < (2.3f * this.dbグラフ値現在_表示) ) + if( CDTXMania.listTargetGhostScoreData[ this.nGraphUsePart ] != null ) { - //this.txグラフ.t2D描画(CDTXMania.app.Device, 860+num1, 318-num2, rectangle); + //this.dbグラフ値目標 = CDTXMania.listTargetGhostScoreData[ this.nGraphUsePart ].db演奏型スキル値; + this.dbグラフ値目標_表示 = CDTXMania.listTargetGhostScoreData[ this.nGraphUsePart ].db演奏型スキル値; } } + + this.nGraphGauge_XPos = new int[] { 3, 205 }; + + base.b初めての進行描画 = false; } - // --現在値_追加エフェクト - if (this.dbグラフ値直前 != this.dbグラフ値現在) + int stYposInImg = 0; + + + + if( this.txグラフ != null ) { - this.stフラッシュ[nグラフフラッシュct].y = 0; - this.stフラッシュ[nグラフフラッシュct].Trans = 650; - nグラフフラッシュct++; - if (nグラフフラッシュct >= 16) - { - nグラフフラッシュct = 0; - } + //背景 + this.txグラフ.vc拡大縮小倍率 = new Vector3( 1f, 1f, 1f ); + this.txグラフ.t2D描画( CDTXMania.app.Device, nGraphBG_XPos[ this.nGraphUsePart ], nGraphBG_YPos, new Rectangle( 2, 2, 251, 584 ) ); + + //自己ベスト数値表示 + this.t達成率文字表示( nGraphBG_XPos[ this.nGraphUsePart ] + 136, nGraphBG_YPos + 501, string.Format( "{0,6:##0.00}" + "%", this.dbグラフ値自己ベスト ) ); } - this.dbグラフ値直前 = this.dbグラフ値現在; - for (int m = 0; m < 16; m++) + //ゲージ現在 + if( this.txグラフ_ゲージ != null ) { - rectangle = new Rectangle(6, 0, 60, 2); - if ((this.stフラッシュ[m].y >= 0) && (this.stフラッシュ[m].y + 3 < (int)(650f * this.dbグラフ値現在_表示 / 100)) && (this.txグラフ != null)) + //ゲージ本体 + int nGaugeSize = (int)( 434.0f * (float)this.dbグラフ値現在 / 100.0f ); + int nPosY = this.nGraphUsePart == 0 ? 527 - nGaugeSize : 587 - nGaugeSize; + this.txグラフ_ゲージ.n透明度 = 255; + this.txグラフ_ゲージ.t2D描画( CDTXMania.app.Device, nGraphBG_XPos[ this.nGraphUsePart ] + 45, nPosY, new Rectangle( 2, 2, 30, nGaugeSize ) ); + + //ゲージ比較 + int nTargetGaugeSize = (int)( 434.0f * ( (float)this.dbグラフ値目標 / 100.0f ) ); + int nTargetGaugePosY = this.nGraphUsePart == 0 ? 527 - nTargetGaugeSize : 587 - nTargetGaugeSize; + int nTargetGaugeRectX = this.dbグラフ値現在 > this.dbグラフ値目標 ? 38 : 74; + this.txグラフ_ゲージ.n透明度 = 255; + this.txグラフ_ゲージ.t2D描画( CDTXMania.app.Device, nGraphBG_XPos[ this.nGraphUsePart ] + 75, nTargetGaugePosY, new Rectangle( nTargetGaugeRectX, 2, 30, nTargetGaugeSize ) ); + if( this.txグラフ != null ) { - //this.txグラフ.n透明度 = this.stフラッシュ[ m ].Trans; - //this.txグラフ.t2D描画(CDTXMania.app.Device, 75 + this.n本体X[j], this.stフラッシュ[ m ].y + (620 - (int)(556f * this.dbグラフ値現在_表示 / 100)), rectangle); - //this.txグラフ.n透明度 = this.stフラッシュ[ m ].Trans; - //this.txグラフ.t2D描画(CDTXMania.app.Device, 75 + this.n本体X[j], this.stフラッシュ[ m ].y + 2 + (620 - (int)(556f * this.dbグラフ値現在_表示 / 100)), rectangle); + //ターゲット達成率数値 + + //ターゲット名 + //現在 + this.txグラフ.t2D描画( CDTXMania.app.Device, nGraphBG_XPos[ this.nGraphUsePart ] + 45, nGraphBG_YPos + 357, new Rectangle( 260, 2, 30, 120 ) ); + //比較対象 + this.txグラフ.t2D描画( CDTXMania.app.Device, nGraphBG_XPos[ this.nGraphUsePart ] + 75, nGraphBG_YPos + 357, new Rectangle( 260 + ( 30 * ( (int)CDTXMania.ConfigIni.eTargetGhost[ this.nGraphUsePart ] ) ), 2, 30, 120 ) ); + + //以下使用予定 + //最終プレイ + this.txグラフ.t2D描画( CDTXMania.app.Device, nGraphBG_XPos[ this.nGraphUsePart ] + 106, nGraphBG_YPos + 357, new Rectangle( 260 + 60, 2, 30, 120 ) ); + //自己ベスト + this.txグラフ.t2D描画( CDTXMania.app.Device, nGraphBG_XPos[ this.nGraphUsePart ] + 136, nGraphBG_YPos + 357, new Rectangle( 260 + 90, 2, 30, 120 ) ); + //最高スコア + this.txグラフ.t2D描画( CDTXMania.app.Device, nGraphBG_XPos[ this.nGraphUsePart ] + 164, nGraphBG_YPos + 357, new Rectangle( 260 + 120, 2, 30, 120 ) ); } - this.stフラッシュ[m].y += 5; - this.stフラッシュ[m].Trans -= 5; + this.t比較文字表示( nGraphBG_XPos[ this.nGraphUsePart ] + 44, nPosY - 10, string.Format( "{0,5:##0.00}", Math.Abs( this.dbグラフ値現在 ) ) ); + this.t比較文字表示( nGraphBG_XPos[ this.nGraphUsePart ] + 74, nTargetGaugePosY - 10, string.Format( "{0,5:##0.00}", Math.Abs( this.dbグラフ値目標 ) ) ); } - // --現在値_目標越 - rectangle = new Rectangle(0, 0, 10, (int)(556f * this.dbグラフ値現在_表示 / 100)); - if ((dbグラフ値現在 >= dbグラフ値目標) && (this.txグラフ != null)) - { - //this.txグラフ.vc拡大縮小倍率 = new Vector3(1.4f, 1f, 1f); - //this.txグラフ.n透明度 = 128; - //this.txグラフ.b加算合成 = true; - this.txグラフ.t2D描画(CDTXMania.app.Device, 69 + this.n本体X[j], 650 - (int)(556f * this.dbグラフ値現在_表示 / 100), rectangle); - } - // --目標値 - if (this.dbグラフ値目標_表示 < this.dbグラフ値目標) - { - this.dbグラフ値目標_表示 += (this.dbグラフ値目標 - this.dbグラフ値目標_表示) / 5 + 0.01; - } - if (this.dbグラフ値目標_表示 >= this.dbグラフ値目標) - { - this.dbグラフ値目標_表示 = this.dbグラフ値目標; - } + } + return 0; + } - db現在の判定数合計 = 0; - //db現在の判定数合計 = CDTXMania.stage演奏画面共通.nヒット数・Auto含む[j].Perfect + CDTXMania.stage演奏画面共通.nヒット数・Auto含む[j].Great + CDTXMania.stage演奏画面共通.nヒット数・Auto含む[j].Good + CDTXMania.stage演奏画面共通.nヒット数・Auto含む[j].Miss + CDTXMania.stage演奏画面共通.nヒット数・Auto含む[j].Poor; - //this.dbグラフ値目標_Ghost = ((1.0 * CDTXMania.stage選曲.r確定されたスコア.譜面情報.最大スキル[0] / CDTXMania.DTX.n可視チップ数[j]) * db現在の判定数合計); - //System.IO.StreamWriter sw = new System.IO.StreamWriter(@"debug.txt", true, System.Text.Encoding.GetEncoding("shift_jis")); - //sw.WriteLine("TotalJudgeは{0}で、Ghostは{1}です。", db現在の判定数合計, this.dbグラフ値目標_Ghost); - //sw.Close(); - this.dbグラフ値目標_表示 = this.dbグラフ値目標; - rectangle = new Rectangle(138, 0, 72, (int)(556f * this.dbグラフ値目標_表示 / 100)); - if (this.txグラフ != null) - { - //this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f); - //this.txグラフ.n透明度 = 192; - //this.txグラフ.t2D描画(CDTXMania.app.Device, 69 + this.n本体X[j], 650 - (int)(556f * this.dbグラフ値目標_表示 / 100), rectangle); - //this.txグラフ.vc拡大縮小倍率 = new Vector3(1.4f, 1f, 1f); - this.txグラフ.n透明度 = 48; - //this.txグラフ.b加算合成 = true; - //this.txグラフ.t2D描画(CDTXMania.app.Device, 69 + this.n本体X[j], 650 - (int)(556f * this.dbグラフ値目標_表示 / 100), rectangle); - this.txグラフ.t2D描画(CDTXMania.app.Device, 69 + this.n本体X[j], 650 - (int)(556f * this.dbグラフ値比較 / 100), new Rectangle(138, 0, 72, (int)(556f * this.dbグラフ値比較 / 100))); - } - /* - for( int k = 32; k < 64; k++ ) - { - rectangle = new Rectangle(6, 0, 1, 1); - if (this.txグラフ != null) - { - this.stキラキラ[ k ].ct進行.t進行Loop(); - int num1 = (int)this.stキラキラ[ k ].x; - int num2 = this.stキラキラ[ k ].ct進行.n現在の値; - this.txグラフ.vc拡大縮小倍率 = new Vector3(this.stキラキラ[ k ].fScale, this.stキラキラ[ k ].fScale, this.stキラキラ[ k ].fScale); - //this.txグラフ.n透明度 = 138 - 2 * this.stキラキラ[ k ].Trans; - if ( num2 < (2.3f * this.dbグラフ値目標_表示) ) - { - this.txグラフ.t2D描画(CDTXMania.app.Device, 75 +this.n本体X[j] + num1, 318 - num2, rectangle); - } - } - } - */ - } - return 0; - } + // その他 + + #region [ private ] + //---------------- + private double dbグラフ値目標; + private double dbグラフ値目標_表示; + private double dbグラフ値現在; + private double dbグラフ値現在_表示; + public double dbグラフ値自己ベスト; + private int[] n現在のAutoを含まない判定数; + private CTexture txPlayerName; + private CTexture txグラフ; + private CTexture txグラフ_ゲージ; + private CTexture txグラフ値自己ベストライン; - // その他 + private CPrivateFastFont pfNameFont; - #region [ private ] - //---------------- - [StructLayout(LayoutKind.Sequential)] - private struct STキラキラ - { - public int x; - public int y; - public float fScale; - public int Trans; - public CCounter ct進行; - } [StructLayout(LayoutKind.Sequential)] private struct ST文字位置 { public char ch; public Point pt; + public ST文字位置( char ch, Point pt ) + { + this.ch = ch; + this.pt = pt; + } } - private readonly ST文字位置[] st小文字位置; - private STキラキラ[] stキラキラ = new STキラキラ[64]; - private STキラキラ[] stフラッシュ = new STキラキラ[16]; - private CCounter ct爆発エフェクト; - public double db現在の判定数合計; - private double dbグラフ値目標; - public double dbグラフ値比較; - private double dbグラフ値目標_表示; - private double dbグラフ値現在; - private double dbグラフ値現在_表示; - private double dbグラフ値直前; - private int nグラフフラッシュct; - private int n現在演奏されたノーツ数; - private STDGBVALUE n本体X; - private CTexture tx数字; - private CTexture tx比較; - private CTexture txグラフ; - private CTexture txグラフバックパネル; - protected CTexture txComboBom; - //----------------- - - - private void t小文字表示(int x, int y, string str) + private ST文字位置[] st比較数字位置 = new ST文字位置[]{ + new ST文字位置( '0', new Point( 0, 0 ) ), + new ST文字位置( '1', new Point( 8, 0 ) ), + new ST文字位置( '2', new Point( 16, 0 ) ), + new ST文字位置( '3', new Point( 24, 0 ) ), + new ST文字位置( '4', new Point( 32, 0 ) ), + new ST文字位置( '5', new Point( 40, 0 ) ), + new ST文字位置( '6', new Point( 48, 0 ) ), + new ST文字位置( '7', new Point( 56, 0 ) ), + new ST文字位置( '8', new Point( 64, 0 ) ), + new ST文字位置( '9', new Point( 72, 0 ) ), + new ST文字位置( '.', new Point( 80, 0 ) ) + }; + private ST文字位置[] st達成率数字位置 = new ST文字位置[]{ + new ST文字位置( '0', new Point( 0, 0 ) ), + new ST文字位置( '1', new Point( 16, 0 ) ), + new ST文字位置( '2', new Point( 32, 0 ) ), + new ST文字位置( '3', new Point( 48, 0 ) ), + new ST文字位置( '4', new Point( 64, 0 ) ), + new ST文字位置( '5', new Point( 80, 0 ) ), + new ST文字位置( '6', new Point( 96, 0 ) ), + new ST文字位置( '7', new Point( 112, 0 ) ), + new ST文字位置( '8', new Point( 128, 0 ) ), + new ST文字位置( '9', new Point( 144, 0 ) ), + new ST文字位置( '.', new Point( 160, 0 ) ), + new ST文字位置( '%', new Point( 168, 0 ) ), + }; + + + private void t比較文字表示( int x, int y, string str ) + { + foreach( char ch in str ) + { + for( int i = 0; i < this.st比較数字位置.Length; i++ ) + { + if( this.st比較数字位置[ i ].ch == ch ) + { + int RectX = 8; + if( ch == '.' ) RectX = 2; + Rectangle rectangle = new Rectangle( 260 + this.st比較数字位置[ i ].pt.X, 162, RectX, 10 ); + if( this.txグラフ != null ) + { + this.txグラフ.n透明度 = 255; + this.txグラフ.t2D描画( CDTXMania.app.Device, x, y, rectangle ); + } + break; + } + } + if( ch == '.' ) x += 2; + else x += 7; + } + } + private void t達成率文字表示( int x, int y, string str ) + { + foreach( char ch in str ) + { + for( int i = 0; i < this.st達成率数字位置.Length; i++ ) + { + if( this.st達成率数字位置[ i ].ch == ch ) + { + int RectX = 16; + if( ch == '.' ) RectX = 8; + Rectangle rectangle = new Rectangle( 260 + this.st達成率数字位置[ i ].pt.X, 128, RectX, 28 ); + if( this.txグラフ != null ) + { + this.txグラフ.n透明度 = 255; + this.txグラフ.t2D描画( CDTXMania.app.Device, x, y, rectangle ); + } + break; + } + } + if( ch == '.' ) x += 8; + else x += 16; + } + } + private CTexture t指定された文字テクスチャを生成する( string str文字 ) + { + Bitmap bmp; + bmp = this.pfNameFont.DrawPrivateFont( str文字, Color.White, Color.Transparent ); + + CTexture tx文字テクスチャ = CDTXMania.tテクスチャの生成( bmp, false ); + + if( tx文字テクスチャ != null ) + tx文字テクスチャ.vc拡大縮小倍率 = new Vector3( 1.0f, 1.0f, 1f ); + + bmp.Dispose(); + + return tx文字テクスチャ; + } + private void t折れ線を描画する( int nBoardPosA, int nBoardPosB ) { - foreach (char ch in str) + //やる気がまるでない線 + //2016.03.28 kairera0467 ギター画面では1Pと2Pで向きが変わるが、そこは残念ながら未対応。 + //参考 http://dobon.net/vb/dotnet/graphics/drawline.html + if( this.txグラフ値自己ベストライン == null ) { - for (int i = 0; i < this.st小文字位置.Length; i++) + Bitmap canvas = new Bitmap( 280, 720 ); + + Graphics g = Graphics.FromImage( canvas ); + g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear; + int nMybestGaugeSize = (int)( 560.0f * (float)this.dbグラフ値自己ベスト / 100.0f ); + int nMybestGaugePosY = 600 - nMybestGaugeSize; + + int nTargetGaugeSize = (int)( 560.0f * (float)this.dbグラフ値目標_表示 / 100.0f ); + int nTargetGaugePosY = 600 - nTargetGaugeSize; + + Point[] posMybest = { + new Point( 3, nMybestGaugePosY ), + new Point( 75, nMybestGaugePosY ), + new Point( 94, nBoardPosA + 31 ), + new Point( 102, nBoardPosA + 31 ) + }; + + Point[] posTarget = { + new Point( 3, nTargetGaugePosY ), + new Point( 75, nTargetGaugePosY ), + new Point( 94, nBoardPosB + 59 ), + new Point( 102, nBoardPosB + 59 ) + }; + + if( this.nGraphUsePart == 2 ) { - if (this.st小文字位置[i].ch == ch) - { - Rectangle rectangle = new Rectangle(this.st小文字位置[i].pt.X, this.st小文字位置[i].pt.Y, 12, 16); - if (ch == '.') - { - rectangle.Width -= 8; - } - if (this.tx数字 != null) - { - this.tx数字.t2D描画(CDTXMania.app.Device, x, y, rectangle); - } - break; - } + posMybest = new Point[]{ + new Point( 271, nMybestGaugePosY ), + new Point( 206, nMybestGaugePosY ), + new Point( 187, nBoardPosA + 31 ), + new Point( 178, nBoardPosA + 31 ) + }; + + posTarget = new Point[]{ + new Point( 271, nTargetGaugePosY ), + new Point( 206, nTargetGaugePosY ), + new Point( 187, nBoardPosB + 59 ), + new Point( 178, nBoardPosB + 59 ) + }; + } + + Pen penMybest = new Pen( Color.Pink, 2 ); + g.DrawLines( penMybest, posMybest ); + + if( CDTXMania.listTargetGhsotLag[ this.nGraphUsePart ] != null && CDTXMania.listTargetGhostScoreData[ this.nGraphUsePart ] != null ) + { + Pen penTarget = new Pen( Color.Orange, 2 ); + g.DrawLines( penTarget, posTarget ); } - x += 12; + + g.Dispose(); + + this.txグラフ値自己ベストライン = new CTexture( CDTXMania.app.Device, canvas, CDTXMania.TextureFormat, false ); } + if( this.txグラフ値自己ベストライン != null ) + this.txグラフ値自己ベストライン.t2D描画( CDTXMania.app.Device, nGraphBG_XPos[ this.nGraphUsePart ], nGraphBG_YPos ); } - #endregion - } + //----------------- + #endregion + } } diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\202\271\343\203\206\343\203\274\343\202\270\345\244\261\346\225\227.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\202\271\343\203\206\343\203\274\343\202\270\345\244\261\346\225\227.cs" index fc591044..eeff878e 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\202\271\343\203\206\343\203\274\343\202\270\345\244\261\346\225\227.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\202\271\343\203\206\343\203\274\343\202\270\345\244\261\346\225\227.cs" @@ -86,15 +86,6 @@ public override int On進行描画() { this.txStageFailed.t2D描画(CDTXMania.app.Device, 0, 0); } - if (this.ct進行.n現在の値 <= 250) - { - int num2 = CDTXMania.Random.Next(5) - 2; - int y = CDTXMania.Random.Next(5) - 2; - if (this.txStageFailed != null) - { - this.txStageFailed.t2D描画(CDTXMania.app.Device, num2, y); - } - } if (!this.b効果音再生済み) { if (((CDTXMania.DTX.SOUND_STAGEFAILED != null) && (CDTXMania.DTX.SOUND_STAGEFAILED.Length > 0)) && File.Exists(CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.SOUND_STAGEFAILED)) diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253\345\205\261\351\200\232.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253\345\205\261\351\200\232.cs" index c6ed6da9..dab23fac 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253\345\205\261\351\200\232.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253\345\205\261\351\200\232.cs" @@ -4,6 +4,7 @@ using System.Runtime.InteropServices; using System.Drawing; using System.Diagnostics; +using System.IO; using FDK; namespace DTXMania @@ -15,13 +16,13 @@ public CAct演奏ステータスパネル共通() { this.stパネルマップ = null; this.stパネルマップ = new STATUSPANEL[12]; // yyagi: 以下、手抜きの初期化でスマン - // { "DTXMANIA", 0 }, { "EXTREME", 1 }, ... みたいに書きたいが・・・ + // { "DTXMANIA", 0 }, { "EXTREME", 1 }, ... みたいに書きたいが___ //2013.09.07.kairera0467 画像の順番もこの並びになるので、難易度ラベルを追加する時は12以降に追加した方が画像編集でも助かります。 string[] labels = new string[12] { "DTXMANIA", //0 "DEBUT", //1 - "NOVICE", //2 + "NOVICE", //2 "REGULAR", //3 "EXPERT", //4 "MASTER", //5 @@ -48,6 +49,8 @@ public CAct演奏ステータスパネル共通() // メソッド public void tラベル名からステータスパネルを決定する(string strラベル名) { + this.tスクリプトから難易度ラベルを取得する( strラベル名 ); + if (string.IsNullOrEmpty(strラベル名)) { this.nStatus = 0; @@ -82,9 +85,71 @@ public override void On活性化() this.n現在のスコアBass = 0L; this.nStatus = 0; this.nIndex = 0; + + for( int i = 0; i < 3; i++ ) + { + this.db現在の達成率[ i ] = 0.0; + } + base.On活性化(); } + public void tスクリプトから難易度ラベルを取得する( string strラベル名 ) + { + string strRawScriptFile; + + //ファイルの存在チェック + if( File.Exists( CSkin.Path( @"Script\difficult.dtxs" ) ) ) + { + //スクリプトを開く + StreamReader reader = new StreamReader( CSkin.Path( @"Script\difficult.dtxs" ), Encoding.GetEncoding( "Shift_JIS" ) ); + strRawScriptFile = reader.ReadToEnd(); + + strRawScriptFile = strRawScriptFile.Replace( Environment.NewLine, "\n" ); + string[] delimiter = { "\n" }; + string[] strSingleLine = strRawScriptFile.Split( delimiter, StringSplitOptions.RemoveEmptyEntries ); + + for( int i = 0; i < strSingleLine.Length; i++ ) + { + if( strSingleLine[ i ].StartsWith( "//" ) ) + continue; //コメント行の場合は無視 + + //まずSplit + string[] arScriptLine = strSingleLine[ i ].Split( ',' ); + + if( ( arScriptLine.Length >= 4 && arScriptLine.Length <= 5 ) == false ) + continue; //引数が4つか5つじゃなければ無視。 + + if( arScriptLine[ 0 ] != "7" ) + continue; //使用するシーンが違うなら無視。 + + if( arScriptLine.Length == 4 ) + { + if( String.Compare( arScriptLine[ 1 ], strラベル名, true ) != 0 ) + continue; //ラベル名が違うなら無視。大文字小文字区別しない + } + else if( arScriptLine.Length == 5 ) + { + if( arScriptLine[ 4 ] == "1" ) + { + if( arScriptLine[ 1 ] != strラベル名 ) + continue; //ラベル名が違うなら無視。 + } + else + { + if( String.Compare( arScriptLine[ 1 ], strラベル名, true ) != 0 ) + continue; //ラベル名が違うなら無視。大文字小文字区別しない + } + } + this.rectDiffPanelPoint.X = Convert.ToInt32( arScriptLine[ 2 ] ); + this.rectDiffPanelPoint.Y = Convert.ToInt32( arScriptLine[ 3 ] ); + + reader.Close(); + break; + } + } + } + #region [ protected ] //----------------- [StructLayout(LayoutKind.Sequential)] @@ -96,8 +161,10 @@ public struct STATUSPANEL public long nCurrentScore; public long n現在のスコアGuitar; public long n現在のスコアBass; + public STDGBVALUE db現在の達成率; public int nIndex; public int nStatus; + protected Rectangle rectDiffPanelPoint; public STATUSPANEL[] stパネルマップ; //----------------- #endregion diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\203\221\343\203\215\343\203\253\346\226\207\345\255\227\345\210\227.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\203\221\343\203\215\343\203\253\346\226\207\345\255\227\345\210\227.cs" index e2aa30a8..0e2e4d1b 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\203\221\343\203\215\343\203\253\346\226\207\345\255\227\345\210\227.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\343\203\221\343\203\215\343\203\253\346\226\207\345\255\227\345\210\227.cs" @@ -65,7 +65,6 @@ public override void On活性化() this.n曲名Y = 630; } - this.ft表示用フォント = new Font(CDTXMania.ConfigIni.str曲名表示フォント, 26f, FontStyle.Regular, GraphicsUnit.Pixel); // this.n文字列の長さdot = 0; // this.txPanel = null; this.ct進行用 = new CCounter(); @@ -73,11 +72,6 @@ public override void On活性化() } public override void On非活性化() { - if (this.ft表示用フォント != null) - { - this.ft表示用フォント.Dispose(); - this.ft表示用フォント = null; - } // CDTXMania.tテクスチャの解放(ref this.txPanel); this.ct進行用 = null; base.On非活性化(); @@ -101,19 +95,19 @@ public override void OnManagedリソースの作成() #region[ 曲名、アーティスト名テクスチャの生成 ] if (string.IsNullOrEmpty(CDTXMania.DTX.TITLE) || (!CDTXMania.bコンパクトモード && CDTXMania.ConfigIni.b曲名表示をdefのものにする)) - this.strSongName = CDTXMania.stage選曲.r確定された曲.strタイトル;//CDTXMania.stage選曲.r現在選択中の曲.strタイトル; + this.strSongName = CDTXMania.stage選曲.r現在選択中の曲.strタイトル; else this.strSongName = CDTXMania.DTX.TITLE; - pfタイトル = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 20, FontStyle.Regular); + this.pfタイトル = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 20, FontStyle.Regular); Bitmap bmpSongName = new Bitmap(1, 1); - bmpSongName = pfタイトル.DrawPrivateFont(this.strSongName, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true); + bmpSongName = this.pfタイトル.DrawPrivateFont(this.strSongName, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true); this.txSongName = CDTXMania.tテクスチャの生成(bmpSongName, false); bmpSongName.Dispose(); - pfアーティスト = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 15, FontStyle.Regular); + this.pfアーティスト = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 15, FontStyle.Regular); Bitmap bmpArtistName = new Bitmap(1, 1); - bmpArtistName = pfアーティスト.DrawPrivateFont(CDTXMania.DTX.ARTIST, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true); + bmpArtistName = this.pfアーティスト.DrawPrivateFont(CDTXMania.DTX.ARTIST, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true); this.txArtistName = CDTXMania.tテクスチャの生成(bmpArtistName, false); bmpArtistName.Dispose(); #endregion @@ -130,6 +124,8 @@ public override void OnManagedリソースの解放() CDTXMania.tテクスチャの解放( ref this.txArtistName ); CDTXMania.tテクスチャの解放( ref this.txジャケットパネル ); CDTXMania.tテクスチャの解放( ref this.txジャケット画像 ); + CDTXMania.t安全にDisposeする( ref this.pfタイトル ); + CDTXMania.t安全にDisposeする( ref this.pfアーティスト ); base.OnManagedリソースの解放(); } } @@ -214,7 +210,6 @@ public int t進行描画() #region [ private ] //----------------- private CCounter ct進行用; - private Font ft表示用フォント; // private int n文字列の長さdot; private int n曲名X; private int n曲名Y; @@ -233,8 +228,8 @@ public int t進行描画() //2014.04.05.kairera0467 GITADORAグラデーションの色。 //本当は共通のクラスに設置してそれを参照する形にしたかったが、なかなかいいメソッドが無いため、とりあえず個別に設置。 - private Color clGITADORAgradationTopColor = Color.FromArgb(0, 211, 199); - private Color clGITADORAgradationBottomColor = Color.FromArgb(250, 232, 45); + private Color clGITADORAgradationTopColor = Color.FromArgb(0, 220, 200); + private Color clGITADORAgradationBottomColor = Color.FromArgb(255, 250, 40); //----------------- #endregion } diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227\345\205\261\351\200\232.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227\345\205\261\351\200\232.cs" index 37c3dbe5..d57496c5 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227\345\205\261\351\200\232.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227\345\205\261\351\200\232.cs" @@ -100,11 +100,6 @@ public CAct演奏判定文字列共通() } this.stLag数値 = new STlag数値[ 12 * 2 ]; // #25370 2011.2.1 yyagi - for ( int i = 0; i < 12; i++ ) - { - this.stLag数値[ i ].rc = new Rectangle( ( i % 4 ) * 15 , ( i / 4 ) * 19 , 15, 19 ); // plus numbers - this.stLag数値[ i + 12 ].rc = new Rectangle( ( i % 4 ) * 15 + 64, ( i / 4 ) * 19 + 64, 15, 19 ); // minus numbers - } base.b活性化してない = true; } @@ -161,6 +156,20 @@ public override void On活性化() this.st状態[ i ].ct進行 = new CCounter(); } + for ( int i = 0; i < 12; i++ ) + { + if( CDTXMania.ConfigIni.nShowLagTypeColor == 0 ) + { + this.stLag数値[ i ].rc = new Rectangle( ( i % 4 ) * 15 , ( i / 4 ) * 19 , 15, 19 ); // plus numbers + this.stLag数値[ i + 12 ].rc = new Rectangle( ( i % 4 ) * 15 + 64, ( i / 4 ) * 19 + 64, 15, 19 ); // minus numbers + } + else + { + this.stLag数値[ i ].rc = new Rectangle( ( i % 4 ) * 15 + 64, ( i / 4 ) * 19 + 64, 15, 19 ); // minus numbers + this.stLag数値[ i + 12 ].rc = new Rectangle( ( i % 4 ) * 15 , ( i / 4 ) * 19 , 15, 19 ); // plus numbers + } + } + this.stレーンサイズ = new STレーンサイズ[15]; STレーンサイズ stレーンサイズ = new STレーンサイズ(); // LC HH SD BD HT LT FT CY LP RD diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\346\274\224\345\245\217\346\203\205\345\240\261.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\346\274\224\345\245\217\346\203\205\345\240\261.cs" index 1523806d..6657125d 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\346\274\224\345\245\217\346\203\205\345\240\261.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CAct\346\274\224\345\245\217\346\274\224\345\245\217\346\203\205\345\240\261.cs" @@ -54,6 +54,8 @@ public void t進行描画( int x, int y ) y += 0x143; CDTXMania.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別.白, string.Format("BGM/D/G/B Adj: {0:####0}/{1:####0}/{2:####0}/{3:####0} ms", CDTXMania.DTX.nBGMAdjust, CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums, CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar, CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass)); y -= 0x10; + CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "BGMAdjCommon : {0:####0} ms", CDTXMania.ConfigIni.nCommonBGMAdjustMs ) ); + y -= 0x10; int num = (CDTXMania.DTX.listChip.Count > 0) ? CDTXMania.DTX.listChip[CDTXMania.DTX.listChip.Count - 1].n発声時刻ms : 0; string str = "Time: " + ((((double)CDTXMania.Timer.n現在時刻) / 1000.0)).ToString("####0.00") + " / " + ((((double)num) / 1000.0)).ToString("####0.00"); CDTXMania.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別.白, str); diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CStage\346\274\224\345\245\217\347\224\273\351\235\242\345\205\261\351\200\232.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CStage\346\274\224\345\245\217\347\224\273\351\235\242\345\205\261\351\200\232.cs" index ddbf2618..545e9815 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CStage\346\274\224\345\245\217\347\224\273\351\235\242\345\205\261\351\200\232.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CStage\346\274\224\345\245\217\347\224\273\351\235\242\345\205\261\351\200\232.cs" @@ -35,8 +35,8 @@ public bool bAUTOでないチップが1つでもバーを通過した // メソッド - #region [ t演奏結果を格納する・ドラム() ] - public void t演奏結果を格納する・ドラム(out CScoreIni.C演奏記録 Drums) + #region [ t演奏結果を格納する_ドラム() ] + public void t演奏結果を格納する_ドラム(out CScoreIni.C演奏記録 Drums) { Drums = new CScoreIni.C演奏記録(); @@ -45,24 +45,24 @@ public bool bAUTOでないチップが1つでもバーを通過した Drums.nスコア = (long)this.actScore.Get(E楽器パート.DRUMS); if (CDTXMania.ConfigIni.nSkillMode == 0) { - Drums.dbゲーム型スキル値 = CScoreIni.t旧ゲーム型スキルを計算して返す(CDTXMania.DTX.LEVEL.Drums, CDTXMania.DTX.LEVELDEC.Drums, CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.actCombo.n現在のコンボ数.最高値.Drums, E楽器パート.DRUMS, bIsAutoPlay); - Drums.db演奏型スキル値 = CScoreIni.t旧演奏型スキルを計算して返す(CDTXMania.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); + Drums.dbゲーム型スキル値 = CScoreIni.t旧ゲーム型スキルを計算して返す(CDTXMania.DTX.LEVEL.Drums, CDTXMania.DTX.LEVELDEC.Drums, CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.actCombo.n現在のコンボ数.最高値.Drums, E楽器パート.DRUMS, bIsAutoPlay); + Drums.db演奏型スキル値 = CScoreIni.t旧演奏型スキルを計算して返す(CDTXMania.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); } else if (CDTXMania.ConfigIni.nSkillMode == 1) { - Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(CDTXMania.DTX.LEVEL.Drums, CDTXMania.DTX.LEVELDEC.Drums, CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.actCombo.n現在のコンボ数.最高値.Drums, E楽器パート.DRUMS, bIsAutoPlay); - Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.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, this.actCombo.n現在のコンボ数.最高値.Drums, E楽器パート.DRUMS, bIsAutoPlay); + Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(CDTXMania.DTX.LEVEL.Drums, CDTXMania.DTX.LEVELDEC.Drums, CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.nヒット数_Auto含まない.Drums.Great, this.actCombo.n現在のコンボ数.最高値.Drums, E楽器パート.DRUMS, bIsAutoPlay); + Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.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, this.actCombo.n現在のコンボ数.最高値.Drums, E楽器パート.DRUMS, bIsAutoPlay); } - Drums.nPerfect数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Perfect : this.nヒット数・Auto含まない.Drums.Perfect; - Drums.nGreat数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Great : this.nヒット数・Auto含まない.Drums.Great; - Drums.nGood数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Good : this.nヒット数・Auto含まない.Drums.Good; - Drums.nPoor数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Poor : this.nヒット数・Auto含まない.Drums.Poor; - Drums.nMiss数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数・Auto含む.Drums.Miss : this.nヒット数・Auto含まない.Drums.Miss; - Drums.nPerfect数・Auto含まない = this.nヒット数・Auto含まない.Drums.Perfect; - Drums.nGreat数・Auto含まない = this.nヒット数・Auto含まない.Drums.Great; - Drums.nGood数・Auto含まない = this.nヒット数・Auto含まない.Drums.Good; - Drums.nPoor数・Auto含まない = this.nヒット数・Auto含まない.Drums.Poor; - Drums.nMiss数・Auto含まない = this.nヒット数・Auto含まない.Drums.Miss; + Drums.nPerfect数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数_Auto含む.Drums.Perfect : this.nヒット数_Auto含まない.Drums.Perfect; + Drums.nGreat数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数_Auto含む.Drums.Great : this.nヒット数_Auto含まない.Drums.Great; + Drums.nGood数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数_Auto含む.Drums.Good : this.nヒット数_Auto含まない.Drums.Good; + Drums.nPoor数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数_Auto含む.Drums.Poor : this.nヒット数_Auto含まない.Drums.Poor; + Drums.nMiss数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nヒット数_Auto含む.Drums.Miss : this.nヒット数_Auto含まない.Drums.Miss; + Drums.nPerfect数_Auto含まない = this.nヒット数_Auto含まない.Drums.Perfect; + Drums.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Drums.Great; + Drums.nGood数_Auto含まない = this.nヒット数_Auto含まない.Drums.Good; + Drums.nPoor数_Auto含まない = this.nヒット数_Auto含まない.Drums.Poor; + Drums.nMiss数_Auto含まない = this.nヒット数_Auto含まない.Drums.Miss; Drums.n最大コンボ数 = this.actCombo.n現在のコンボ数.最高値.Drums; Drums.n全チップ数 = CDTXMania.DTX.n可視チップ数.Drums; for (int i = 0; i < (int)Eレーン.MAX; i++) @@ -107,26 +107,26 @@ public bool bAUTOでないチップが1つでもバーを通過した } } #endregion - #region [ t演奏結果を格納する・ギター() ] - public void t演奏結果を格納する・ギター(out CScoreIni.C演奏記録 Guitar) + #region [ t演奏結果を格納する_ギター() ] + public void t演奏結果を格納する_ギター(out CScoreIni.C演奏記録 Guitar) { Guitar = new CScoreIni.C演奏記録(); if (CDTXMania.DTX.bチップがある.Guitar) { Guitar.nスコア = (long)this.actScore.Get(E楽器パート.GUITAR); - Guitar.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(CDTXMania.DTX.LEVEL.Guitar, CDTXMania.DTX.LEVELDEC.Guitar, CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数・Auto含まない.Guitar.Perfect, this.nヒット数・Auto含まない.Guitar.Great, this.actCombo.n現在のコンボ数.最高値.Guitar, E楽器パート.GUITAR, bIsAutoPlay); - Guitar.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.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, this.actCombo.n現在のコンボ数.最高値.Guitar, E楽器パート.GUITAR, bIsAutoPlay); - Guitar.nPerfect数 = CDTXMania.ConfigIni.bギターが全部オートプレイである ? this.nヒット数・Auto含む.Guitar.Perfect : this.nヒット数・Auto含まない.Guitar.Perfect; - Guitar.nGreat数 = CDTXMania.ConfigIni.bギターが全部オートプレイである ? this.nヒット数・Auto含む.Guitar.Great : this.nヒット数・Auto含まない.Guitar.Great; - Guitar.nGood数 = CDTXMania.ConfigIni.bギターが全部オートプレイである ? this.nヒット数・Auto含む.Guitar.Good : this.nヒット数・Auto含まない.Guitar.Good; - Guitar.nPoor数 = CDTXMania.ConfigIni.bギターが全部オートプレイである ? this.nヒット数・Auto含む.Guitar.Poor : this.nヒット数・Auto含まない.Guitar.Poor; - Guitar.nMiss数 = CDTXMania.ConfigIni.bギターが全部オートプレイである ? this.nヒット数・Auto含む.Guitar.Miss : this.nヒット数・Auto含まない.Guitar.Miss; - Guitar.nPerfect数・Auto含まない = this.nヒット数・Auto含まない.Guitar.Perfect; - Guitar.nGreat数・Auto含まない = this.nヒット数・Auto含まない.Guitar.Great; - Guitar.nGood数・Auto含まない = this.nヒット数・Auto含まない.Guitar.Good; - Guitar.nPoor数・Auto含まない = this.nヒット数・Auto含まない.Guitar.Poor; - Guitar.nMiss数・Auto含まない = this.nヒット数・Auto含まない.Guitar.Miss; + Guitar.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(CDTXMania.DTX.LEVEL.Guitar, CDTXMania.DTX.LEVELDEC.Guitar, CDTXMania.DTX.n可視チップ数.Guitar, this.nヒット数_Auto含まない.Guitar.Perfect, this.nヒット数_Auto含まない.Guitar.Great, this.actCombo.n現在のコンボ数.最高値.Guitar, E楽器パート.GUITAR, bIsAutoPlay); + Guitar.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.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, this.actCombo.n現在のコンボ数.最高値.Guitar, E楽器パート.GUITAR, bIsAutoPlay); + Guitar.nPerfect数 = CDTXMania.ConfigIni.bギターが全部オートプレイである ? this.nヒット数_Auto含む.Guitar.Perfect : this.nヒット数_Auto含まない.Guitar.Perfect; + Guitar.nGreat数 = CDTXMania.ConfigIni.bギターが全部オートプレイである ? this.nヒット数_Auto含む.Guitar.Great : this.nヒット数_Auto含まない.Guitar.Great; + Guitar.nGood数 = CDTXMania.ConfigIni.bギターが全部オートプレイである ? this.nヒット数_Auto含む.Guitar.Good : this.nヒット数_Auto含まない.Guitar.Good; + Guitar.nPoor数 = CDTXMania.ConfigIni.bギターが全部オートプレイである ? this.nヒット数_Auto含む.Guitar.Poor : this.nヒット数_Auto含まない.Guitar.Poor; + Guitar.nMiss数 = CDTXMania.ConfigIni.bギターが全部オートプレイである ? this.nヒット数_Auto含む.Guitar.Miss : this.nヒット数_Auto含まない.Guitar.Miss; + Guitar.nPerfect数_Auto含まない = this.nヒット数_Auto含まない.Guitar.Perfect; + Guitar.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Guitar.Great; + Guitar.nGood数_Auto含まない = this.nヒット数_Auto含まない.Guitar.Good; + Guitar.nPoor数_Auto含まない = this.nヒット数_Auto含まない.Guitar.Poor; + Guitar.nMiss数_Auto含まない = this.nヒット数_Auto含まない.Guitar.Miss; Guitar.n最大コンボ数 = this.actCombo.n現在のコンボ数.最高値.Guitar; Guitar.n全チップ数 = CDTXMania.DTX.n可視チップ数.Guitar; for (int i = 0; i < (int)Eレーン.MAX; i++) @@ -171,26 +171,26 @@ public bool bAUTOでないチップが1つでもバーを通過した } } #endregion - #region [ t演奏結果を格納する・ベース() ] - public void t演奏結果を格納する・ベース(out CScoreIni.C演奏記録 Bass) + #region [ t演奏結果を格納する_ベース() ] + public void t演奏結果を格納する_ベース(out CScoreIni.C演奏記録 Bass) { Bass = new CScoreIni.C演奏記録(); if (CDTXMania.DTX.bチップがある.Bass) { Bass.nスコア = (long)this.actScore.Get(E楽器パート.BASS); - Bass.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(CDTXMania.DTX.LEVEL.Bass, CDTXMania.DTX.LEVELDEC.Bass, CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数・Auto含まない.Bass.Perfect, this.nヒット数・Auto含まない.Bass.Great, this.actCombo.n現在のコンボ数.最高値.Bass, E楽器パート.BASS, bIsAutoPlay); - Bass.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.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, this.actCombo.n現在のコンボ数.最高値.Bass, E楽器パート.BASS, bIsAutoPlay); - Bass.nPerfect数 = CDTXMania.ConfigIni.bベースが全部オートプレイである ? this.nヒット数・Auto含む.Bass.Perfect : this.nヒット数・Auto含まない.Bass.Perfect; - Bass.nGreat数 = CDTXMania.ConfigIni.bベースが全部オートプレイである ? this.nヒット数・Auto含む.Bass.Great : this.nヒット数・Auto含まない.Bass.Great; - Bass.nGood数 = CDTXMania.ConfigIni.bベースが全部オートプレイである ? this.nヒット数・Auto含む.Bass.Good : this.nヒット数・Auto含まない.Bass.Good; - Bass.nPoor数 = CDTXMania.ConfigIni.bベースが全部オートプレイである ? this.nヒット数・Auto含む.Bass.Poor : this.nヒット数・Auto含まない.Bass.Poor; - Bass.nMiss数 = CDTXMania.ConfigIni.bベースが全部オートプレイである ? this.nヒット数・Auto含む.Bass.Miss : this.nヒット数・Auto含まない.Bass.Miss; - Bass.nPerfect数・Auto含まない = this.nヒット数・Auto含まない.Bass.Perfect; - Bass.nGreat数・Auto含まない = this.nヒット数・Auto含まない.Bass.Great; - Bass.nGood数・Auto含まない = this.nヒット数・Auto含まない.Bass.Good; - Bass.nPoor数・Auto含まない = this.nヒット数・Auto含まない.Bass.Poor; - Bass.nMiss数・Auto含まない = this.nヒット数・Auto含まない.Bass.Miss; + Bass.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(CDTXMania.DTX.LEVEL.Bass, CDTXMania.DTX.LEVELDEC.Bass, CDTXMania.DTX.n可視チップ数.Bass, this.nヒット数_Auto含まない.Bass.Perfect, this.nヒット数_Auto含まない.Bass.Great, this.actCombo.n現在のコンボ数.最高値.Bass, E楽器パート.BASS, bIsAutoPlay); + Bass.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.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, this.actCombo.n現在のコンボ数.最高値.Bass, E楽器パート.BASS, bIsAutoPlay); + Bass.nPerfect数 = CDTXMania.ConfigIni.bベースが全部オートプレイである ? this.nヒット数_Auto含む.Bass.Perfect : this.nヒット数_Auto含まない.Bass.Perfect; + Bass.nGreat数 = CDTXMania.ConfigIni.bベースが全部オートプレイである ? this.nヒット数_Auto含む.Bass.Great : this.nヒット数_Auto含まない.Bass.Great; + Bass.nGood数 = CDTXMania.ConfigIni.bベースが全部オートプレイである ? this.nヒット数_Auto含む.Bass.Good : this.nヒット数_Auto含まない.Bass.Good; + Bass.nPoor数 = CDTXMania.ConfigIni.bベースが全部オートプレイである ? this.nヒット数_Auto含む.Bass.Poor : this.nヒット数_Auto含まない.Bass.Poor; + Bass.nMiss数 = CDTXMania.ConfigIni.bベースが全部オートプレイである ? this.nヒット数_Auto含む.Bass.Miss : this.nヒット数_Auto含まない.Bass.Miss; + Bass.nPerfect数_Auto含まない = this.nヒット数_Auto含まない.Bass.Perfect; + Bass.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Bass.Great; + Bass.nGood数_Auto含まない = this.nヒット数_Auto含まない.Bass.Good; + Bass.nPoor数_Auto含まない = this.nヒット数_Auto含まない.Bass.Poor; + Bass.nMiss数_Auto含まない = this.nヒット数_Auto含まない.Bass.Miss; Bass.n最大コンボ数 = this.actCombo.n現在のコンボ数.最高値.Bass; Bass.n全チップ数 = CDTXMania.DTX.n可視チップ数.Bass; for (int i = 0; i < (int)Eレーン.MAX; i++) @@ -261,12 +261,14 @@ public override void On活性化() } this.r現在の空うちギターChip = null; this.r現在の空うちベースChip = null; + this.n最大コンボ数_TargetGhost = new STDGBVALUE(); // #35411 2015.08.21 chnmr0 add for (int k = 0; k < 3; k++) { //for ( int n = 0; n < 5; n++ ) { - this.nヒット数・Auto含まない[k] = new CHITCOUNTOFRANK(); - this.nヒット数・Auto含む[k] = new CHITCOUNTOFRANK(); + this.nヒット数_Auto含まない[ k ] = new CHITCOUNTOFRANK(); + this.nヒット数_Auto含む[ k ] = new CHITCOUNTOFRANK(); + this.nヒット数_TargetGhost[ k ] = new CHITCOUNTOFRANK(); // #35411 2015.08.21 chnmr0 add } this.queWailing[k] = new Queue(); this.r現在の歓声Chip[k] = null; @@ -330,9 +332,9 @@ public override void On活性化() { pChip.bHit = true; // Debug.WriteLine( "first [DA] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString( "x2" ) + ", wav=" + pChip.n整数値 + ", time=" + pChip.n発声時刻ms ); - if (listWAV.ContainsKey(pChip.n整数値・内部番号)) + if (listWAV.ContainsKey(pChip.n整数値_内部番号)) { - CDTX.CWAV wc = listWAV[pChip.n整数値・内部番号]; + CDTX.CWAV wc = listWAV[pChip.n整数値_内部番号]; for (int i = 0; i < nPolyphonicSounds; i++) { if (wc.rSound[i] != null) @@ -359,42 +361,6 @@ public override void On活性化() this.sw2 = new Stopwatch(); // this.gclatencymode = GCSettings.LatencyMode; // GCSettings.LatencyMode = GCLatencyMode.Batch; // 演奏画面中はGCを抑止する - - //KSM Compute Scoring Multiplier for Drum, Guitar and Bass - //1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50f)) - float maxNoteCount = 0; - //Set for Drum - maxNoteCount = (float)CDTXMania.DTX.n可視チップ数.Drums; - if (CDTXMania.DTX.n可視チップ数.Drums >= 50) - { - this.scoreMultiplier_Drum = (1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (maxNoteCount - 24.5f); - } - else - { - this.scoreMultiplier_Drum = (1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) * 2 / (maxNoteCount + 1); - } - //Set for Bass - maxNoteCount = (float)CDTXMania.DTX.n可視チップ数.Bass; - if (CDTXMania.DTX.n可視チップ数.Bass >= 50) - { - this.scoreMultiplier_Bass = (1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (maxNoteCount - 24.5f); - } - else - { - this.scoreMultiplier_Bass = (1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) * 2 / (maxNoteCount + 1); - } - //Set for Guitar - maxNoteCount = (float)CDTXMania.DTX.n可視チップ数.Guitar; - if (CDTXMania.DTX.n可視チップ数.Bass >= 50) - { - this.scoreMultiplier_Guitar = (1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (maxNoteCount - 24.5f); - } - else - { - this.scoreMultiplier_Guitar = (1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) * 2 / (maxNoteCount + 1); - } - - } public override void On非活性化() { @@ -676,6 +642,7 @@ protected struct stmixer public CAct演奏ステータスパネル共通 actStatusPanels; protected CAct演奏WailingBonus共通 actWailingBonus; public CAct演奏スクロール速度 act譜面スクロール速度; + protected CAct演奏スキルメーター actGraph; protected bool bPAUSE; protected STDGBVALUE b演奏にMIDI入力を使った; protected STDGBVALUE b演奏にキーボードを使った; @@ -704,8 +671,8 @@ protected struct stmixer public STDGBVALUE nShutterInPosY = new STDGBVALUE(); public STDGBVALUE nShutterOutPosY = new STDGBVALUE(); public long n現在のスコア = 0; - public STDGBVALUE nヒット数・Auto含まない; - public STDGBVALUE nヒット数・Auto含む; + public STDGBVALUE nヒット数_Auto含まない; + public STDGBVALUE nヒット数_Auto含む; protected int n現在のトップChip = -1; protected int[] n最後に再生したBGMの実WAV番号 = new int[50]; protected static int nJudgeLineMaxPosY; @@ -745,6 +712,11 @@ protected struct stmixer public CTexture tx判定画像anime_3; public CTexture txボーナスエフェクト; + //fork + protected STDGBVALUE nヒット数_TargetGhost; // #35411 2015.08.21 chnmr0 add + protected STDGBVALUE nコンボ数_TargetGhost; + public STDGBVALUE n最大コンボ数_TargetGhost; + protected CTexture tx背景; protected STDGBVALUE nInputAdjustTimeMs; // #23580 2011.1.3 yyagi public STAUTOPLAY bIsAutoPlay; // #24239 2011.1.23 yyagi @@ -758,13 +730,6 @@ protected struct stmixer protected Stopwatch sw2; // protected GCLatencyMode gclatencymode; - // - //(1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50f)) - // - private float scoreMultiplier_Drum = 0.0f; - private float scoreMultiplier_Guitar = 0.0f; - private float scoreMultiplier_Bass = 0.0f; - public void AddMixer(CSound cs, bool _b演奏終了後も再生が続くチップである) { stmixer stm = new stmixer() @@ -814,12 +779,23 @@ public void ManageMixerQueue() } } - protected E判定 e指定時刻からChipのJUDGEを返す(long nTime, CDTX.CChip pChip, int nInputAdjustTime) + protected E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip, int nInputAdjustTime, bool saveLag = true ) { if (pChip != null) { - pChip.nLag = (int)(nTime + nInputAdjustTime - pChip.n発声時刻ms); // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature - int nDeltaTime = Math.Abs(pChip.nLag); + // #35411 2015.08.22 chnmr0 modified add check save lag flag for ghost + int lag = (int)(nTime + nInputAdjustTime - pChip.n発声時刻ms); + if (saveLag) + { + pChip.nLag = lag; // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature + if (pChip.e楽器パート != E楽器パート.UNKNOWN) + { + pChip.nCurrentComboForGhost = this.actCombo.n現在のコンボ数[(int)pChip.e楽器パート]; + } + } + // #35411 modify end + + int nDeltaTime = Math.Abs( lag ); if (nDeltaTime <= CDTXMania.nPerfect範囲ms) { return E判定.Perfect; @@ -990,7 +966,7 @@ protected CDTX.CChip r空うちChip(E楽器パート part, Eパッド pad) } return null; } - protected CDTX.CChip r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(long nTime, int nChannel, int nInputAdjustTime) + protected CDTX.CChip r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(long nTime, int nChannel, int nInputAdjustTime) { sw2.Start(); nTime += nInputAdjustTime; // #24239 2011.1.23 yyagi InputAdjust @@ -1174,15 +1150,15 @@ protected void tサウンド再生(CDTX.CChip pChip, long n再生開始システ { this.L最後に再生したHHの実WAV番号.RemoveAt(0); } - if (!this.L最後に再生したHHの実WAV番号.Contains(pChip.n整数値・内部番号)) + if (!this.L最後に再生したHHの実WAV番号.Contains(pChip.n整数値_内部番号)) { - this.L最後に再生したHHの実WAV番号.Add(pChip.n整数値・内部番号); + this.L最後に再生したHHの実WAV番号.Add(pChip.n整数値_内部番号); } break; } CDTXMania.DTX.tチップの再生(pChip, n再生開始システム時刻ms, nLane, n音量, bモニタ); - this.n最後に再生した実WAV番号[nLane] = pChip.n整数値・内部番号; // nLaneでなくindexにすると、LC(1A-11=09)とギター(enumで09)がかぶってLC音が消されるので注意 + this.n最後に再生した実WAV番号[nLane] = pChip.n整数値_内部番号; // nLaneでなくindexにすると、LC(1A-11=09)とギター(enumで09)がかぶってLC音が消されるので注意 return; } #endregion @@ -1190,14 +1166,14 @@ protected void tサウンド再生(CDTX.CChip pChip, long n再生開始システ #region [ GUITAR ] CDTXMania.DTX.tWavの再生停止(this.n最後に再生した実WAV番号.Guitar); CDTXMania.DTX.tチップの再生(pChip, n再生開始システム時刻ms, (int)Eレーン.Guitar, n音量, bモニタ, b音程をずらして再生); - this.n最後に再生した実WAV番号.Guitar = pChip.n整数値・内部番号; + this.n最後に再生した実WAV番号.Guitar = pChip.n整数値_内部番号; return; #endregion case E楽器パート.BASS: #region [ BASS ] CDTXMania.DTX.tWavの再生停止(this.n最後に再生した実WAV番号.Bass); CDTXMania.DTX.tチップの再生(pChip, n再生開始システム時刻ms, (int)Eレーン.Bass, n音量, bモニタ, b音程をずらして再生); - this.n最後に再生した実WAV番号.Bass = pChip.n整数値・内部番号; + this.n最後に再生した実WAV番号.Bass = pChip.n整数値_内部番号; return; #endregion @@ -1208,13 +1184,13 @@ protected void tサウンド再生(CDTX.CChip pChip, long n再生開始システ } protected void tステータスパネルの選択() { - if (CDTXMania.bコンパクトモード) + if( CDTXMania.bコンパクトモード ) { - this.actStatusPanels.tラベル名からステータスパネルを決定する(null); + this.actStatusPanels.tスクリプトから難易度ラベルを取得する( CDTXMania.stage選曲.r確定された曲.ar難易度ラベル[ CDTXMania.stage選曲.n確定された曲の難易度 ] ); } - else if (CDTXMania.stage選曲.r確定された曲 != null) + else if( CDTXMania.stage選曲.r確定された曲 != null ) { - this.actStatusPanels.tラベル名からステータスパネルを決定する(CDTXMania.stage選曲.r確定された曲.ar難易度ラベル[CDTXMania.stage選曲.n確定された曲の難易度]); + this.actStatusPanels.tスクリプトから難易度ラベルを取得する( CDTXMania.stage選曲.r確定された曲.ar難易度ラベル[ CDTXMania.stage選曲.n確定された曲の難易度 ] ); } } protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip) @@ -1234,6 +1210,7 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, this.bAUTOでないチップが1つでもバーを通過した = true; } bool bPChipIsAutoPlay = bCheckAutoPlay(pChip); + //bool bPChipIsAutoPlay = false; // Test code only Fisyher pChip.bIsAutoPlayed = bPChipIsAutoPlay; // 2011.6.10 yyagi E判定 eJudgeResult = E判定.Auto; switch (pChip.e楽器パート) @@ -1298,42 +1275,42 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, case E判定.Miss: case E判定.Bad: this.actCombo.tコンボリセット処理(); - this.nヒット数・Auto含む.Drums.Miss++; + this.nヒット数_Auto含む.Drums.Miss++; if (!bPChipIsAutoPlay) { - this.nヒット数・Auto含まない.Drums.Miss++; + this.nヒット数_Auto含まない.Drums.Miss++; this.actPlayInfo.nMISS数++; } break; case E判定.Poor: - this.nヒット数・Auto含む.Drums.Poor++; + this.nヒット数_Auto含む.Drums.Poor++; if (!bPChipIsAutoPlay) { - this.nヒット数・Auto含まない.Drums.Poor++; + this.nヒット数_Auto含まない.Drums.Poor++; this.actPlayInfo.nPOOR数++; } break; case E判定.Good: - this.nヒット数・Auto含む.Drums.Good++; + this.nヒット数_Auto含む.Drums.Good++; if (!bPChipIsAutoPlay) { - this.nヒット数・Auto含まない.Drums.Good++; + this.nヒット数_Auto含まない.Drums.Good++; this.actPlayInfo.nGOOD数++; } break; case E判定.Great: - this.nヒット数・Auto含む.Drums.Great++; + this.nヒット数_Auto含む.Drums.Great++; if (!bPChipIsAutoPlay) { - this.nヒット数・Auto含まない.Drums.Great++; + this.nヒット数_Auto含まない.Drums.Great++; this.actPlayInfo.nGREAT数++; } break; case E判定.Perfect: - this.nヒット数・Auto含む.Drums.Perfect++; + this.nヒット数_Auto含む.Drums.Perfect++; if (!bPChipIsAutoPlay) { - this.nヒット数・Auto含まない.Drums.Perfect++; + this.nヒット数_Auto含まない.Drums.Perfect++; this.actPlayInfo.nPERFECT数++; } break; @@ -1370,18 +1347,18 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, { case E判定.Miss: case E判定.Bad: - this.nヒット数・Auto含む[indexInst].Miss++; + this.nヒット数_Auto含む[indexInst].Miss++; if (!bPChipIsAutoPlay) { - this.nヒット数・Auto含まない[indexInst].Miss++; + this.nヒット数_Auto含まない[indexInst].Miss++; } break; default: // #24068 2011.1.10 ikanick changed // #24167 2011.1.16 yyagi changed - this.nヒット数・Auto含む[indexInst][(int)eJudgeResult]++; + this.nヒット数_Auto含む[indexInst][(int)eJudgeResult]++; if (!bPChipIsAutoPlay) { - this.nヒット数・Auto含まない[indexInst][(int)eJudgeResult]++; + this.nヒット数_Auto含まない[indexInst][(int)eJudgeResult]++; } break; } @@ -1432,7 +1409,7 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, } #region[スコア] //!bPChipIsAutoPlayを入れるとオート時にスコアを加算しなくなる。 - if (CDTXMania.ConfigIni.nSkillMode == 1)//XG mode scoring + if (CDTXMania.ConfigIni.nSkillMode == 1) { int nRate = this.bブーストボーナス == true ? 2 : 1; if (CDTXMania.ConfigIni.bAutoAddGage == true) @@ -1444,21 +1421,14 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, float nScoreDelta = 0; float nComboMax; nComboMax = CDTXMania.DTX.n可視チップ数.Drums; - - //SubFactor is 50.0f most of the time - float combosubFactor = nComboMax >= 50 ? 50.0f : nComboMax; - //1/sf, 2/sf, 3/sf for less than 50, 1.0f for 50 or more - float comboFactor = nCombos >= 50 ? 1.0f : nCombos / combosubFactor; if (eJudgeResult == E判定.Perfect)//ここでパフェ基準を作成。 { if (nCombos < nComboMax) { - nScoreDelta = this.scoreMultiplier_Drum * comboFactor; - //nScoreDelta = 1000000.0f/nComboMax; - //nScoreDelta = (1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50f)); + nScoreDelta = (1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50f)); } //1000000÷50÷(その曲のMAXCOMBO-24.5) - else if (this.nヒット数・Auto含む.Drums.Perfect >= nComboMax) + else if (this.nヒット数_Auto含む.Drums.Perfect >= nComboMax) { nScoreDelta = 1000000.0f - (float)this.actScore.n現在の本当のスコア.Drums; //nScoreDelta = (1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数 - (1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50f)) * ((1275.0f + 50.0f * (nComboMax - 49.0f)))); @@ -1468,27 +1438,24 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, } else if (eJudgeResult == E判定.Great) { - nScoreDelta = this.scoreMultiplier_Drum * comboFactor * 0.5f; - //nScoreDelta = ((1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50f))) * 0.5f; + nScoreDelta = ((1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50f))) * 0.5f; } else if (eJudgeResult == E判定.Good) { - nScoreDelta = this.scoreMultiplier_Drum * comboFactor * 0.2f; - //nScoreDelta = ((1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50f))) * 0.2f; + nScoreDelta = ((1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50f))) * 0.2f; } - //KSM Combo Factor already computed in so this section is redundant - //if (nCombos < 50) - //{ - // //nScoreDelta = nScoreDelta * nCombos; - //} - //else if (nCombos == nComboMax || this.nヒット数・Auto含まない.Drums.Perfect == nComboMax) - //{ - //} - //else - //{ - // //nScoreDelta = nScoreDelta * 50; - //} + if (nCombos < 50) + { + nScoreDelta = nScoreDelta * nCombos; + } + else if (nCombos == nComboMax || this.nヒット数_Auto含まない.Drums.Perfect == nComboMax) + { + } + else + { + nScoreDelta = nScoreDelta * 50; + } this.actScore.Add(pChip.e楽器パート, bIsAutoPlay, (long)nScoreDelta); this.actStatusPanels.nCurrentScore += (long)nScoreDelta; @@ -1500,22 +1467,14 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, int nCombos = this.actCombo.n現在のコンボ数[(int)pChip.e楽器パート]; float nScoreDelta = 0; float nComboMax = (pChip.e楽器パート == E楽器パート.GUITAR ? CDTXMania.DTX.n可視チップ数.Guitar : CDTXMania.DTX.n可視チップ数.Bass); - float scoreMultiplier = (pChip.e楽器パート == E楽器パート.GUITAR ? this.scoreMultiplier_Guitar : this.scoreMultiplier_Bass); - - //SubFactor is 50.0f most of the time - float combosubFactor = nComboMax >= 50 ? 50.0f : nComboMax; - //1/sf, 2/sf, 3/sf for less than 50, 1.0f for 50 or more - float comboFactor = nCombos >= 50 ? 1.0f : nCombos / combosubFactor; - if (eJudgeResult == E判定.Perfect || eJudgeResult == E判定.Auto)//ここでパフェ基準を作成。 { if (nCombos < nComboMax) { - nScoreDelta = scoreMultiplier * comboFactor; - //nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)); + nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)); } // 100万/{1275+50×(総ノーツ数-50)} - else if (this.nヒット数・Auto含む[(int)pChip.e楽器パート].Perfect >= nComboMax) + else if (this.nヒット数_Auto含む[(int)pChip.e楽器パート].Perfect >= nComboMax) { nScoreDelta = 1000000.0f - (float)this.actScore.n現在の本当のスコア[(int)pChip.e楽器パート]; //nScoreDelta = 1000000.0f - (1000000.0f / (1275.0f + 50.0f / (nComboMax - 50.0f))) * ((1275.0f + 50.0f * (nComboMax - 49.0f))); @@ -1525,27 +1484,25 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, } else if (eJudgeResult == E判定.Great) { - nScoreDelta = scoreMultiplier * comboFactor * 0.5f; - //nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)) * 0.5f; + nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)) * 0.5f; } else if (eJudgeResult == E判定.Good) { - nScoreDelta = scoreMultiplier * comboFactor * 0.2f; - //nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)) * 0.2f; + nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)) * 0.2f; } - //KSM Combo Factor already computed in so this section is redundant - //if (nCombos < 50) - //{ - // nScoreDelta = nScoreDelta * nCombos; - //} - //else if (nCombos == nComboMax || this.nヒット数・Auto含まない[(int)pChip.e楽器パート].Perfect == nComboMax) - //{ - //} - //else - //{ - // nScoreDelta = nScoreDelta * 50.0f; - //} + + if (nCombos < 50) + { + nScoreDelta = nScoreDelta * nCombos; + } + else if (nCombos == nComboMax || this.nヒット数_Auto含まない[(int)pChip.e楽器パート].Perfect == nComboMax) + { + } + else + { + nScoreDelta = nScoreDelta * 50.0f; + } this.actScore.Add(pChip.e楽器パート, bIsAutoPlay, (long)nScoreDelta); //this.actStatusPanels.nCurrentScore += (long)nScoreDelta; @@ -1565,20 +1522,14 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, float nScoreDelta = 0; float nComboMax; nComboMax = CDTXMania.DTX.n可視チップ数.Drums; - - //SubFactor is 50.0f most of the time - float combosubFactor = nComboMax >= 50 ? 50.0f : nComboMax; - //1/sf, 2/sf, 3/sf for less than 50, 1.0f for 50 or more - float comboFactor = nCombos >= 50 ? 1.0f : nCombos / combosubFactor; if (eJudgeResult == E判定.Perfect)//ここでパフェ基準を作成。 { if (nCombos < nComboMax) { - nScoreDelta = this.scoreMultiplier_Drum * comboFactor; - //nScoreDelta = (1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50f)); + nScoreDelta = (1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50f)); } //1000000÷50÷(その曲のMAXCOMBO-24.5) - else if (this.nヒット数・Auto含む.Drums.Perfect >= nComboMax) + else if (this.nヒット数_Auto含む.Drums.Perfect >= nComboMax) { nScoreDelta = 1000000.0f - (float)this.actScore.n現在の本当のスコア.Drums; } @@ -1587,27 +1538,24 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, } else if (eJudgeResult == E判定.Great) { - nScoreDelta = this.scoreMultiplier_Drum * comboFactor * 0.5f; - //nScoreDelta = ((1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50.0f))) * 0.5f; + nScoreDelta = ((1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50.0f))) * 0.5f; } else if (eJudgeResult == E判定.Good) { - nScoreDelta = this.scoreMultiplier_Drum * comboFactor * 0.2f; - //nScoreDelta = ((1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50.0f))) * 0.2f; + nScoreDelta = ((1000000.0f - 500.0f * CDTXMania.DTX.nボーナスチップ数) / (1275.0f + 50.0f * (nComboMax - 50.0f))) * 0.2f; } - //KSM Combo Factor already computed in so this section is redundant - //if (nCombos < 50) - //{ - // nScoreDelta = nScoreDelta * nCombos; - //} - //else if (nCombos == nComboMax || this.nヒット数・Auto含まない.Drums.Perfect == nComboMax) - //{ - //} - //else - //{ - // nScoreDelta = nScoreDelta * 50; - //} + if (nCombos < 50) + { + nScoreDelta = nScoreDelta * nCombos; + } + else if (nCombos == nComboMax || this.nヒット数_Auto含まない.Drums.Perfect == nComboMax) + { + } + else + { + nScoreDelta = nScoreDelta * 50; + } this.actScore.Add(pChip.e楽器パート, bIsAutoPlay, (long)nScoreDelta); this.actStatusPanels.nCurrentScore += (long)nScoreDelta; @@ -1619,22 +1567,14 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, int nCombos = this.actCombo.n現在のコンボ数[(int)pChip.e楽器パート]; float nScoreDelta = 0; float nComboMax = (pChip.e楽器パート == E楽器パート.GUITAR ? CDTXMania.DTX.n可視チップ数.Guitar : CDTXMania.DTX.n可視チップ数.Bass); - float scoreMultiplier = (pChip.e楽器パート == E楽器パート.GUITAR ? this.scoreMultiplier_Guitar : this.scoreMultiplier_Bass); - - //SubFactor is 50.0f most of the time - float combosubFactor = nComboMax >= 50 ? 50.0f : nComboMax; - //1/sf, 2/sf, 3/sf for less than 50, 1.0f for 50 or more - float comboFactor = nCombos >= 50 ? 1.0f : nCombos / combosubFactor; - if (eJudgeResult == E判定.Perfect || eJudgeResult == E判定.Auto)//ここでパフェ基準を作成。 { if (nCombos < nComboMax) { - nScoreDelta = scoreMultiplier * comboFactor; - //nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)); + nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)); } // 100万/{1275+50×(総ノーツ数-50)} - else if (this.nヒット数・Auto含む[(int)pChip.e楽器パート].Perfect >= nComboMax) + else if (this.nヒット数_Auto含む[(int)pChip.e楽器パート].Perfect >= nComboMax) { nScoreDelta = 1000000.0f - (float)this.actScore.n現在の本当のスコア[(int)pChip.e楽器パート]; //nScoreDelta = 1000000.0f - (1000000.0f / (1275.0f + 50.0f / (nComboMax - 50.0f))) * ((1275.0f + 50.0f * (nComboMax - 49.0f))); @@ -1644,27 +1584,25 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, } else if (eJudgeResult == E判定.Great) { - nScoreDelta = scoreMultiplier * comboFactor * 0.5f; - //nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)) * 0.5f; + nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)) * 0.5f; } else if (eJudgeResult == E判定.Good) { - nScoreDelta = scoreMultiplier * comboFactor * 0.2f; - //nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)) * 0.2f; + nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)) * 0.2f; } - //KSM Combo Factor already computed in so this section is redundant - //if (nCombos < 50) - //{ - // nScoreDelta = nScoreDelta * nCombos; - //} - //else if (nCombos == nComboMax || this.nヒット数・Auto含まない[(int)pChip.e楽器パート].Perfect == nComboMax) - //{ - //} - //else - //{ - // nScoreDelta = nScoreDelta * 50.0f; - //} + + if (nCombos < 50) + { + nScoreDelta = nScoreDelta * nCombos; + } + else if (nCombos == nComboMax || this.nヒット数_Auto含まない[(int)pChip.e楽器パート].Perfect == nComboMax) + { + } + else + { + nScoreDelta = nScoreDelta * 50.0f; + } this.actScore.Add(pChip.e楽器パート, bIsAutoPlay, (long)nScoreDelta); //this.actStatusPanels.nCurrentScore += (long)nScoreDelta; @@ -1675,7 +1613,7 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, } } } - else if (CDTXMania.ConfigIni.nSkillMode == 0)//Classic Mode scoring + else if (CDTXMania.ConfigIni.nSkillMode == 0) { if (CDTXMania.ConfigIni.bAutoAddGage) { @@ -1720,13 +1658,13 @@ protected E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, return eJudgeResult; } - protected abstract void tチップのヒット処理・BadならびにTight時のMiss(E楽器パート part); - protected abstract void tチップのヒット処理・BadならびにTight時のMiss(E楽器パート part, int nLane); - protected void tチップのヒット処理・BadならびにTight時のMiss(E楽器パート part, E楽器パート screenmode) + protected abstract void tチップのヒット処理_BadならびにTight時のMiss(E楽器パート part); + protected abstract void tチップのヒット処理_BadならびにTight時のMiss(E楽器パート part, int nLane); + protected void tチップのヒット処理_BadならびにTight時のMiss(E楽器パート part, E楽器パート screenmode) { - this.tチップのヒット処理・BadならびにTight時のMiss(part, 0, screenmode); + this.tチップのヒット処理_BadならびにTight時のMiss(part, 0, screenmode); } - protected void tチップのヒット処理・BadならびにTight時のMiss(E楽器パート part, int nLane, E楽器パート screenmode) + protected void tチップのヒット処理_BadならびにTight時のMiss(E楽器パート part, int nLane, E楽器パート screenmode) { this.bAUTOでないチップが1つでもバーを通過した = true; //this.t判定にあわせてゲージを増減する( screenmode, part, E判定.Miss ); @@ -1951,7 +1889,7 @@ protected CDTX.CChip r次にくるベースChipを更新して返す() CDTXMania.ConfigIni.nInputAdjustTimeMs[part] = this.nInputAdjustTimeMs[part]; } - protected abstract void t入力処理・ドラム(); + protected abstract void t入力処理_ドラム(); protected abstract void ドラムスクロール速度アップ(); protected abstract void ドラムスクロール速度ダウン(); protected void tキー入力() @@ -1977,9 +1915,9 @@ protected void tキー入力() { if (!this.bPAUSE) { - this.t入力処理・ドラム(); - this.t入力処理・ギターベース(E楽器パート.GUITAR); - this.t入力処理・ギターベース(E楽器パート.BASS); + this.t入力処理_ドラム(); + this.t入力処理_ギターベース(E楽器パート.GUITAR); + this.t入力処理_ギターベース(E楽器パート.BASS); } if (!this.bPAUSE && keyboard.bキーが押された((int)SlimDX.DirectInput.Key.UpArrow) && (keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.RightShift) || keyboard.bキーが押されている((int)SlimDX.DirectInput.Key.LeftShift))) { // shift (+ctrl) + UpArrow (BGMAdjust) @@ -2259,8 +2197,8 @@ protected void t入力メソッド記憶(E楽器パート part) } -// protected abstract void t進行描画・AVI(); - protected void t進行描画・AVI() +// protected abstract void t進行描画_AVI(); + protected void t進行描画_AVI() { if (((base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) && (!CDTXMania.ConfigIni.bストイックモード)) { @@ -2268,8 +2206,8 @@ protected void t入力メソッド記憶(E楽器パート part) } } /* - protected abstract void t進行描画・BGA(); - protected void t進行描画・BGA(int x, int y) + protected abstract void t進行描画_BGA(); + protected void t進行描画_BGA(int x, int y) { if (((base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) && (CDTXMania.ConfigIni.bBGA有効)) { @@ -2277,19 +2215,19 @@ protected void t入力メソッド記憶(E楽器パート part) } } */ - protected abstract void t進行描画・DANGER(); - protected void t進行描画・MIDIBGM() + protected abstract void t進行描画_DANGER(); + protected void t進行描画_MIDIBGM() { if (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) { CStage.Eフェーズ eフェーズid1 = base.eフェーズID; } } - protected void t進行描画・RGBボタン() + protected void t進行描画_RGBボタン() { this.actRGB.On進行描画(); } - protected void t進行描画・STAGEFAILED() + protected void t進行描画_STAGEFAILED() { 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_フェードアウト))) { @@ -2299,15 +2237,15 @@ protected void t入力メソッド記憶(E楽器パート part) this.actFO.tフェードアウト開始(); } } - protected void t進行描画・WailingBonus() + protected void t進行描画_WailingBonus() { if ((base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) { this.actWailingBonus.On進行描画(); } } - protected abstract void t進行描画・Wailing枠(); - protected void t進行描画・Wailing枠(int GtWailingFrameX, int BsWailingFrameX, int GtWailingFrameY, int BsWailingFrameY) + protected abstract void t進行描画_Wailing枠(); + protected void t進行描画_Wailing枠(int GtWailingFrameX, int BsWailingFrameX, int GtWailingFrameY, int BsWailingFrameY) { if (this.txWailing枠 != null && CDTXMania.ConfigIni.bGuitar有効) { @@ -2323,14 +2261,14 @@ protected void t入力メソッド記憶(E楽器パート part) } - protected void t進行描画・チップファイアGB() + protected void t進行描画_チップファイアGB() { this.actChipFireGB.On進行描画(); } /* - protected abstract void t進行描画・パネル文字列(); - protected void t進行描画・パネル文字列() + protected abstract void t進行描画_パネル文字列(); + protected void t進行描画_パネル文字列() { if ((base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) { @@ -2343,23 +2281,23 @@ protected void tパネル文字列の設定() } */ - protected void t進行描画・ゲージ() + protected void t進行描画_ゲージ() { this.actGauge.On進行描画(); } - protected void t進行描画・コンボ() + protected void t進行描画_コンボ() { this.actCombo.On進行描画(); } - protected void t進行描画・スコア() + protected void t進行描画_スコア() { this.actScore.On進行描画(); } - protected void t進行描画・ステータスパネル() + protected void t進行描画_ステータスパネル() { this.actStatusPanels.On進行描画(); } - protected bool t進行描画・チップ(E楽器パート ePlayMode) + protected bool t進行描画_チップ(E楽器パート ePlayMode) { if ((base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED) || (base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) { @@ -2407,11 +2345,57 @@ protected void tパネル文字列の設定() int nInputAdjustTime = (bPChipIsAutoPlay || (pChip.e楽器パート == E楽器パート.UNKNOWN)) ? 0 : this.nInputAdjustTimeMs[(int)pChip.e楽器パート]; - if (((pChip.e楽器パート != E楽器パート.UNKNOWN) && !pChip.bHit) && - ((pChip.nバーからの距離dot.Drums < 0) && (this.e指定時刻からChipのJUDGEを返す(CSound管理.rc演奏用タイマ.n現在時刻, pChip, nInputAdjustTime) == E判定.Miss))) + int instIndex = (int) pChip.e楽器パート; + if ( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) && !pChip.bHit ) && + ( ( pChip.nバーからの距離dot[ instIndex ] < 0 ) && ( this.e指定時刻からChipのJUDGEを返す( CSound管理.rc演奏用タイマ.n現在時刻, pChip, nInputAdjustTime ) == E判定.Miss ) ) ) + { + this.tチップのヒット処理( CSound管理.rc演奏用タイマ.n現在時刻, pChip ); + } + + // #35411 chnmr0 add (ターゲットゴースト) + if ( CDTXMania.ConfigIni.eTargetGhost[instIndex] != ETargetGhostData.NONE && + CDTXMania.listTargetGhsotLag[instIndex] != null && + pChip.e楽器パート != E楽器パート.UNKNOWN && + pChip.nバーからの距離dot[instIndex] < 0 ) { - this.tチップのヒット処理(CSound管理.rc演奏用タイマ.n現在時刻, pChip); + if ( !pChip.bTargetGhost判定済み ) + { + pChip.bTargetGhost判定済み = true; + + int ghostLag = 128; + if( 0 <= pChip.n楽器パートでの出現順 && pChip.n楽器パートでの出現順 < CDTXMania.listTargetGhsotLag[instIndex].Count ) + { + ghostLag = CDTXMania.listTargetGhsotLag[instIndex][pChip.n楽器パートでの出現順]; + // 上位8ビットが1ならコンボが途切れている(ギターBAD空打ちでコンボ数を再現するための措置) + if( ghostLag > 255 ) + { + this.nコンボ数_TargetGhost[instIndex] = 0; + } + ghostLag = (ghostLag & 255) - 128; + } + else if( CDTXMania.ConfigIni.eTargetGhost[instIndex] == ETargetGhostData.PERFECT ) + { + ghostLag = 0; + } + + if ( ghostLag <= 127 ) + { + E判定 eJudge = this.e指定時刻からChipのJUDGEを返す(pChip.n発声時刻ms + ghostLag, pChip, 0, false); + this.nヒット数_TargetGhost[instIndex][(int)eJudge]++; + if (eJudge == E判定.Miss || eJudge == E判定.Poor) + { + this.n最大コンボ数_TargetGhost[instIndex] = Math.Max(this.n最大コンボ数_TargetGhost[instIndex], this.nコンボ数_TargetGhost[instIndex]); + this.nコンボ数_TargetGhost[instIndex] = 0; + } + else + { + this.n最大コンボ数_TargetGhost[instIndex] = Math.Max(this.n最大コンボ数_TargetGhost[instIndex], this.nコンボ数_TargetGhost[instIndex]); + this.nコンボ数_TargetGhost[instIndex]++; + } + } + } } + switch (pChip.nチャンネル番号) { //描画順の都合上こちらから描画。 @@ -2429,7 +2413,7 @@ protected void tパネル文字列の設定() case 0x1a: case 0x1b: case 0x1c: - this.t進行描画・チップ・ドラムス(configIni, ref dTX, ref pChip); + this.t進行描画_チップ_ドラムス(configIni, ref dTX, ref pChip); break; #endregion @@ -2518,9 +2502,9 @@ protected void tパネル文字列の設定() if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0)) { pChip.bHit = true; - if (dTX.listBPM.ContainsKey(pChip.n整数値・内部番号)) + if (dTX.listBPM.ContainsKey(pChip.n整数値_内部番号)) { - this.actPlayInfo.dbBPM = (dTX.listBPM[pChip.n整数値・内部番号].dbBPM値 * (((double)configIni.n演奏速度) / 20.0)) + dTX.BASEBPM; + this.actPlayInfo.dbBPM = (dTX.listBPM[pChip.n整数値_内部番号].dbBPM値 * (((double)configIni.n演奏速度) / 20.0)) + dTX.BASEBPM; if (CDTXMania.ConfigIni.bDrums有効) { @@ -2582,12 +2566,12 @@ protected void tパネル文字列の設定() case 0xD2: case 0xD3: - this.t進行描画・チップ・ギターベース(configIni, ref dTX, ref pChip, E楽器パート.GUITAR); + this.t進行描画_チップ_ギターベース(configIni, ref dTX, ref pChip, E楽器パート.GUITAR); break; #endregion #region [ 28: ウェイリング(ギター) ] case 0x28: // ウェイリング(ギター) - this.t進行描画・チップ・ギター・ウェイリング(configIni, ref dTX, ref pChip); + this.t進行描画_チップ_ギター_ウェイリング(configIni, ref dTX, ref pChip); break; #endregion #region [ 2f: ウェイリングサウンド(ギター) ] @@ -2622,8 +2606,8 @@ protected void tパネル文字列の設定() case 0x4C: case 0x4D: case 0x4E: - case 0x4F: //追加した順番の都合上、4F、4E・・・・という順でBonus1、Bonus2・・・という割り当てになってます。 - //this.t進行描画・チップ・ボーナス(configIni, ref dTX, ref pChip); + case 0x4F: //追加した順番の都合上、4F、4E____という順でBonus1、Bonus2___という割り当てになってます。 + //this.t進行描画_チップ_ボーナス(configIni, ref dTX, ref pChip); if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0)) { pChip.bHit = true; @@ -2641,7 +2625,7 @@ protected void tパネル文字列の設定() #endregion #region [ 53: フィルイン ] case 0x53: // フィルイン - this.t進行描画・チップ・フィルイン(configIni, ref dTX, ref pChip); + this.t進行描画_チップ_フィルイン(configIni, ref dTX, ref pChip); break; #endregion #region [ 54, 5A: 動画再生 ] @@ -2706,7 +2690,7 @@ protected void tパネル文字列の設定() { dTX.tWavの再生停止(this.n最後に再生したBGMの実WAV番号[pChip.nチャンネル番号 - 0x61]); dTX.tチップの再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, (int)Eレーン.BGM, dTX.nモニタを考慮した音量(E楽器パート.UNKNOWN)); - this.n最後に再生したBGMの実WAV番号[pChip.nチャンネル番号 - 0x61] = pChip.n整数値・内部番号; + this.n最後に再生したBGMの実WAV番号[pChip.nチャンネル番号 - 0x61] = pChip.n整数値_内部番号; } } break; @@ -2729,7 +2713,7 @@ protected void tパネル文字列の設定() // CDTXMania.DTX.tWavの再生停止( this.n最後に再生した実WAV番号.Guitar ); // CDTXMania.DTX.tチップの再生( pChip, n再生開始システム時刻ms, 8, n音量, bモニタ, b音程をずらして再生 ); - // this.n最後に再生した実WAV番号.Guitar = pChip.n整数値・内部番号; + // this.n最後に再生した実WAV番号.Guitar = pChip.n整数値_内部番号; // protected void tサウンド再生( CDTX.CChip pChip, long n再生開始システム時刻ms, E楽器パート part, int n音量, bool bモニタ, bool b音程をずらして再生 ) if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0)) @@ -2783,12 +2767,12 @@ protected void tパネル文字列の設定() case 0xE6: case 0xE7: case 0xE8: - this.t進行描画・チップ・ギターベース(configIni, ref dTX, ref pChip, E楽器パート.BASS); + this.t進行描画_チップ_ギターベース(configIni, ref dTX, ref pChip, E楽器パート.BASS); break; #endregion #region [ a8: ウェイリング(ベース) ] case 0xa8: // ウェイリング(ベース) - this.t進行描画・チップ・ベース・ウェイリング(configIni, ref dTX, ref pChip); + this.t進行描画_チップ_ベース_ウェイリング(configIni, ref dTX, ref pChip); break; #endregion #region [ af: ウェイリングサウンド(ベース) ] @@ -2815,7 +2799,7 @@ protected void tパネル文字列の設定() case 0xbc: case 0xbd: case 0xbe: - this.t進行描画・チップ・空打ち音設定・ドラム(configIni, ref dTX, ref pChip); + this.t進行描画_チップ_空打ち音設定_ドラム(configIni, ref dTX, ref pChip); break; #endregion #region [ ba: 空打ち音設定(ギター) ] @@ -2869,9 +2853,9 @@ protected void tパネル文字列の設定() { //Debug.WriteLine("[DA(AddMixer)] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString("x2") + ", wav=" + pChip.n整数値.ToString("x2") + ", time=" + pChip.n発声時刻ms); pChip.bHit = true; - if (listWAV.ContainsKey(pChip.n整数値・内部番号)) // 参照が遠いので後日最適化する + if (listWAV.ContainsKey(pChip.n整数値_内部番号)) // 参照が遠いので後日最適化する { - CDTX.CWAV wc = listWAV[pChip.n整数値・内部番号]; + CDTX.CWAV wc = listWAV[pChip.n整数値_内部番号]; for (int i = 0; i < nPolyphonicSounds; i++) { if (wc.rSound[i] != null) @@ -2890,9 +2874,9 @@ protected void tパネル文字列の設定() { //Debug.WriteLine("[DB(RemoveMixer)] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString("x2") + ", wav=" + pChip.n整数値.ToString("x2") + ", time=" + pChip.n発声時刻ms); pChip.bHit = true; - if (listWAV.ContainsKey(pChip.n整数値・内部番号)) // 参照が遠いので後日最適化する + if (listWAV.ContainsKey(pChip.n整数値_内部番号)) // 参照が遠いので後日最適化する { - CDTX.CWAV wc = listWAV[pChip.n整数値・内部番号]; + CDTX.CWAV wc = listWAV[pChip.n整数値_内部番号]; for (int i = 0; i < nPolyphonicSounds; i++) { if (wc.rSound[i] != null) @@ -2917,7 +2901,7 @@ protected void tパネル文字列の設定() } return false; } - protected bool t進行描画・小節線(E楽器パート ePlayMode) + protected bool t進行描画_小節線(E楽器パート ePlayMode) { if ((base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED) || (base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) { @@ -2940,7 +2924,7 @@ protected void tパネル文字列の設定() double ScrollSpeedBass = (this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass + 1.0) * 0.5 * 0.5 * 37.5 * speed / 60000.0; CDTX dTX = CDTXMania.DTX; - CConfigIni configIni = CDTXMania.ConfigIni; + CConfigIni configIni = CDTXMania.ConfigIni; for (int nCurrentTopChip = this.n現在のトップChip; nCurrentTopChip < dTX.listChip.Count; nCurrentTopChip++) { CDTX.CChip pChip = dTX.listChip[nCurrentTopChip]; @@ -2970,7 +2954,7 @@ protected void tパネル文字列の設定() #region [ 50: 小節線 ] case 0x50: // 小節線 { - this.t進行描画・チップ・小節線(configIni, ref dTX, ref pChip); + this.t進行描画_チップ_小節線(configIni, ref dTX, ref pChip); break; } #endregion @@ -2982,8 +2966,18 @@ protected void tパネル文字列の設定() } if ((ePlayMode == E楽器パート.DRUMS) && (configIni.nLaneDisp.Drums == 0 || configIni.nLaneDisp.Drums == 1) && pChip.b可視 && (this.txチップ != null)) { - // 27/02/2016 limyz shorten the judge line to duplicate Gitadora gameplay - this.txチップ.t2D描画(CDTXMania.app.Device, 0x127, configIni.bReverse.Drums ? ((this.nJudgeLinePosY.Drums + pChip.nバーからの距離dot.Drums) - 1) : ((this.nJudgeLinePosY.Drums - pChip.nバーからの距離dot.Drums) - 1), new Rectangle(0, 772, 0x207, 2)); + int l_drumPanelWidth = 0x22f; + int l_xOffset = 0; + if(configIni.eNumOfLanes.Drums == Eタイプ.B) + { + l_drumPanelWidth = 0x207; + } + else if (CDTXMania.ConfigIni.eNumOfLanes.Drums == Eタイプ.C) + { + l_drumPanelWidth = 447; + l_xOffset = 72; + } + this.txチップ.t2D描画(CDTXMania.app.Device, 0x127 + l_xOffset, configIni.bReverse.Drums ? ((this.nJudgeLinePosY.Drums + pChip.nバーからの距離dot.Drums) - 1) : ((this.nJudgeLinePosY.Drums - pChip.nバーからの距離dot.Drums) - 1), new Rectangle(0, 772, l_drumPanelWidth, 2)); } break; #endregion @@ -2991,7 +2985,7 @@ protected void tパネル文字列の設定() } return false; } - protected bool t進行描画・チップ・模様のみ(E楽器パート ePlayMode) + protected bool t進行描画_チップ_模様のみ(E楽器パート ePlayMode) { if ((base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED) || (base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) { @@ -3054,7 +3048,7 @@ protected void tパネル文字列の設定() case 0x1a: case 0x1b: case 0x1c: - this.t進行描画・チップ・模様のみ・ドラムス(configIni, ref dTX, ref pChip); + this.t進行描画_チップ_模様のみ_ドラムス(configIni, ref dTX, ref pChip); break; #endregion #region [ その他(未定義) ] @@ -3439,12 +3433,12 @@ public bool bCheckAutoPlay(CDTX.CChip pChip) } - protected abstract void t進行描画・チップ・ドラムス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip); - protected abstract void t進行描画・チップ・模様のみ・ドラムス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip); - //protected abstract void t進行描画・チップ・ギター( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ); - protected abstract void t進行描画・チップ・ギターベース(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst); + protected abstract void t進行描画_チップ_ドラムス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip); + protected abstract void t進行描画_チップ_模様のみ_ドラムス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip); + //protected abstract void t進行描画_チップ_ギター( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ); + protected abstract void t進行描画_チップ_ギターベース(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst); - protected void t進行描画・チップ・ギターベース(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst, + protected void t進行描画_チップ_ギターベース(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst, int barYNormal, int barYReverse, int showRangeY0, int showRangeY1, int openXg, int openXb, int rectOpenOffsetX, int rectOpenOffsetY, int openChipWidth, int chipHeight, int chipWidth, int guitarNormalX, int guitarLeftyX, int bassNormalX, int bassLeftyX, int drawDeltaX, int chipTexDeltaX) @@ -3907,8 +3901,49 @@ public bool bCheckAutoPlay(CDTX.CChip pChip) } } #endregion - //if ( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) ) - if ((!pChip.bHit) && (pChip.nバーからの距離dot[instIndex] < 0)) + //if ( ( configIni.bAutoPlay.Guitar && !pChip.bHit ) && ( pChip.nバーからの距離dot.Guitar < 0 ) ) + //if ( ( !pChip.bHit ) && ( pChip.nバーからの距離dot[ instIndex ] < 0 ) ) + + // #35411 2015.08.20 chnmr0 modified + // 従来のAUTO処理に加えてプレーヤーゴーストの再生機能を追加 + bool autoPlayCondition = (!pChip.bHit) && (pChip.nバーからの距離dot[instIndex] < 0); + if ( autoPlayCondition ) + { + //cInvisibleChip.StartSemiInvisible( inst ); + } + + bool autoPick = ( inst == E楽器パート.GUITAR ) ? bIsAutoPlay.GtPick : bIsAutoPlay.BsPick; + autoPlayCondition = !pChip.bHit && autoPick; + long ghostLag = 0; + bool bUsePerfectGhost = true; + + if ( (pChip.e楽器パート == E楽器パート.GUITAR || pChip.e楽器パート == E楽器パート.BASS ) && + CDTXMania.ConfigIni.eAutoGhost[(int)(pChip.e楽器パート)] != EAutoGhostData.PERFECT && + CDTXMania.listAutoGhostLag[(int)pChip.e楽器パート] != null && + 0 <= pChip.n楽器パートでの出現順 && + pChip.n楽器パートでの出現順 < CDTXMania.listAutoGhostLag[(int)pChip.e楽器パート].Count) + { + // #35411 (mod) Ghost data が有効なので 従来のAUTOではなくゴーストのラグを利用 + // 発生時刻と現在時刻からこのタイミングで演奏するかどうかを決定 + ghostLag = CDTXMania.listAutoGhostLag[(int)pChip.e楽器パート][pChip.n楽器パートでの出現順]; + bool resetCombo = ghostLag > 255; + ghostLag = (ghostLag & 255) - 128; + ghostLag -= (pChip.e楽器パート == E楽器パート.GUITAR ? nInputAdjustTimeMs.Guitar : nInputAdjustTimeMs.Bass); + autoPlayCondition &= (pChip.n発声時刻ms + ghostLag <= CSound管理.rc演奏用タイマ.n現在時刻ms); + if (resetCombo && autoPlayCondition ) + { + this.actCombo.n現在のコンボ数[(int)pChip.e楽器パート] = 0; + } + bUsePerfectGhost = false; + } + + if( bUsePerfectGhost ) + { + // 従来のAUTOを使用する場合 + autoPlayCondition &= ( pChip.nバーからの距離dot[ instIndex ] < 0 ); + } + + if ( autoPlayCondition ) { int lo = (inst == E楽器パート.GUITAR) ? 0 : 5; // lane offset bool autoR = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtR : bIsAutoPlay.BsR; @@ -3916,83 +3951,191 @@ public bool bCheckAutoPlay(CDTX.CChip pChip) bool autoB = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtB : bIsAutoPlay.BsB; bool autoY = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtY : bIsAutoPlay.BsY; bool autoP = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtP : bIsAutoPlay.BsP; - bool autoPick = (inst == E楽器パート.GUITAR) ? bIsAutoPlay.GtPick : bIsAutoPlay.BsPick; bool pushingR = CDTXMania.Pad.b押されている(inst, Eパッド.R); bool pushingG = CDTXMania.Pad.b押されている(inst, Eパッド.G); bool pushingB = CDTXMania.Pad.b押されている(inst, Eパッド.B); bool pushingY = CDTXMania.Pad.b押されている(inst, Eパッド.Y); bool pushingP = CDTXMania.Pad.b押されている(inst, Eパッド.P); - #region [ Chip Fire effects ] - bool bSuccessOPEN = bChipIsO && (autoR || !pushingR) && (autoG || !pushingG) && (autoB || !pushingB) && (autoY || !pushingY) && (autoP || !pushingP); - if ((bChipHasR && (autoR || pushingR) && autoPick) || bSuccessOPEN) - { - this.actChipFireGB.Start(0 + lo); - } - if ((bChipHasG && (autoG || pushingG) && autoPick) || bSuccessOPEN) - { - this.actChipFireGB.Start(1 + lo); - } - if ((bChipHasB && (autoB || pushingB) && autoPick) || bSuccessOPEN) - { - this.actChipFireGB.Start(2 + lo); - } - if ((bChipHasY && (autoY || pushingY) && autoPick) || bSuccessOPEN) - { - this.actChipFireGB.Start(3 + lo); - } - if ((bChipHasP && (autoP || pushingP) && autoPick) || bSuccessOPEN) - { - this.actChipFireGB.Start(4 + lo); - } - #endregion - if (autoPick) + #region [ Chip Fire effects (auto時用) ] + // autoPickでない時の処理は、 t入力処理_ギターベース(E楽器パート) で行う + bool bSuccessOPEN = bChipIsO && ( autoR || !pushingR ) && ( autoG || !pushingG ) && ( autoB || !pushingB ) && ( autoY || !pushingY ) && ( autoP || !pushingP ); + if ( ( bChipHasR && ( autoR || pushingR ) && autoPick ) || bSuccessOPEN && autoPick ) + { + this.actChipFireGB.Start( 0 + lo ); + } + if ( ( bChipHasG && ( autoG || pushingG ) && autoPick ) || bSuccessOPEN && autoPick ) + { + this.actChipFireGB.Start( 1 + lo ); + } + if ( ( bChipHasB && ( autoB || pushingB ) && autoPick ) || bSuccessOPEN && autoPick ) + { + this.actChipFireGB.Start( 2 + lo ); + } + if ( ( bChipHasY && ( autoY || pushingY ) && autoPick ) || bSuccessOPEN && autoPick ) + { + this.actChipFireGB.Start( 3 + lo ); + } + if ( ( bChipHasP && ( autoP || pushingP ) && autoPick ) || bSuccessOPEN && autoPick ) + { + this.actChipFireGB.Start( 4 + lo ); + } + #endregion + #region [ autopick ] + if ( autoPick ) + { + bool bMiss = true; + if ( bChipHasR == autoR && bChipHasG == autoG && bChipHasB == autoB && bChipHasY == autoY && bChipHasP == autoP ) // autoレーンとチップレーン一致時はOK + { // この条件を加えないと、同時に非autoレーンを押下している時にNGとなってしまう。 + bMiss = false; + } + else if ( ( autoR || ( bChipHasR == pushingR ) ) && ( autoG || ( bChipHasG == pushingG ) ) && ( autoB || ( bChipHasB == pushingB ) ) && ( autoY || ( bChipHasY == pushingY ) ) && ( autoP || bChipHasP == pushingP ) ) + // ( bChipHasR == ( pushingR | autoR ) ) && ( bChipHasG == ( pushingG | autoG ) ) && ( bChipHasB == ( pushingB | autoB ) ) ) + { + bMiss = false; + } + else if ( ( ( bChipIsO == true ) && ( !pushingR | autoR ) && ( !pushingG | autoG ) && ( !pushingB | autoB ) && ( !pushingY | autoY) && ( !pushingP | autoP) ) ) // OPEN時 + { + bMiss = false; + } + pChip.bHit = true; + this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms + ghostLag, inst, dTX.nモニタを考慮した音量( inst ), false, bMiss ); + this.r次にくるギターChip = null; + if ( !bMiss ) + { + this.tチップのヒット処理( pChip.n発声時刻ms + ghostLag, pChip ); + } + else + { + pChip.nLag = 0; // tチップのヒット処理()の引数最後がfalseの時はpChip.nLagを計算しないため、ここでAutoPickかつMissのLag=0を代入 + this.tチップのヒット処理( pChip.n発声時刻ms + ghostLag, pChip, false ); + } + int chWailingChip = ( inst == E楽器パート.GUITAR ) ? 0x28 : 0xA8; + CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( pChip.n発声時刻ms + ghostLag, chWailingChip, this.nInputAdjustTimeMs[ instIndex ], 140 ); + if ( item != null && !bMiss ) + { + this.queWailing[ instIndex ].Enqueue( item ); + } + } + #endregion + + // #35411 modify end + } + + if( pChip.e楽器パート == E楽器パート.GUITAR && CDTXMania.ConfigIni.bGraph有効.Guitar ) + { + #region[ ギターゴースト ] + if (CDTXMania.ConfigIni.eTargetGhost.Guitar != ETargetGhostData.NONE && + CDTXMania.listTargetGhsotLag.Guitar != null) { - bool bMiss = true; - if (bChipHasR == autoR && bChipHasG == autoG && bChipHasB == autoB && bChipHasY == autoY && bChipHasP == autoP) // autoレーンとチップレーン一致時はOK - { // この条件を加えないと、同時に非autoレーンを押下している時にNGとなってしまう。 - bMiss = false; - } - else if ((autoR || (bChipHasR == pushingR)) && (autoG || (bChipHasG == pushingG)) && (autoB || (bChipHasB == pushingB)) && (autoY || (bChipHasY == pushingY)) && (autoP || bChipHasP == pushingP)) - // ( bChipHasR == ( pushingR | autoR ) ) && ( bChipHasG == ( pushingG | autoG ) ) && ( bChipHasB == ( pushingB | autoB ) ) ) + double val = 0; + if (CDTXMania.ConfigIni.eTargetGhost.Guitar == ETargetGhostData.ONLINE) { - bMiss = false; + if (CDTXMania.DTX.n可視チップ数.Guitar > 0) + { + // Online Stats の計算式 + val = 100 * + (this.nヒット数_TargetGhost.Guitar.Perfect * 17 + + this.nヒット数_TargetGhost.Guitar.Great * 7 + + this.n最大コンボ数_TargetGhost.Guitar * 3) / (20.0 * CDTXMania.DTX.n可視チップ数.Guitar); + } } - else if (((bChipIsO == true) && (!pushingR | autoR) && (!pushingG | autoG) && (!pushingB | autoB) && (!pushingY | autoY) && (!pushingP | autoP))) // OPEN時 + else { - bMiss = false; + if( CDTXMania.ConfigIni.nSkillMode == 0 ) + { + val = CScoreIni.t旧演奏型スキルを計算して返す( + CDTXMania.DTX.n可視チップ数.Guitar, + this.nヒット数_TargetGhost.Guitar.Perfect, + this.nヒット数_TargetGhost.Guitar.Great, + this.nヒット数_TargetGhost.Guitar.Good, + this.nヒット数_TargetGhost.Guitar.Poor, + this.nヒット数_TargetGhost.Guitar.Miss, + E楽器パート.GUITAR, new STAUTOPLAY()); + } + else + { + val = CScoreIni.t演奏型スキルを計算して返す( + CDTXMania.DTX.n可視チップ数.Guitar, + this.nヒット数_TargetGhost.Guitar.Perfect, + this.nヒット数_TargetGhost.Guitar.Great, + this.nヒット数_TargetGhost.Guitar.Good, + this.nヒット数_TargetGhost.Guitar.Poor, + this.nヒット数_TargetGhost.Guitar.Miss, + this.n最大コンボ数_TargetGhost.Guitar, + E楽器パート.GUITAR, new STAUTOPLAY()); + } + } - pChip.bHit = true; - this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, inst, dTX.nモニタを考慮した音量(inst), false, bMiss); - this.r次にくるギターChip = null; - if (!bMiss) + if (val < 0) val = 0; + if (val > 100) val = 100; + this.actGraph.dbグラフ値目標_渡 = val; + } + #endregion + } + else if( pChip.e楽器パート == E楽器パート.BASS && CDTXMania.ConfigIni.bGraph有効.Bass ) + { + #region[ ベースゴースト ] + if (CDTXMania.ConfigIni.eTargetGhost.Bass != ETargetGhostData.NONE && + CDTXMania.listTargetGhsotLag.Bass != null) + { + double val = 0; + if (CDTXMania.ConfigIni.eTargetGhost.Bass == ETargetGhostData.ONLINE) { - this.tチップのヒット処理(pChip.n発声時刻ms, pChip); + if (CDTXMania.DTX.n可視チップ数.Bass > 0) + { + // Online Stats の計算式 + val = 100 * + (this.nヒット数_TargetGhost.Bass.Perfect * 17 + + this.nヒット数_TargetGhost.Bass.Great * 7 + + this.n最大コンボ数_TargetGhost.Bass * 3) / (20.0 * CDTXMania.DTX.n可視チップ数.Bass); + } } else { - pChip.nLag = 0; // tチップのヒット処理()の引数最後がfalseの時はpChip.nLagを計算しないため、ここでAutoPickかつMissのLag=0を代入 - this.tチップのヒット処理(pChip.n発声時刻ms, pChip, false); - } - int chWailingChip = (inst == E楽器パート.GUITAR) ? 0x28 : 0xA8; - CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip(pChip.n発声時刻ms, chWailingChip, this.nInputAdjustTimeMs[instIndex], 140); - if (item != null && !bMiss) - { - this.queWailing[instIndex].Enqueue(item); + if( CDTXMania.ConfigIni.nSkillMode == 0 ) + { + val = CScoreIni.t旧演奏型スキルを計算して返す( + CDTXMania.DTX.n可視チップ数.Bass, + this.nヒット数_TargetGhost.Bass.Perfect, + this.nヒット数_TargetGhost.Bass.Great, + this.nヒット数_TargetGhost.Bass.Good, + this.nヒット数_TargetGhost.Bass.Poor, + this.nヒット数_TargetGhost.Bass.Miss, + E楽器パート.BASS, new STAUTOPLAY()); + } + else + { + val = CScoreIni.t演奏型スキルを計算して返す( + CDTXMania.DTX.n可視チップ数.Bass, + this.nヒット数_TargetGhost.Bass.Perfect, + this.nヒット数_TargetGhost.Bass.Great, + this.nヒット数_TargetGhost.Bass.Good, + this.nヒット数_TargetGhost.Bass.Poor, + this.nヒット数_TargetGhost.Bass.Miss, + this.n最大コンボ数_TargetGhost.Bass, + E楽器パート.BASS, new STAUTOPLAY()); + } + } + if (val < 0) val = 0; + if (val > 100) val = 100; + this.actGraph.dbグラフ値目標_渡 = val; } + #endregion } - return; - } // end of "if configIni.bGuitar有効" - if (!pChip.bHit && (pChip.nバーからの距離dot[instIndex] < 0)) // Guitar/Bass無効の場合は、自動演奏する - { - pChip.bHit = true; - this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, inst, dTX.nモニタを考慮した音量(inst)); - } + + return; + } // end of "if configIni.bGuitar有効" + if ( !pChip.bHit && ( pChip.nバーからの距離dot[ instIndex ] < 0 ) ) // Guitar/Bass無効の場合は、自動演奏する + { + pChip.bHit = true; + this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, inst, dTX.nモニタを考慮した音量( inst ) ); + } } - protected virtual void t進行描画・チップ・ギターベース・ウェイリング(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst) + protected virtual void t進行描画_チップ_ギターベース_ウェイリング(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst) { int indexInst = (int)inst; if (configIni.bGuitar有効) @@ -4068,24 +4211,24 @@ public bool bCheckAutoPlay(CDTX.CChip pChip) } pChip.bHit = true; } - protected virtual void t進行描画・チップ・ギター・ウェイリング(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) + protected virtual void t進行描画_チップ_ギター_ウェイリング(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) { - t進行描画・チップ・ギターベース・ウェイリング(configIni, ref dTX, ref pChip, E楽器パート.GUITAR); + t進行描画_チップ_ギターベース_ウェイリング(configIni, ref dTX, ref pChip, E楽器パート.GUITAR); } - protected abstract void t進行描画・チップ・フィルイン(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip); - protected abstract void t進行描画・チップ・ボーナス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip); - protected void t進行描画・フィルインエフェクト() + protected abstract void t進行描画_チップ_フィルイン(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip); + protected abstract void t進行描画_チップ_ボーナス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip); + protected void t進行描画_フィルインエフェクト() { this.actFillin.On進行描画(); } - protected abstract void t進行描画・チップ・小節線(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip); - //protected abstract void t進行描画・チップ・ベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ); - protected virtual void t進行描画・チップ・ベース・ウェイリング(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) + protected abstract void t進行描画_チップ_小節線(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip); + //protected abstract void t進行描画_チップ_ベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ); + protected virtual void t進行描画_チップ_ベース_ウェイリング(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) { - t進行描画・チップ・ギターベース・ウェイリング(configIni, ref dTX, ref pChip, E楽器パート.BASS); + t進行描画_チップ_ギターベース_ウェイリング(configIni, ref dTX, ref pChip, E楽器パート.BASS); } - protected abstract void t進行描画・チップ・空打ち音設定・ドラム(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip); - protected void t進行描画・チップアニメ() + protected abstract void t進行描画_チップ_空打ち音設定_ドラム(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip); + protected void t進行描画_チップアニメ() { for (int i = 0; i < 3; i++) // 0=drums, 1=guitar, 2=bass { @@ -4107,7 +4250,7 @@ public bool bCheckAutoPlay(CDTX.CChip pChip) this.ct登場用.t進行(); } - protected bool t進行描画・フェードイン・アウト() + protected bool t進行描画_フェードイン_アウト() { switch (base.eフェーズID) { @@ -4136,29 +4279,29 @@ public bool bCheckAutoPlay(CDTX.CChip pChip) } return false; } - protected void t進行描画・レーンフラッシュD() + protected void t進行描画_レーンフラッシュD() { if ((base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED) && (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)) { this.actLaneFlushD.On進行描画(); } } - protected void t進行描画・レーンフラッシュGB() + protected void t進行描画_レーンフラッシュGB() { if (CDTXMania.ConfigIni.bGuitar有効) { this.actLaneFlushGB.On進行描画(); } } - protected abstract void t進行描画・演奏情報(); - protected void t進行描画・演奏情報(int x, int y) + protected abstract void t進行描画_演奏情報(); + protected void t進行描画_演奏情報(int x, int y) { if (!CDTXMania.ConfigIni.b演奏情報を表示しない) { this.actPlayInfo.t進行描画(x, y); } } - protected void t進行描画・背景() + protected void t進行描画_背景() { if (this.tx背景 != null) @@ -4168,7 +4311,7 @@ public bool bCheckAutoPlay(CDTX.CChip pChip) //CDTXMania.app.Device.Clear( ClearFlags.ZBuffer | ClearFlags.Target, Color.Black, 0f, 0 ); } - protected void t進行描画・判定ライン() + protected void t進行描画_判定ライン() { if (CDTXMania.ConfigIni.bDrums有効) { @@ -4176,26 +4319,37 @@ public bool bCheckAutoPlay(CDTX.CChip pChip) if (CDTXMania.ConfigIni.bJudgeLineDisp.Drums) { // #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする - // 27/02/2016 limyz shorten the judge line to duplicate Gitadora gameplay - this.txヒットバー.t2D描画(CDTXMania.app.Device, 295, y, new Rectangle(0, 0, 0x207, 6)); + // Check for numofLanes config to decide on the length to draw + int l_drumPanelWidth = 0x22f; + int l_xOffset = 0; + if (CDTXMania.ConfigIni.eNumOfLanes.Drums == Eタイプ.B) + { + l_drumPanelWidth = 0x207; + } + else if (CDTXMania.ConfigIni.eNumOfLanes.Drums == Eタイプ.C) + { + l_drumPanelWidth = 447; + l_xOffset = 72; + } + this.txヒットバー.t2D描画(CDTXMania.app.Device, 295 + l_xOffset, y, new Rectangle(0, 0, l_drumPanelWidth, 6)); } if (CDTXMania.ConfigIni.b演奏情報を表示する) this.actLVFont.t文字列描画(295, (CDTXMania.ConfigIni.bReverse.Drums ? y - 20 : y + 8), CDTXMania.ConfigIni.nJudgeLine.Drums.ToString()); } } - protected void t進行描画・判定文字列() + protected void t進行描画_判定文字列() { this.actJudgeString.On進行描画(); } - protected void t進行描画・判定文字列1・通常位置指定の場合() + protected void t進行描画_判定文字列1_通常位置指定の場合() { if (((Eタイプ)CDTXMania.ConfigIni.判定文字表示位置.Drums) != Eタイプ.B) { this.actJudgeString.On進行描画(); } } - protected void t進行描画・判定文字列2・判定ライン上指定の場合() + protected void t進行描画_判定文字列2_判定ライン上指定の場合() { if (((Eタイプ)CDTXMania.ConfigIni.判定文字表示位置.Drums) == Eタイプ.B) { @@ -4203,7 +4357,7 @@ public bool bCheckAutoPlay(CDTX.CChip pChip) } } - protected void t進行描画・譜面スクロール速度() + protected void t進行描画_譜面スクロール速度() { this.act譜面スクロール速度.On進行描画(); } @@ -4294,17 +4448,17 @@ protected void t背景テクスチャの生成(string DefaultBgFilename, Rectang image.Dispose(); } - protected virtual void t入力処理・ギター() + protected virtual void t入力処理_ギター() { - t入力処理・ギターベース(E楽器パート.GUITAR); + t入力処理_ギターベース(E楽器パート.GUITAR); } - protected virtual void t入力処理・ベース() + protected virtual void t入力処理_ベース() { - t入力処理・ギターベース(E楽器パート.BASS); + t入力処理_ギターベース(E楽器パート.BASS); } - protected virtual void t入力処理・ギターベース(E楽器パート inst) + protected virtual void t入力処理_ギターベース(E楽器パート inst) { int indexInst = (int)inst; #region [ スクロール速度変更 ] @@ -5148,13 +5302,13 @@ protected void t背景テクスチャの生成(string DefaultBgFilename, Rectang // 以下、間違いレーンでのピック時 CDTX.CChip NoChipPicked = (inst == E楽器パート.GUITAR) ? this.r現在の空うちギターChip : this.r現在の空うちベースChip; - if ((NoChipPicked != null) || ((NoChipPicked = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, chWailingSound, this.nInputAdjustTimeMs[indexInst])) != null)) + if ((NoChipPicked != null) || ((NoChipPicked = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, chWailingSound, this.nInputAdjustTimeMs[indexInst])) != null)) { this.tサウンド再生(NoChipPicked, CSound管理.rc演奏用タイマ.nシステム時刻, inst, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する[indexInst], true); } if (!CDTXMania.ConfigIni.bLight[indexInst]) { - this.tチップのヒット処理・BadならびにTight時のMiss(inst); + this.tチップのヒット処理_BadならびにTight時のMiss(inst); } } } diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217GuitarWailingBonus.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217GuitarWailingBonus.cs" index b2c3de63..1d346463 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217GuitarWailingBonus.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217GuitarWailingBonus.cs" @@ -43,7 +43,7 @@ public override void Start( E楽器パート part, CDTX.CChip r歓声Chip ) CDTXMania.DTX.tチップの再生( r歓声Chip, CSound管理.rc演奏用タイマ.nシステム時刻, (int) Eレーン.BGM, CDTXMania.DTX.nモニタを考慮した音量( E楽器パート.UNKNOWN ) ); return; } - CDTXMania.Skin.sound歓声音.n位置・次に鳴るサウンド = ( part == E楽器パート.GUITAR ) ? -50 : 50; + CDTXMania.Skin.sound歓声音.n位置_次に鳴るサウンド = ( part == E楽器パート.GUITAR ) ? -50 : 50; CDTXMania.Skin.sound歓声音.t再生する(); return; } diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\263\343\203\263\343\203\234.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\263\343\203\263\343\203\234.cs" index e6c3b79d..e7d443a1 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\263\343\203\263\343\203\234.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\263\343\203\263\343\203\234.cs" @@ -8,22 +8,22 @@ internal class CAct演奏Guitarコンボ : CAct演奏Combo共通 { // CAct演奏Combo共通 実装 - protected override void tコンボ表示・ギター( int nCombo値, int nジャンプインデックス ) + protected override void tコンボ表示_ギター( int nCombo値, int nジャンプインデックス ) { int x = 560; int y = 220; - base.tコンボ表示・ギター(nCombo値, nジャンプインデックス, x, y); + base.tコンボ表示_ギター(nCombo値, nジャンプインデックス, x, y); } - protected override void tコンボ表示・ドラム( int nCombo値, int nジャンプインデックス ) + protected override void tコンボ表示_ドラム( int nCombo値, int nジャンプインデックス ) { } - protected override void tコンボ表示・ベース( int nCombo値, int nジャンプインデックス ) + protected override void tコンボ表示_ベース( int nCombo値, int nジャンプインデックス ) { int x = 845; int y = 220; - base.tコンボ表示・ベース(nCombo値, nジャンプインデックス, x, y); + base.tコンボ表示_ベース(nCombo値, nジャンプインデックス, x, y); } } } diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\202\263\343\202\242.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\202\263\343\202\242.cs" index 920ce01d..c2b49894 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\202\263\343\202\242.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\202\263\343\202\242.cs" @@ -27,7 +27,7 @@ public override void On活性化() this.n本体Y = 12; } - if (CDTXMania.ConfigIni.bGraph有効) + if (CDTXMania.ConfigIni.bGraph有効.Guitar || CDTXMania.ConfigIni.bGraph有効.Bass ) { if (!CDTXMania.ConfigIni.bギターが全部オートプレイである && CDTXMania.ConfigIni.bベースが全部オートプレイである) { diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs" index 4b7e1d8d..f7f4f525 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs" @@ -169,7 +169,7 @@ public override void On活性化() this.n本体X[0] = 0; this.n本体X[1] = 373; this.n本体X[2] = 665; - this.n本体Y = 270; + this.n本体Y = 254; if (!CDTXMania.DTX.bチップがある.Bass) { @@ -193,7 +193,7 @@ public override void On活性化() this.n本体X[1] = 0; } } - else if (CDTXMania.ConfigIni.bGraph有効) + else if (CDTXMania.ConfigIni.bGraph有効.Guitar || CDTXMania.ConfigIni.bGraph有効.Bass ) { if (!CDTXMania.ConfigIni.bギターが全部オートプレイである && CDTXMania.ConfigIni.bベースが全部オートプレイである) { @@ -208,8 +208,8 @@ public override void On活性化() this.strPlayerName = new string[ 2 ]; this.strTitleName = new string[ 2 ]; - this.ft称号フォント = new Font( CDTXMania.ConfigIni.str曲名表示フォント, 16f, FontStyle.Regular, GraphicsUnit.Pixel ); this.prv表示用フォント = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str曲名表示フォント ), 20, FontStyle.Regular ); + this.prv称号フォント = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str曲名表示フォント ), 12, FontStyle.Regular ); this.txスキルパネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_SkillPanel.png")); this.txパネル文字[0] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Ratenumber_s.png")); this.txパネル文字[1] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Ratenumber_l.png")); @@ -225,6 +225,8 @@ public override void On非活性化() this.ft称号フォント.Dispose(); this.ft称号フォント = null; } + CDTXMania.t安全にDisposeする( ref this.prv表示用フォント ); + CDTXMania.t安全にDisposeする( ref this.prv称号フォント ); CDTXMania.tテクスチャの解放(ref this.txスキルパネル); CDTXMania.tテクスチャの解放(ref this.txパネル文字[0]); CDTXMania.tテクスチャの解放(ref this.txパネル文字[1]); @@ -328,12 +330,17 @@ public override void OnManagedリソースの作成() #endregion #region[ 名前とか ] Bitmap bmpCardName = new Bitmap(1, 1); - bmpCardName = this.prv表示用フォント.DrawPrivateFont( this.strPlayerName[ i ], Color.White, Color.Transparent, clNameColor, ( CDTXMania.ConfigIni.nNameColor[ 1 ] > 11 ? clNameColorLower : clNameColor)); + bmpCardName = this.prv表示用フォント.DrawPrivateFont( this.strPlayerName[ i ], Color.White, Color.Transparent, clNameColor, ( CDTXMania.ConfigIni.nNameColor[ 0 ] > 11 ? clNameColorLower : clNameColor ) ); + Bitmap bmpTitleName = new Bitmap(1, 1); + bmpTitleName = this.prv称号フォント.DrawPrivateFont( this.strTitleName[ i ], Color.White, Color.Transparent ); - graネームプレート用.DrawImage(bmpCardName, -2f, 26f); - graネームプレート用.DrawString(this.strTitleName[ i ], this.ft称号フォント, Brushes.White, (float)8f, (float)12f); + graネームプレート用.DrawImage( bmpCardName, -2f, 26f ); + graネームプレート用.DrawImage( bmpTitleName, 6f, 8f ); #endregion + bmpCardName.Dispose(); + bmpTitleName.Dispose(); + this.txネームプレート用文字[ i ] = new CTexture( CDTXMania.app.Device, image2, CDTXMania.TextureFormat, false ); image2.Dispose(); } @@ -367,16 +374,8 @@ public override int On進行描画() { if (this.n本体X[ i ] != 0) { - string str = string.Format( "{0:0.00}", ( (float)CDTXMania.DTX.LEVEL[ i ] ) / 10f ); + string str = string.Format( "{0:0.00}", ( (float)CDTXMania.DTX.LEVEL[ i ] ) / 10.0f + ( CDTXMania.DTX.LEVELDEC[ i ] != 0 ? CDTXMania.DTX.LEVELDEC[ i ] / 100.0f : 0 ) ); bool bCLASSIC = false; - if( CDTXMania.DTX.LEVEL[ i ] > 100 ) - { - str = string.Format( "{0:0.00}", ( (float)CDTXMania.DTX.LEVEL[ i ] ) / 100f ); - } - else - { - str = string.Format( "{0:0.00}", ( (float)CDTXMania.DTX.LEVEL[ i ] ) / 10.0f + ( CDTXMania.DTX.LEVELDEC[ i ] != 0 ? CDTXMania.DTX.LEVELDEC[ i ] / 100.0f : 0 ) ); - } if( CDTXMania.ConfigIni.bCLASSIC譜面判別を有効にする && ( i == 1 ? !CDTXMania.DTX.bチップがある.YPGuitar : !CDTXMania.DTX.bチップがある.YPBass ) && @@ -389,25 +388,25 @@ public override int On進行描画() this.txスキルパネル.t2D描画( CDTXMania.app.Device, this.n本体X[ i ], this.n本体Y ); this.txネームプレート用文字[ i - 1 ].t2D描画( CDTXMania.app.Device, this.n本体X[ i ], this.n本体Y ); - this.t小文字表示( 80 + this.n本体X[ i ], 72 + this.n本体Y, string.Format( "{0,4:###0}", CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[ i ].Perfect ) ); - this.t小文字表示( 80 + this.n本体X[ i ], 102 + this.n本体Y, string.Format( "{0,4:###0}", CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[ i ].Great ) ); - this.t小文字表示( 80 + this.n本体X[ i ], 132 + this.n本体Y, string.Format( "{0,4:###0}", CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[ i ].Good ) ); - this.t小文字表示( 80 + this.n本体X[ i ], 162 + this.n本体Y, string.Format( "{0,4:###0}", CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[ i ].Poor ) ); - this.t小文字表示( 80 + this.n本体X[ i ], 192 + this.n本体Y, string.Format( "{0,4:###0}", CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[ i ].Miss ) ); + this.t小文字表示( 80 + this.n本体X[ i ], 72 + this.n本体Y, string.Format( "{0,4:###0}", CDTXMania.stage演奏ギター画面.nヒット数_Auto含まない[ i ].Perfect ) ); + this.t小文字表示( 80 + this.n本体X[ i ], 102 + this.n本体Y, string.Format( "{0,4:###0}", CDTXMania.stage演奏ギター画面.nヒット数_Auto含まない[ i ].Great ) ); + this.t小文字表示( 80 + this.n本体X[ i ], 132 + this.n本体Y, string.Format( "{0,4:###0}", CDTXMania.stage演奏ギター画面.nヒット数_Auto含まない[ i ].Good ) ); + this.t小文字表示( 80 + this.n本体X[ i ], 162 + this.n本体Y, string.Format( "{0,4:###0}", CDTXMania.stage演奏ギター画面.nヒット数_Auto含まない[ i ].Poor ) ); + this.t小文字表示( 80 + this.n本体X[ i ], 192 + this.n本体Y, string.Format( "{0,4:###0}", CDTXMania.stage演奏ギター画面.nヒット数_Auto含まない[ i ].Miss ) ); this.t小文字表示( 80 + this.n本体X[ i ], 222 + this.n本体Y, string.Format( "{0,4:###0}", CDTXMania.stage演奏ギター画面.actCombo.n現在のコンボ数.最高値[ i ] ) ); int n現在のノーツ数 = - CDTXMania.stage演奏ギター画面.nヒット数・Auto含む[ i ].Perfect + - CDTXMania.stage演奏ギター画面.nヒット数・Auto含む[ i ].Great + - CDTXMania.stage演奏ギター画面.nヒット数・Auto含む[ i ].Good + - CDTXMania.stage演奏ギター画面.nヒット数・Auto含む[ i ].Poor + - CDTXMania.stage演奏ギター画面.nヒット数・Auto含む[ i ].Miss; - - dbPERFECT率 = Math.Round( ( 100.0 * CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[ i ].Perfect) / n現在のノーツ数 ); - dbGREAT率 = Math.Round( ( 100.0 * CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[ i ].Great / n現在のノーツ数 ) ); - dbGOOD率 = Math.Round( ( 100.0 * CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[ i ].Good / n現在のノーツ数 ) ); - dbPOOR率 = Math.Round( ( 100.0 * CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[ i ].Poor / n現在のノーツ数 ) ); - dbMISS率 = Math.Round( ( 100.0 * CDTXMania.stage演奏ギター画面.nヒット数・Auto含まない[ i ].Miss / n現在のノーツ数 ) ); + CDTXMania.stage演奏ギター画面.nヒット数_Auto含む[ i ].Perfect + + CDTXMania.stage演奏ギター画面.nヒット数_Auto含む[ i ].Great + + CDTXMania.stage演奏ギター画面.nヒット数_Auto含む[ i ].Good + + CDTXMania.stage演奏ギター画面.nヒット数_Auto含む[ i ].Poor + + CDTXMania.stage演奏ギター画面.nヒット数_Auto含む[ i ].Miss; + + dbPERFECT率 = Math.Round( ( 100.0 * CDTXMania.stage演奏ギター画面.nヒット数_Auto含まない[ i ].Perfect) / n現在のノーツ数 ); + dbGREAT率 = Math.Round( ( 100.0 * CDTXMania.stage演奏ギター画面.nヒット数_Auto含まない[ i ].Great / n現在のノーツ数 ) ); + dbGOOD率 = Math.Round( ( 100.0 * CDTXMania.stage演奏ギター画面.nヒット数_Auto含まない[ i ].Good / n現在のノーツ数 ) ); + dbPOOR率 = Math.Round( ( 100.0 * CDTXMania.stage演奏ギター画面.nヒット数_Auto含まない[ i ].Poor / n現在のノーツ数 ) ); + dbMISS率 = Math.Round( ( 100.0 * CDTXMania.stage演奏ギター画面.nヒット数_Auto含まない[ i ].Miss / n現在のノーツ数 ) ); dbMAXCOMBO率 = Math.Round( ( 100.0 * CDTXMania.stage演奏ギター画面.actCombo.n現在のコンボ数.最高値[ i ] / n現在のノーツ数 ) ); if( double.IsNaN( dbPERFECT率 ) ) @@ -430,11 +429,11 @@ public override int On進行描画() this.t小文字表示( 167 + this.n本体X[ i ], 192 + this.n本体Y, string.Format( "{0,3:##0}%", dbMISS率 ) ); this.t小文字表示( 167 + this.n本体X[ i ], 222 + this.n本体Y, string.Format( "{0,3:##0}%", dbMAXCOMBO率 ) ); - this.t大文字表示(58 + this.n本体X[ i ], 277 + this.n本体Y, string.Format( "{0,6:##0.00}", CDTXMania.stage演奏ドラム画面.actGraph.dbグラフ値現在_渡 ) ); - this.t大文字表示(88 + this.n本体X[ i ], 363 + this.n本体Y, string.Format( "{0,6:##0.00}", CDTXMania.stage演奏ドラム画面.actGraph.dbグラフ値現在_渡 * ( CDTXMania.DTX.LEVEL[ i ] / 10.0 ) * 0.2 ) ); + this.t大文字表示(58 + this.n本体X[ i ], 277 + this.n本体Y, string.Format( "{0,6:##0.00}", CDTXMania.stage演奏ギター画面.actStatusPanels.db現在の達成率.Guitar ) ); + this.t大文字表示(88 + this.n本体X[ i ], 363 + this.n本体Y, string.Format( "{0,6:##0.00}", CDTXMania.stage演奏ギター画面.actStatusPanels.db現在の達成率.Guitar * ( CDTXMania.DTX.LEVEL[ i ] / 10.0 ) * 0.2 ) ); if( this.tx難易度パネル != null ) - this.tx難易度パネル.t2D描画( CDTXMania.app.Device, 14 + this.n本体X[ i ], 266 + this.n本体Y, new Rectangle( 0, 60 * nIndex, 60, 60 ) ); + this.tx難易度パネル.t2D描画( CDTXMania.app.Device, 14 + this.n本体X[ i ], 266 + this.n本体Y, new Rectangle( base.rectDiffPanelPoint.X, base.rectDiffPanelPoint.Y, 60, 60 ) ); this.tレベル数字描画( ( bCLASSIC == true ? 26 : 18 ) + this.n本体X[ i ], 290 + this.n本体Y, str ); } } @@ -462,6 +461,7 @@ private struct ST文字位置 private CTexture txスキルパネル; private CTexture[] txパネル文字; private CPrivateFastFont prv表示用フォント; + private CPrivateFastFont prv称号フォント; private Font ft称号フォント; private string[] strPlayerName; private string[] strTitleName; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227.cs" index da411504..a9284ab9 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227.cs" @@ -1341,7 +1341,7 @@ public override int On進行描画() // goto Label_06B7; continue; } - num5 = ( ( (Eタイプ) CDTXMania.ConfigIni.判定文字表示位置.Bass ) == Eタイプ.B ) ? 770 : 1020; + num5 = ( ( (Eタイプ) CDTXMania.ConfigIni.判定文字表示位置.Bass ) == Eタイプ.B ) ? 770 : 1060; if ( ( (Eタイプ) CDTXMania.ConfigIni.判定文字表示位置.Bass ) == Eタイプ.C ) num6 = CDTXMania.ConfigIni.bReverse.Bass ? 650 : 80; else @@ -1354,7 +1354,7 @@ public override int On進行描画() // goto Label_06B7; continue; } - num5 = ( ( (Eタイプ) CDTXMania.ConfigIni.判定文字表示位置.Guitar ) == Eタイプ.B ) ? 420 : 160; + num5 = ( ( (Eタイプ) CDTXMania.ConfigIni.判定文字表示位置.Guitar ) == Eタイプ.B ) ? 420 : 180; if ( ( (Eタイプ) CDTXMania.ConfigIni.判定文字表示位置.Guitar ) == Eタイプ.C ) num6 = CDTXMania.ConfigIni.bReverse.Guitar ? 650 : 80; else @@ -1496,7 +1496,7 @@ public override int On進行描画() CDTXMania.stage演奏ギター画面.tx判定画像anime_2.vc拡大縮小倍率 = new Vector3(base.st状態[j].fX方向拡大率_棒, base.st状態[j].fY方向拡大率_棒, 1f); CDTXMania.stage演奏ギター画面.tx判定画像anime_2.fZ軸中心回転 = base.st状態[j].fZ軸回転度_棒; - CDTXMania.stage演奏ギター画面.tx判定画像anime_2.t2D描画(CDTXMania.app.Device, x_棒, y_棒, new Rectangle(0, 110, 210, 15)); + CDTXMania.stage演奏ギター画面.tx判定画像anime_2.t2D描画(CDTXMania.app.Device, x_棒, y_棒, new Rectangle(0, 110, 210, 20)); CDTXMania.stage演奏ギター画面.tx判定画像anime.vc拡大縮小倍率 = new Vector3(base.st状態[j].fX方向拡大率, base.st状態[j].fY方向拡大率, 1f); CDTXMania.stage演奏ギター画面.tx判定画像anime.fZ軸中心回転 = base.st状態[j].fZ軸回転度; @@ -1515,7 +1515,7 @@ public override int On進行描画() { CDTXMania.stage演奏ギター画面.tx判定画像anime_2.vc拡大縮小倍率 = new Vector3(base.st状態[j].fX方向拡大率_棒, base.st状態[j].fY方向拡大率_棒, 1f); CDTXMania.stage演奏ギター画面.tx判定画像anime_2.fZ軸中心回転 = base.st状態[j].fZ軸回転度_棒; - CDTXMania.stage演奏ギター画面.tx判定画像anime_2.t2D描画(CDTXMania.app.Device, x_棒, y_棒, new Rectangle(0, 125, 210, 15)); + CDTXMania.stage演奏ギター画面.tx判定画像anime_2.t2D描画(CDTXMania.app.Device, x_棒, y_棒, new Rectangle(0, 130, 210, 20)); CDTXMania.stage演奏ギター画面.tx判定画像anime.vc拡大縮小倍率 = new Vector3(base.st状態[j].fX方向拡大率, base.st状態[j].fY方向拡大率, 1f); CDTXMania.stage演奏ギター画面.tx判定画像anime.fZ軸中心回転 = base.st状態[j].fZ軸回転度; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CStage\346\274\224\345\245\217\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CStage\346\274\224\345\245\217\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242.cs" index a7f5f39e..3c6f0d03 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CStage\346\274\224\345\245\217\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CStage\346\274\224\345\245\217\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242.cs" @@ -50,8 +50,8 @@ public void t演奏結果を格納する( out CScoreIni.C演奏記録 Drums, out { Drums = new CScoreIni.C演奏記録(); - base.t演奏結果を格納する・ギター( out Guitar ); - base.t演奏結果を格納する・ベース( out Bass ); + base.t演奏結果を格納する_ギター( out Guitar ); + base.t演奏結果を格納する_ベース( out Bass ); // if ( CDTXMania.ConfigIni.bIsSwappedGuitarBass ) // #24063 2011.1.24 yyagi Gt/Bsを入れ替えていたなら、演奏結果も入れ替える // { @@ -69,23 +69,29 @@ public void t演奏結果を格納する( out CScoreIni.C演奏記録 Drums, out public override void On活性化() { + int nGraphUsePart = CDTXMania.ConfigIni.bGraph有効.Guitar ? 1 : 2; this.ct登場用 = new CCounter(0, 12, 16, CDTXMania.Timer); dtLastQueueOperation = DateTime.MinValue; - if (CDTXMania.bコンパクトモード) + if( CDTXMania.bコンパクトモード ) { var score = new Cスコア(); CDTXMania.Songs管理.tScoreIniを読み込んで譜面情報を設定する(CDTXMania.strコンパクトモードファイル + ".score.ini", ref score); - if (CDTXMania.ConfigIni.bGraph有効 && ((CDTXMania.DTX.bチップがある.Guitar && !CDTXMania.DTX.bチップがある.Bass) || (CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass && !CDTXMania.ConfigIni.bギターが全部オートプレイである && CDTXMania.ConfigIni.bベースが全部オートプレイである))) - this.actGraph.dbグラフ値目標_渡 = score.譜面情報.最大スキル[1]; - else if (CDTXMania.ConfigIni.bGraph有効 && ((!CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass) || (CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass && CDTXMania.ConfigIni.bギターが全部オートプレイである && !CDTXMania.ConfigIni.bベースが全部オートプレイである))) - this.actGraph.dbグラフ値目標_渡 = score.譜面情報.最大スキル[2]; + this.actGraph.dbグラフ値目標_渡 = score.譜面情報.最大スキル[ nGraphUsePart ]; } else { - if (CDTXMania.ConfigIni.bGraph有効 && ((CDTXMania.DTX.bチップがある.Guitar && !CDTXMania.DTX.bチップがある.Bass) || (CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass && !CDTXMania.ConfigIni.bギターが全部オートプレイである && CDTXMania.ConfigIni.bベースが全部オートプレイである))) - this.actGraph.dbグラフ値目標_渡 = CDTXMania.stage選曲.r確定されたスコア.譜面情報.最大スキル[1]; // #24074 2011.01.23 add ikanick - else if (CDTXMania.ConfigIni.bGraph有効 && ((!CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass) || (CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass && CDTXMania.ConfigIni.bギターが全部オートプレイである && !CDTXMania.ConfigIni.bベースが全部オートプレイである))) - this.actGraph.dbグラフ値目標_渡 = CDTXMania.stage選曲.r確定されたスコア.譜面情報.最大スキル[2]; // #24074 2011.01.23 add ikanick + this.actGraph.dbグラフ値目標_渡 = CDTXMania.stage選曲.r確定されたスコア.譜面情報.最大スキル[ nGraphUsePart ]; // #24074 2011.01.23 add ikanick + this.actGraph.dbグラフ値自己ベスト = CDTXMania.stage選曲.r確定されたスコア.譜面情報.最大スキル[ nGraphUsePart ]; + + // #35411 2015.08.21 chnmr0 add + // ゴースト利用可のなとき、0で初期化 + if (CDTXMania.ConfigIni.eTargetGhost[ nGraphUsePart ] != ETargetGhostData.NONE) + { + if (CDTXMania.listTargetGhsotLag[ nGraphUsePart ] != null) + { + this.actGraph.dbグラフ値目標_渡 = 0; + } + } } base.On活性化(); } @@ -126,7 +132,7 @@ public override int On進行描画() CSound管理.rc演奏用タイマ.tリセット(); CDTXMania.Timer.tリセット(); - this.UnitTime = ((60.0 / (CDTXMania.stage演奏ギター画面.actPlayInfo.dbBPM) / 14.0)); //2014.01.14.kairera0467 これも動かしたいのだが・・・・ + this.UnitTime = ((60.0 / (CDTXMania.stage演奏ギター画面.actPlayInfo.dbBPM) / 14.0)); //2014.01.14.kairera0467 これも動かしたいのだが____ this.ctチップ模様アニメ.Guitar = new CCounter( 0, 0x17, 20, CDTXMania.Timer ); this.ctチップ模様アニメ.Bass = new CCounter( 0, 0x17, 20, CDTXMania.Timer ); @@ -155,39 +161,38 @@ public override int On進行描画() base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED; } } - this.t進行描画・背景(); - this.t進行描画・AVI(); - this.t進行描画・MIDIBGM(); + this.t進行描画_背景(); + this.t進行描画_AVI(); + this.t進行描画_MIDIBGM(); // if (CDTXMania.ConfigIni.bShowMusicInfo) -// this.t進行描画・パネル文字列(); +// this.t進行描画_パネル文字列(); - this.t進行描画・レーンフラッシュGB(); + this.t進行描画_レーンフラッシュGB(); - this.t進行描画・DANGER(); + this.t進行描画_DANGER(); - this.t進行描画・WailingBonus(); - this.t進行描画・譜面スクロール速度(); - this.t進行描画・チップアニメ(); - this.t進行描画・小節線(E楽器パート.GUITAR); - flag = this.t進行描画・チップ(E楽器パート.GUITAR); - this.t進行描画・RGBボタン(); - this.t進行描画・ギターベース判定ライン(); - this.t進行描画・判定文字列(); - this.t進行描画・ゲージ(); + this.t進行描画_WailingBonus(); + this.t進行描画_譜面スクロール速度(); + this.t進行描画_チップアニメ(); + this.t進行描画_小節線(E楽器パート.GUITAR); + flag = this.t進行描画_チップ(E楽器パート.GUITAR); + this.t進行描画_RGBボタン(); + this.t進行描画_ギターベース判定ライン(); + this.t進行描画_判定文字列(); + this.t進行描画_ゲージ(); if (CDTXMania.ConfigIni.nInfoType == 1) - this.t進行描画・ステータスパネル(); + this.t進行描画_ステータスパネル(); if (CDTXMania.ConfigIni.bShowScore) - this.t進行描画・スコア(); - if (CDTXMania.ConfigIni.bGraph有効) - this.t進行描画・グラフ(); - this.t進行描画・コンボ(); - this.t進行描画・演奏情報(); - //this.t進行描画・Wailing枠(); - - this.t進行描画・チップファイアGB(); - this.t進行描画・STAGEFAILED(); - flag2 = this.t進行描画・フェードイン・アウト(); + this.t進行描画_スコア(); + this.t進行描画_グラフ(); + this.t進行描画_コンボ(); + this.t進行描画_演奏情報(); + //this.t進行描画_Wailing枠(); + + this.t進行描画_チップファイアGB(); + this.t進行描画_STAGEFAILED(); + flag2 = this.t進行描画_フェードイン_アウト(); if ( flag && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) ) { this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージクリア; @@ -221,74 +226,101 @@ public override int On進行描画() #region [ private ] //----------------- private CTexture txレーン; - public CAct演奏スキルメーター actGraph; public bool bサビ区間; public double UnitTime; protected override E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip, bool bCorrectLane ) { E判定 eJudgeResult = tチップのヒット処理( nHitTime, pChip, E楽器パート.GUITAR, bCorrectLane ); - if (CDTXMania.ConfigIni.nSkillMode == 0) + if( pChip.e楽器パート == E楽器パート.GUITAR && CDTXMania.ConfigIni.bGraph有効.Guitar ) { - if (CDTXMania.ConfigIni.bGraph有効 && ((CDTXMania.DTX.bチップがある.Guitar && !CDTXMania.DTX.bチップがある.Bass) || (CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass && !CDTXMania.ConfigIni.bギターが全部オートプレイである && CDTXMania.ConfigIni.bベースが全部オートプレイである))) - this.actGraph.dbグラフ値現在_渡 = CScoreIni.t旧演奏型スキルを計算して返す(CDTXMania.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); - else if (CDTXMania.ConfigIni.bGraph有効 && ((!CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass) || (CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass && CDTXMania.ConfigIni.bギターが全部オートプレイである && !CDTXMania.ConfigIni.bベースが全部オートプレイである))) - this.actGraph.dbグラフ値現在_渡 = CScoreIni.t旧演奏型スキルを計算して返す(CDTXMania.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); + if( CDTXMania.ConfigIni.nSkillMode == 0 ) + this.actGraph.dbグラフ値現在_渡 = CScoreIni.t旧演奏型スキルを計算して返す( CDTXMania.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 ); + else + this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.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, this.actCombo.n現在のコンボ数.最高値.Guitar, E楽器パート.GUITAR, bIsAutoPlay ); + + if( CDTXMania.listTargetGhsotLag.Guitar != null && + CDTXMania.ConfigIni.eTargetGhost.Guitar == ETargetGhostData.ONLINE && + CDTXMania.DTX.n可視チップ数.Guitar > 0 ) + { + + this.actGraph.dbグラフ値現在_渡 = 100 * + (this.nヒット数_Auto含まない.Guitar.Perfect * 17 + + this.nヒット数_Auto含まない.Guitar.Great * 7 + + this.actCombo.n現在のコンボ数.最高値.Guitar * 3) / (20.0 * CDTXMania.DTX.n可視チップ数.Guitar ); + } + + this.actGraph.n現在のAutoを含まない判定数_渡[ 0 ] = this.nヒット数_Auto含まない.Guitar.Perfect; + this.actGraph.n現在のAutoを含まない判定数_渡[ 1 ] = this.nヒット数_Auto含まない.Guitar.Great; + this.actGraph.n現在のAutoを含まない判定数_渡[ 2 ] = this.nヒット数_Auto含まない.Guitar.Good; + this.actGraph.n現在のAutoを含まない判定数_渡[ 3 ] = this.nヒット数_Auto含まない.Guitar.Poor; + this.actGraph.n現在のAutoを含まない判定数_渡[ 4 ] = this.nヒット数_Auto含まない.Guitar.Miss; } - else if (CDTXMania.ConfigIni.nSkillMode == 1) + else if( pChip.e楽器パート == E楽器パート.BASS && CDTXMania.ConfigIni.bGraph有効.Bass ) { - if (CDTXMania.ConfigIni.bGraph有効 && ((CDTXMania.DTX.bチップがある.Guitar && !CDTXMania.DTX.bチップがある.Bass) || (CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass && !CDTXMania.ConfigIni.bギターが全部オートプレイである && CDTXMania.ConfigIni.bベースが全部オートプレイである))) - this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.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, this.actCombo.n現在のコンボ数.最高値.Guitar, E楽器パート.GUITAR, bIsAutoPlay); - else if (CDTXMania.ConfigIni.bGraph有効 && ((!CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass) || (CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass && CDTXMania.ConfigIni.bギターが全部オートプレイである && !CDTXMania.ConfigIni.bベースが全部オートプレイである))) - this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.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, this.actCombo.n現在のコンボ数.最高値.Bass, E楽器パート.BASS, bIsAutoPlay); + if( CDTXMania.ConfigIni.nSkillMode == 0 ) + this.actGraph.dbグラフ値現在_渡 = CScoreIni.t旧演奏型スキルを計算して返す( CDTXMania.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 ); + else + this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.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, this.actCombo.n現在のコンボ数.最高値.Bass, E楽器パート.BASS, bIsAutoPlay ); + + if( CDTXMania.listTargetGhsotLag.Bass != null && + CDTXMania.ConfigIni.eTargetGhost.Bass == ETargetGhostData.ONLINE && + CDTXMania.DTX.n可視チップ数.Bass > 0 ) + { + + this.actGraph.dbグラフ値現在_渡 = 100 * + (this.nヒット数_Auto含まない.Bass.Perfect * 17 + + this.nヒット数_Auto含まない.Bass.Great * 7 + + this.actCombo.n現在のコンボ数.最高値.Bass * 3) / (20.0 * CDTXMania.DTX.n可視チップ数.Bass ); + } + + this.actGraph.n現在のAutoを含まない判定数_渡[ 0 ] = this.nヒット数_Auto含まない.Bass.Perfect; + this.actGraph.n現在のAutoを含まない判定数_渡[ 1 ] = this.nヒット数_Auto含まない.Bass.Great; + this.actGraph.n現在のAutoを含まない判定数_渡[ 2 ] = this.nヒット数_Auto含まない.Bass.Good; + this.actGraph.n現在のAutoを含まない判定数_渡[ 3 ] = this.nヒット数_Auto含まない.Bass.Poor; + this.actGraph.n現在のAutoを含まない判定数_渡[ 4 ] = this.nヒット数_Auto含まない.Bass.Miss; } return eJudgeResult; } - protected override void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part ) + protected override void tチップのヒット処理_BadならびにTight時のMiss( E楽器パート part ) { - this.tチップのヒット処理・BadならびにTight時のMiss( part, 0, E楽器パート.GUITAR ); + this.tチップのヒット処理_BadならびにTight時のMiss( part, 0, E楽器パート.GUITAR ); } - protected override void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane ) + protected override void tチップのヒット処理_BadならびにTight時のMiss( E楽器パート part, int nLane ) { - this.tチップのヒット処理・BadならびにTight時のMiss( part, nLane, E楽器パート.GUITAR ); + this.tチップのヒット処理_BadならびにTight時のMiss( part, nLane, E楽器パート.GUITAR ); } /* - protected override void t進行描画・AVI() + protected override void t進行描画_AVI() { - base.t進行描画・AVI( 0, 0 ); + base.t進行描画_AVI( 0, 0 ); } - protected override void t進行描画・BGA() + protected override void t進行描画_BGA() { - base.t進行描画・BGA( 500, 50 ); + base.t進行描画_BGA( 500, 50 ); } */ - protected override void t進行描画・DANGER() // #23631 2011.4.19 yyagi + protected override void t進行描画_DANGER() // #23631 2011.4.19 yyagi { //this.actDANGER.t進行描画( false, this.actGauge.db現在のゲージ値.Guitar < 0.3, this.actGauge.db現在のゲージ値.Bass < 0.3 ); this.actDANGER.t進行描画( false, this.actGauge.IsDanger(E楽器パート.GUITAR), this.actGauge.IsDanger(E楽器パート.BASS) ); } - private void t進行描画・グラフ() + private void t進行描画_グラフ() { - if (CDTXMania.ConfigIni.bGraph有効 && ((CDTXMania.DTX.bチップがある.Guitar && !CDTXMania.DTX.bチップがある.Bass) || (CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass && !CDTXMania.ConfigIni.bギターが全部オートプレイである && CDTXMania.ConfigIni.bベースが全部オートプレイである))) - { - this.actGraph.On進行描画(); - this.actGraph.db現在の判定数合計 = this.nヒット数・Auto含む.Guitar.Perfect + this.nヒット数・Auto含む.Guitar.Great + this.nヒット数・Auto含む.Guitar.Good + this.nヒット数・Auto含む.Guitar.Miss + this.nヒット数・Auto含む.Guitar.Poor; - } - else if (CDTXMania.ConfigIni.bGraph有効 && ((!CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass) || (CDTXMania.DTX.bチップがある.Guitar && CDTXMania.DTX.bチップがある.Bass && CDTXMania.ConfigIni.bギターが全部オートプレイである && !CDTXMania.ConfigIni.bベースが全部オートプレイである))) - { + if ( !CDTXMania.ConfigIni.bストイックモード && ( CDTXMania.ConfigIni.bGraph有効.Guitar || CDTXMania.ConfigIni.bGraph有効.Bass ) ) + { this.actGraph.On進行描画(); - this.actGraph.db現在の判定数合計 = this.nヒット数・Auto含む.Bass.Perfect + this.nヒット数・Auto含む.Bass.Great + this.nヒット数・Auto含む.Bass.Good + this.nヒット数・Auto含む.Bass.Miss + this.nヒット数・Auto含む.Bass.Poor; } } - protected override void t進行描画・Wailing枠() + protected override void t進行描画_Wailing枠() { - base.t進行描画・Wailing枠( 292, 0x251, + base.t進行描画_Wailing枠( 292, 0x251, CDTXMania.ConfigIni.bReverse.Guitar ? 340 : 130, CDTXMania.ConfigIni.bReverse.Bass ? 340 : 130 ); } - private void t進行描画・ギターベース判定ライン() // yyagi: ドラム画面とは座標が違うだけですが、まとめづらかったのでそのまま放置してます。 + private void t進行描画_ギターベース判定ライン() // yyagi: ドラム画面とは座標が違うだけですが、まとめづらかったのでそのまま放置してます。 { if ( CDTXMania.ConfigIni.bGuitar有効 ) { @@ -316,15 +348,15 @@ protected override E判定 tチップのヒット処理( long nHitTime, CDTX.CCh } /* - protected override void t進行描画・パネル文字列() + protected override void t進行描画_パネル文字列() { - base.t進行描画・パネル文字列( 0xb5, 430 ); + base.t進行描画_パネル文字列( 0xb5, 430 ); } */ - protected override void t進行描画・演奏情報() + protected override void t進行描画_演奏情報() { - base.t進行描画・演奏情報( 500, 257 ); + base.t進行描画_演奏情報( 500, 257 ); } protected override void tJudgeLineMovingUpandDown() @@ -341,7 +373,7 @@ protected override void ドラムスクロール速度ダウン() CDTXMania.ConfigIni.n譜面スクロール速度.Guitar = Math.Max(CDTXMania.ConfigIni.n譜面スクロール速度.Guitar - 1, 0); } - protected override void t入力処理・ドラム() + protected override void t入力処理_ドラム() { // ギタレボモードでは何もしない } @@ -366,7 +398,7 @@ protected override void t背景テクスチャの生成() } base.t背景テクスチャの生成( DefaultBgFilename, bgrect, BgFilename ); } - protected override void t進行描画・チップ・模様のみ・ドラムス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) + protected override void t進行描画_チップ_模様のみ_ドラムス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) { // int indexSevenLanes = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ]; if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0)) @@ -375,7 +407,7 @@ protected override void t背景テクスチャの生成() //this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量(E楽器パート.DRUMS)); } } - protected override void t進行描画・チップ・ドラムス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) + protected override void t進行描画_チップ_ドラムス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) { // int indexSevenLanes = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ]; if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) @@ -384,13 +416,13 @@ protected override void t背景テクスチャの生成() this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量(E楽器パート.DRUMS)); } } - protected override void t進行描画・チップ・ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst ) + protected override void t進行描画_チップ_ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst ) { - base.t進行描画・チップ・ギターベース( configIni, ref dTX, ref pChip, inst, + base.t進行描画_チップ_ギターベース( configIni, ref dTX, ref pChip, inst, this.nJudgeLinePosY[ (int) inst ] + 10, this.nJudgeLinePosY[ (int) inst ] + 1, 104, 670, 0, 0, 0, 11, 196, 10, 38, 38, 1000, 1000, 1000, 38, 38); } #if false - protected override void t進行描画・チップ・ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst ) + protected override void t進行描画_チップ_ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst ) { int instIndex = (int) inst; if ( configIni.bGuitar有効 ) @@ -501,7 +533,7 @@ protected override void t背景テクスチャの生成() } } #endif - protected override void t進行描画・チップ・ギター・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + protected override void t進行描画_チップ_ギター_ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) { if ( configIni.bGuitar有効 ) { @@ -565,9 +597,9 @@ protected override void t背景テクスチャの生成() //} //pChip.bHit = true; } - base.t進行描画・チップ・ギター・ウェイリング( configIni, ref dTX, ref pChip ); + base.t進行描画_チップ_ギター_ウェイリング( configIni, ref dTX, ref pChip ); } - protected override void t進行描画・チップ・フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + protected override void t進行描画_チップ_フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) { if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) { @@ -598,7 +630,7 @@ protected override void t背景テクスチャの生成() #endif } - protected override void t進行描画・チップ・ボーナス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) + protected override void t進行描画_チップ_ボーナス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) { if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0)) { @@ -606,7 +638,7 @@ protected override void t背景テクスチャの生成() } } #if false - protected override void t進行描画・チップ・ベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + protected override void t進行描画_チップ_ベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) { if ( configIni.bGuitar有効 ) { @@ -697,7 +729,7 @@ protected override void t背景テクスチャの生成() } } #endif - protected override void t進行描画・チップ・ベース・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + protected override void t進行描画_チップ_ベース_ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) { if ( configIni.bGuitar有効 ) { @@ -760,17 +792,17 @@ protected override void t背景テクスチャの生成() // return; //} //pChip.bHit = true; - base.t進行描画・チップ・ベース・ウェイリング( configIni, ref dTX, ref pChip ); + base.t進行描画_チップ_ベース_ウェイリング( configIni, ref dTX, ref pChip ); } } - protected override void t進行描画・チップ・空打ち音設定・ドラム( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + protected override void t進行描画_チップ_空打ち音設定_ドラム( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) { if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) { pChip.bHit = true; } } - protected override void t進行描画・チップ・小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + protected override void t進行描画_チップ_小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) { int n小節番号plus1 = pChip.n発声位置 / 0x180; if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\263\343\203\263\343\203\234DGB.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\263\343\203\263\343\203\234DGB.cs" index 43f7c95a..2e9bdc22 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\263\343\203\263\343\203\234DGB.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\263\343\203\263\343\203\234DGB.cs" @@ -61,16 +61,16 @@ public void Start( int nCombo値 ) } } - protected override void tコンボ表示・ギター( int nCombo値, int nジャンプインデックス ) + protected override void tコンボ表示_ギター( int nCombo値, int nジャンプインデックス ) { } - protected override void tコンボ表示・ドラム( int nCombo値, int nジャンプインデックス ) + protected override void tコンボ表示_ドラム( int nCombo値, int nジャンプインデックス ) { bool guitar = CDTXMania.DTX.bチップがある.Guitar; bool bass = CDTXMania.DTX.bチップがある.Bass; if( CDTXMania.ConfigIni.bドラムコンボ文字の表示 ) - base.tコンボ表示・ドラム(nCombo値, nジャンプインデックス, 1245, 60); + base.tコンボ表示_ドラム(nCombo値, nジャンプインデックス, 1245, 60); this.n火薬カウント = (nCombo値 / 100); @@ -107,7 +107,7 @@ public void Start( int nCombo値 ) } } - protected override void tコンボ表示・ベース( int nCombo値, int nジャンプインデックス ) + protected override void tコンボ表示_ベース( int nCombo値, int nジャンプインデックス ) { } } diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\202\263\343\202\242.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\202\263\343\202\242.cs" index d74fa151..037087be 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\202\263\343\202\242.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\202\263\343\202\242.cs" @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Text; using System.Drawing; -using System.Diagnostics;//Temp using SlimDX; using FDK; @@ -51,10 +50,6 @@ public override unsafe int On進行描画() { rectangle = new Rectangle(0, 0, 0, 0); } - else if(ch.Equals('-')) - { - rectangle = new Rectangle(0, 0, 0, 0); - } else { int num4 = int.Parse(str.Substring(i, 1)); diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs" index a70a7263..16faef7a 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs" @@ -15,107 +15,101 @@ internal class CAct演奏Drumsステータスパネル : CAct演奏ステータ public CAct演奏Drumsステータスパネル() { this.txパネル文字 = new CTexture[2]; - ST文字位置[] st文字位置Array = new ST文字位置[12];//Change to 12 + ST文字位置[] st文字位置Array = new ST文字位置[11]; ST文字位置 st文字位置 = new ST文字位置(); st文字位置.ch = '0'; st文字位置.pt = new Point(0, 0); st文字位置Array[0] = st文字位置; ST文字位置 st文字位置2 = new ST文字位置(); st文字位置2.ch = '1'; - st文字位置2.pt = new Point(31, 0);//Change all to width of 31 + st文字位置2.pt = new Point(28, 0); st文字位置Array[1] = st文字位置2; ST文字位置 st文字位置3 = new ST文字位置(); st文字位置3.ch = '2'; - st文字位置3.pt = new Point(62, 0); + st文字位置3.pt = new Point(56, 0); st文字位置Array[2] = st文字位置3; ST文字位置 st文字位置4 = new ST文字位置(); st文字位置4.ch = '3'; - st文字位置4.pt = new Point(93, 0); + st文字位置4.pt = new Point(84, 0); st文字位置Array[3] = st文字位置4; ST文字位置 st文字位置5 = new ST文字位置(); st文字位置5.ch = '4'; - st文字位置5.pt = new Point(124, 0); + st文字位置5.pt = new Point(112, 0); st文字位置Array[4] = st文字位置5; ST文字位置 st文字位置6 = new ST文字位置(); st文字位置6.ch = '5'; - st文字位置6.pt = new Point(155, 0); + st文字位置6.pt = new Point(140, 0); st文字位置Array[5] = st文字位置6; ST文字位置 st文字位置7 = new ST文字位置(); st文字位置7.ch = '6'; - st文字位置7.pt = new Point(186, 0); + st文字位置7.pt = new Point(168, 0); st文字位置Array[6] = st文字位置7; ST文字位置 st文字位置8 = new ST文字位置(); st文字位置8.ch = '7'; - st文字位置8.pt = new Point(217, 0); + st文字位置8.pt = new Point(196, 0); st文字位置Array[7] = st文字位置8; ST文字位置 st文字位置9 = new ST文字位置(); st文字位置9.ch = '8'; - st文字位置9.pt = new Point(248, 0); + st文字位置9.pt = new Point(224, 0); st文字位置Array[8] = st文字位置9; ST文字位置 st文字位置10 = new ST文字位置(); st文字位置10.ch = '9'; - st文字位置10.pt = new Point(279, 0); + st文字位置10.pt = new Point(252, 0); st文字位置Array[9] = st文字位置10; ST文字位置 st文字位置11 = new ST文字位置(); st文字位置11.ch = '.'; - st文字位置11.pt = new Point(319, 0); + st文字位置11.pt = new Point(280, 0); st文字位置Array[10] = st文字位置11; - //Added by KSM 17/04/2016: - //Change width to all 31 01/05/2016 - ST文字位置 st文字位置Percent = new ST文字位置(); - st文字位置Percent.ch = '%'; - st文字位置Percent.pt = new Point(341, 0); - st文字位置Array[11] = st文字位置Percent; this.st大文字位置 = st文字位置Array; ST文字位置[] st文字位置Array2 = new ST文字位置[12]; - ST文字位置 st文字位置13 = new ST文字位置();//Change all width to multiples of 21 + ST文字位置 st文字位置13 = new ST文字位置(); st文字位置13.ch = '0'; st文字位置13.pt = new Point(0, 0); st文字位置Array2[0] = st文字位置13; ST文字位置 st文字位置14 = new ST文字位置(); st文字位置14.ch = '1'; - st文字位置14.pt = new Point(21, 0); + st文字位置14.pt = new Point(20, 0); st文字位置Array2[1] = st文字位置14; ST文字位置 st文字位置15 = new ST文字位置(); st文字位置15.ch = '2'; - st文字位置15.pt = new Point(42, 0); + st文字位置15.pt = new Point(40, 0); st文字位置Array2[2] = st文字位置15; ST文字位置 st文字位置16 = new ST文字位置(); st文字位置16.ch = '3'; - st文字位置16.pt = new Point(63, 0); + st文字位置16.pt = new Point(60, 0); st文字位置Array2[3] = st文字位置16; ST文字位置 st文字位置17 = new ST文字位置(); st文字位置17.ch = '4'; - st文字位置17.pt = new Point(84, 0); + st文字位置17.pt = new Point(80, 0); st文字位置Array2[4] = st文字位置17; ST文字位置 st文字位置18 = new ST文字位置(); st文字位置18.ch = '5'; - st文字位置18.pt = new Point(105, 0); + st文字位置18.pt = new Point(100, 0); st文字位置Array2[5] = st文字位置18; ST文字位置 st文字位置19 = new ST文字位置(); st文字位置19.ch = '6'; - st文字位置19.pt = new Point(126, 0); + st文字位置19.pt = new Point(120, 0); st文字位置Array2[6] = st文字位置19; ST文字位置 st文字位置20 = new ST文字位置(); st文字位置20.ch = '7'; - st文字位置20.pt = new Point(147, 0); + st文字位置20.pt = new Point(140, 0); st文字位置Array2[7] = st文字位置20; ST文字位置 st文字位置21 = new ST文字位置(); st文字位置21.ch = '8'; - st文字位置21.pt = new Point(168, 0); + st文字位置21.pt = new Point(160, 0); st文字位置Array2[8] = st文字位置21; ST文字位置 st文字位置22 = new ST文字位置(); st文字位置22.ch = '9'; - st文字位置22.pt = new Point(189, 0); + st文字位置22.pt = new Point(180, 0); st文字位置Array2[9] = st文字位置22; ST文字位置 st文字位置23 = new ST文字位置(); - st文字位置23.ch = '.'; - st文字位置23.pt = new Point(210, 0); + st文字位置23.ch = '%'; + st文字位置23.pt = new Point(200, 0); st文字位置Array2[10] = st文字位置23; ST文字位置 st文字位置24 = new ST文字位置(); - st文字位置24.ch = '%'; - st文字位置24.pt = new Point(231, 0); + st文字位置24.ch = '.'; + st文字位置24.pt = new Point(210, 0); st文字位置Array2[11] = st文字位置24; this.st小文字位置 = st文字位置Array2; @@ -182,31 +176,23 @@ public override void On活性化() #endregion - this.ft称号フォント = new Font(CDTXMania.ConfigIni.str曲名表示フォント, 16f, FontStyle.Regular, GraphicsUnit.Pixel);//Regular - this.prv表示用フォント = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str曲名表示フォント), 20, FontStyle.Regular);//Regular + this.prv表示用フォント = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str曲名表示フォント ), 20, FontStyle.Regular ); + this.prv称号フォント = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str曲名表示フォント ), 12, FontStyle.Regular ); this.txスキルパネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_SkillPanel.png")); this.txパネル文字[0] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Ratenumber_s.png")); this.txパネル文字[1] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Ratenumber_l.png")); this.tx難易度パネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Difficulty.png")); this.tx難易度用数字 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_LevelNumber.png")); - //KSM Added 21/04/2016 - this.txスキルMAX = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_skill max.png")); + base.On活性化(); } public override void On非活性化() { - if (this.ft称号フォント != null) - { - this.ft称号フォント.Dispose(); - this.ft称号フォント = null; - } CDTXMania.tテクスチャの解放(ref this.txスキルパネル); CDTXMania.tテクスチャの解放(ref this.txパネル文字[0]); CDTXMania.tテクスチャの解放(ref this.txパネル文字[1]); CDTXMania.tテクスチャの解放(ref this.tx難易度パネル); CDTXMania.tテクスチャの解放(ref this.tx難易度用数字); - //KSM Added 21/04/2016 - CDTXMania.tテクスチャの解放(ref this.txスキルMAX); base.On非活性化(); } public override void OnManagedリソースの作成() @@ -216,7 +202,7 @@ public override void OnManagedリソースの作成() this.strPlayerName = string.IsNullOrEmpty( CDTXMania.ConfigIni.strCardName[ 0 ] ) ? "GUEST" : CDTXMania.ConfigIni.strCardName[ 0 ]; this.strTitleName = string.IsNullOrEmpty( CDTXMania.ConfigIni.strGroupName[ 0 ] ) ? "" : CDTXMania.ConfigIni.strGroupName[ 0 ]; - Bitmap image2 = new Bitmap( 200, 100 ); + Bitmap image2 = new Bitmap( 257, 100 ); Graphics graネームプレート用 = Graphics.FromImage( image2 ); #region[ ネームカラー ] @@ -300,14 +286,18 @@ public override void OnManagedリソースの作成() #endregion #region[ 名前とか ] Bitmap bmpCardName = new Bitmap(1, 1); -bmpCardName = this.prv表示用フォント.DrawPrivateFont( this.strPlayerName, Color.White, Color.Transparent, clNameColor, ( CDTXMania.ConfigIni.nNameColor[ 0 ] > 11 ? clNameColorLower : clNameColor ) ); + bmpCardName = this.prv表示用フォント.DrawPrivateFont( this.strPlayerName, Color.White, Color.Transparent, clNameColor, ( CDTXMania.ConfigIni.nNameColor[ 0 ] > 11 ? clNameColorLower : clNameColor ) ); + Bitmap bmpTitleName = new Bitmap(1, 1); + bmpTitleName = this.prv称号フォント.DrawPrivateFont( this.strTitleName, Color.White, Color.Transparent ); graネームプレート用.DrawImage( bmpCardName, -2f, 26f ); - graネームプレート用.DrawString( this.strTitleName, this.ft称号フォント, Brushes.White, (float)8f, (float)12f ); + graネームプレート用.DrawImage( bmpTitleName, 6f, 8f ); #endregion this.prv表示用フォント.Dispose(); + this.prv称号フォント.Dispose(); bmpCardName.Dispose(); + bmpTitleName.Dispose(); this.txネームプレート用文字 = new CTexture( CDTXMania.app.Device, image2, CDTXMania.TextureFormat, false ); image2.Dispose(); @@ -338,16 +328,8 @@ public override int On進行描画() int i = 0; - string str = string.Format("{0:0.00}", ((float)CDTXMania.DTX.LEVEL[i]) / 10f); + string str = string.Format( "{0:0.00}", ( (float)CDTXMania.DTX.LEVEL[ i ]) / 10.0f + ( CDTXMania.DTX.LEVELDEC[ i ] != 0 ? CDTXMania.DTX.LEVELDEC[ i ] / 100.0f : 0 ) ); bool bCLASSIC = false; - if (CDTXMania.DTX.LEVEL[i] > 100) - { - str = string.Format("{0:0.00}", ((float)CDTXMania.DTX.LEVEL[i]) / 100f); - } - else - { - str = string.Format("{0:0.00}", ((float)CDTXMania.DTX.LEVEL[i]) / 10.0f + (CDTXMania.DTX.LEVELDEC[i] != 0 ? CDTXMania.DTX.LEVELDEC[i] / 100.0f : 0)); - } if (CDTXMania.ConfigIni.bCLASSIC譜面判別を有効にする && (CDTXMania.DTX.bチップがある.LeftCymbal == false) && @@ -364,25 +346,25 @@ public override int On進行描画() this.txスキルパネル.t2D描画(CDTXMania.app.Device, this.n本体X[i], this.n本体Y); this.txネームプレート用文字.t2D描画(CDTXMania.app.Device, this.n本体X[i], this.n本体Y); - this.t小文字表示(80 + this.n本体X[i], 72 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[i].Perfect)); - this.t小文字表示(80 + this.n本体X[i], 102 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[i].Great)); - this.t小文字表示(80 + this.n本体X[i], 132 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[i].Good)); - this.t小文字表示(80 + this.n本体X[i], 162 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[i].Poor)); - this.t小文字表示(80 + this.n本体X[i], 192 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[i].Miss)); + this.t小文字表示(80 + this.n本体X[i], 72 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない[i].Perfect)); + this.t小文字表示(80 + this.n本体X[i], 102 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない[i].Great)); + this.t小文字表示(80 + this.n本体X[i], 132 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない[i].Good)); + this.t小文字表示(80 + this.n本体X[i], 162 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない[i].Poor)); + this.t小文字表示(80 + this.n本体X[i], 192 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない[i].Miss)); this.t小文字表示(80 + this.n本体X[i], 222 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage演奏ドラム画面.actCombo.n現在のコンボ数.最高値[i])); int n現在のノーツ数 = - CDTXMania.stage演奏ドラム画面.nヒット数・Auto含む[i].Perfect + - CDTXMania.stage演奏ドラム画面.nヒット数・Auto含む[i].Great + - CDTXMania.stage演奏ドラム画面.nヒット数・Auto含む[i].Good + - CDTXMania.stage演奏ドラム画面.nヒット数・Auto含む[i].Poor + - CDTXMania.stage演奏ドラム画面.nヒット数・Auto含む[i].Miss; - - dbPERFECT率 = Math.Round((100.0 * CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[i].Perfect) / n現在のノーツ数); - dbGREAT率 = Math.Round((100.0 * CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[i].Great / n現在のノーツ数)); - dbGOOD率 = Math.Round((100.0 * CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[i].Good / n現在のノーツ数)); - dbPOOR率 = Math.Round((100.0 * CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[i].Poor / n現在のノーツ数)); - dbMISS率 = Math.Round((100.0 * CDTXMania.stage演奏ドラム画面.nヒット数・Auto含まない[i].Miss / n現在のノーツ数)); + CDTXMania.stage演奏ドラム画面.nヒット数_Auto含む[i].Perfect + + CDTXMania.stage演奏ドラム画面.nヒット数_Auto含む[i].Great + + CDTXMania.stage演奏ドラム画面.nヒット数_Auto含む[i].Good + + CDTXMania.stage演奏ドラム画面.nヒット数_Auto含む[i].Poor + + CDTXMania.stage演奏ドラム画面.nヒット数_Auto含む[i].Miss; + + dbPERFECT率 = Math.Round((100.0 * CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない[i].Perfect) / n現在のノーツ数); + dbGREAT率 = Math.Round((100.0 * CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない[i].Great / n現在のノーツ数)); + dbGOOD率 = Math.Round((100.0 * CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない[i].Good / n現在のノーツ数)); + dbPOOR率 = Math.Round((100.0 * CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない[i].Poor / n現在のノーツ数)); + dbMISS率 = Math.Round((100.0 * CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない[i].Miss / n現在のノーツ数)); dbMAXCOMBO率 = Math.Round((100.0 * CDTXMania.stage演奏ドラム画面.actCombo.n現在のコンボ数.最高値[i] / n現在のノーツ数)); if (double.IsNaN(dbPERFECT率)) @@ -405,25 +387,11 @@ public override int On進行描画() this.t小文字表示(167 + this.n本体X[i], 192 + this.n本体Y, string.Format("{0,3:##0}%", dbMISS率)); this.t小文字表示(167 + this.n本体X[i], 222 + this.n本体Y, string.Format("{0,3:##0}%", dbMAXCOMBO率)); - //KSM Added 21/04/2016: Shows the word MAX instead of 100.00% when 100.00% - if (CDTXMania.stage演奏ドラム画面.actGraph.dbグラフ値現在_渡 >= 100.0 && this.txスキルMAX != null) - { - this.txスキルMAX.t2D描画(CDTXMania.app.Device, 120 + this.n本体X[i], 277 + this.n本体Y); - } - else - { - this.t大文字表示(58 + this.n本体X[i], 277 + this.n本体Y, string.Format("{0,6:##0.00}%", CDTXMania.stage演奏ドラム画面.actGraph.dbグラフ値現在_渡)); - } - - // 060316 limyz added if/else conditions to detect if DLEVEL is <100 or >100 to determine its 0.05 decimal point value - if (CDTXMania.DTX.LEVEL[i] < 100) { - this.t大文字表示(88 + this.n本体X[i], 363 + this.n本体Y, string.Format("{0,6:##0.00}", (CDTXMania.stage演奏ドラム画面.actGraph.dbグラフ値現在_渡 * (CDTXMania.DTX.LEVEL[i] / 10.0) * 0.2))); - } else { - this.t大文字表示(88 + this.n本体X[i], 363 + this.n本体Y, string.Format("{0,6:##0.00}", (CDTXMania.stage演奏ドラム画面.actGraph.dbグラフ値現在_渡 * (CDTXMania.DTX.LEVEL[i] / 100.0) * 0.2))); - } + this.t大文字表示(58 + this.n本体X[i], 277 + this.n本体Y, string.Format("{0,6:##0.00}", CDTXMania.stage演奏ドラム画面.actStatusPanels.db現在の達成率.Drums ) ); + this.t大文字表示(88 + this.n本体X[i], 363 + this.n本体Y, string.Format("{0,6:##0.00}", (CDTXMania.stage演奏ドラム画面.actStatusPanels.db現在の達成率.Drums * (CDTXMania.DTX.LEVEL[i] / 10.0) * 0.2))); - if (this.tx難易度パネル != null) - this.tx難易度パネル.t2D描画(CDTXMania.app.Device, 14 + this.n本体X[i], 266 + this.n本体Y, new Rectangle(0, 60 * nIndex, 60, 60)); + if( this.tx難易度パネル != null ) + this.tx難易度パネル.t2D描画( CDTXMania.app.Device, 14 + this.n本体X[ i ], 266 + this.n本体Y, new Rectangle( base.rectDiffPanelPoint.X, base.rectDiffPanelPoint.Y, 60, 60 ) ); this.tレベル数字描画((bCLASSIC == true ? 26 : 18) + this.n本体X[i], 290 + this.n本体Y, str); } return 0; @@ -449,14 +417,12 @@ private struct ST文字位置 private CTexture txスキルパネル; private CTexture[] txパネル文字; private CPrivateFastFont prv表示用フォント; - private Font ft称号フォント; + private CPrivateFastFont prv称号フォント; private string strPlayerName; private string strTitleName; private CTexture txネームプレート用文字; private CTexture tx難易度パネル; private CTexture tx難易度用数字; - //KSM Added 21/04/2016: New Texture for Skill Max - private CTexture txスキルMAX; private void t小文字表示(int x, int y, string str) { @@ -466,7 +432,7 @@ private void t小文字表示(int x, int y, string str) { if (this.st小文字位置[i].ch == ch) { - Rectangle rectangle = new Rectangle(this.st小文字位置[i].pt.X, this.st小文字位置[i].pt.Y, 20, 28); + Rectangle rectangle = new Rectangle(this.st小文字位置[i].pt.X, this.st小文字位置[i].pt.Y, 20, 26); if (this.txパネル文字[0] != null) { this.txパネル文字[0].t2D描画(CDTXMania.app.Device, x, y, rectangle); @@ -485,16 +451,11 @@ private void t大文字表示(int x, int y, string str) { if (this.st大文字位置[i].ch == ch) { - Rectangle rectangle = new Rectangle(this.st大文字位置[i].pt.X, this.st大文字位置[i].pt.Y, 30, 42); + Rectangle rectangle = new Rectangle(this.st大文字位置[i].pt.X, this.st大文字位置[i].pt.Y, 28, 42); if (ch == '.') { rectangle.Width -= 18; } - //KSM added: '%' has width of 30 - //else if(ch == '%') - //{ - // rectangle.Width += 2; - //} if (this.txパネル文字[1] != null) { this.txパネル文字[1].t2D描画(CDTXMania.app.Device, x, y, rectangle); @@ -502,7 +463,7 @@ private void t大文字表示(int x, int y, string str) break; } } - x += (ch == '.' ? 12 : 30); + x += (ch == '.' ? 12 : 29); } } private void tレベル数字描画(int x, int y, string str) diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\201\343\203\203\343\203\227\343\203\225\343\202\241\343\202\244\343\202\242D.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\201\343\203\203\343\203\227\343\203\225\343\202\241\343\202\244\343\202\242D.cs" index 7a540a00..c49aa171 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\201\343\203\203\343\203\227\343\203\225\343\202\241\343\202\244\343\202\242D.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\201\343\203\203\343\203\227\343\203\225\343\202\241\343\202\244\343\202\242D.cs" @@ -47,7 +47,7 @@ public void Start( Eレーン lane, bool bフィルイン, bool b大波, bool b nJudgeLinePosY_delta_Drums = _nJudgeLinePosY_delta_Drums; for ( int j = 0; j < FIRE_MAX; j++ ) { - if ( this.st火花[ j ].b使用中 && this.st火花[ j ].nLane == (int) lane ) // yyagi 負荷軽減のつもり・・・だが、あまり効果なさげ + if ( this.st火花[ j ].b使用中 && this.st火花[ j ].nLane == (int) lane ) // yyagi 負荷軽減のつもり___だが、あまり効果なさげ { this.st火花[ j ].ct進行.t停止(); this.st火花[ j ].b使用中 = false; @@ -514,7 +514,7 @@ public override void OnManagedリソースの解放() { if( !base.b活性化してない ) { - for (int tx1 = 0; tx1 < 9; tx1++) + for (int tx1 = 0; tx1 < 10; tx1++) { CDTXMania.tテクスチャの解放(ref this.tx火花[tx1]); CDTXMania.tテクスチャの解放(ref this.tx青い星[tx1]); diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\221\343\203\203\343\203\211.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\221\343\203\203\343\203\211.cs" index d6e3939a..6d586149 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\221\343\203\203\343\203\211.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\221\343\203\203\343\203\211.cs" @@ -10,90 +10,90 @@ namespace DTXMania { - internal class CAct演奏Drumsパッド : CActivity - { - // コンストラクタ + internal class CAct演奏Drumsパッド : CActivity + { + // コンストラクタ - public CAct演奏Drumsパッド() - { - ST基本位置[] st基本位置Array = new ST基本位置[ 10 ]; + public CAct演奏Drumsパッド() + { + ST基本位置[] st基本位置Array = new ST基本位置[10]; //LC - ST基本位置 st基本位置 = new ST基本位置(); - st基本位置.x = 263; - st基本位置.y = 10; - st基本位置.rc = new Rectangle( 0, 0, 0x60, 0x60 ); - st基本位置Array[ 0 ] = st基本位置; + ST基本位置 st基本位置 = new ST基本位置(); + st基本位置.x = 263; + st基本位置.y = 10; + st基本位置.rc = new Rectangle(0, 0, 0x60, 0x60); + st基本位置Array[0] = st基本位置; //HH - ST基本位置 st基本位置2 = new ST基本位置(); - st基本位置2.x = 336; - st基本位置2.y = 10; - st基本位置2.rc = new Rectangle( 0x60, 0, 0x60, 0x60 ); - st基本位置Array[ 1 ] = st基本位置2; + ST基本位置 st基本位置2 = new ST基本位置(); + st基本位置2.x = 336; + st基本位置2.y = 10; + st基本位置2.rc = new Rectangle(0x60, 0, 0x60, 0x60); + st基本位置Array[1] = st基本位置2; //SD - ST基本位置 st基本位置3 = new ST基本位置(); - st基本位置3.x = 446; - st基本位置3.y = 10; - st基本位置3.rc = new Rectangle( 0, 0x60, 0x60, 0x60 ); - st基本位置Array[ 2 ] = st基本位置3; + ST基本位置 st基本位置3 = new ST基本位置(); + st基本位置3.x = 446; + st基本位置3.y = 10; + st基本位置3.rc = new Rectangle(0, 0x60, 0x60, 0x60); + st基本位置Array[2] = st基本位置3; //BD - ST基本位置 st基本位置4 = new ST基本位置(); + ST基本位置 st基本位置4 = new ST基本位置(); st基本位置4.x = 565; st基本位置4.y = 10; st基本位置4.rc = new Rectangle(0, 0xc0, 0x60, 0x60); - st基本位置Array[ 3 ] = st基本位置4; + st基本位置Array[3] = st基本位置4; //HT - ST基本位置 st基本位置5 = new ST基本位置(); - st基本位置5.x = 510; - st基本位置5.y = 10; - st基本位置5.rc = new Rectangle( 0x60, 0x60, 0x60, 0x60 ); - st基本位置Array[ 4 ] = st基本位置5; + ST基本位置 st基本位置5 = new ST基本位置(); + st基本位置5.x = 510; + st基本位置5.y = 10; + st基本位置5.rc = new Rectangle(0x60, 0x60, 0x60, 0x60); + st基本位置Array[4] = st基本位置5; //LT - ST基本位置 st基本位置6 = new ST基本位置(); - st基本位置6.x = 622; - st基本位置6.y = 10; - st基本位置6.rc = new Rectangle( 0xc0, 0x60, 0x60, 0x60 ); - st基本位置Array[ 5 ] = st基本位置6; + ST基本位置 st基本位置6 = new ST基本位置(); + st基本位置6.x = 622; + st基本位置6.y = 10; + st基本位置6.rc = new Rectangle(0xc0, 0x60, 0x60, 0x60); + st基本位置Array[5] = st基本位置6; //FT - ST基本位置 st基本位置7 = new ST基本位置(); - st基本位置7.x = 672; - st基本位置7.y = 10; - st基本位置7.rc = new Rectangle( 288, 0x60, 0x60, 0x60 ); - st基本位置Array[ 6 ] = st基本位置7; + ST基本位置 st基本位置7 = new ST基本位置(); + st基本位置7.x = 672; + st基本位置7.y = 10; + st基本位置7.rc = new Rectangle(288, 0x60, 0x60, 0x60); + st基本位置Array[6] = st基本位置7; //CY - ST基本位置 st基本位置8 = new ST基本位置(); - st基本位置8.x = 0x2df; - st基本位置8.y = 10; - st基本位置8.rc = new Rectangle( 0xc0, 0, 0x60, 0x60 ); - st基本位置Array[ 7 ] = st基本位置8; + ST基本位置 st基本位置8 = new ST基本位置(); + st基本位置8.x = 0x2df; + st基本位置8.y = 10; + st基本位置8.rc = new Rectangle(0xc0, 0, 0x60, 0x60); + st基本位置Array[7] = st基本位置8; //RD - ST基本位置 st基本位置9 = new ST基本位置(); - st基本位置9.x = 0x317; - st基本位置9.y = 10; - st基本位置9.rc = new Rectangle( 288, 0, 0x60, 0x60 ); - st基本位置Array[ 8 ] = st基本位置9; + ST基本位置 st基本位置9 = new ST基本位置(); + st基本位置9.x = 0x317; + st基本位置9.y = 10; + st基本位置9.rc = new Rectangle(288, 0, 0x60, 0x60); + st基本位置Array[8] = st基本位置9; //LP ST基本位置 st基本位置10 = new ST基本位置(); st基本位置10.x = 0x18c; st基本位置10.y = 10; - st基本位置10.rc = new Rectangle( 0x60, 0xc0, 0x60, 0x60); - st基本位置Array[ 9 ] = st基本位置10; + st基本位置10.rc = new Rectangle(0x60, 0xc0, 0x60, 0x60); + st基本位置Array[9] = st基本位置10; + + this.st基本位置 = st基本位置Array; + base.b活性化してない = true; + } - this.st基本位置 = st基本位置Array; - base.b活性化してない = true; - } - - - // メソッド + + // メソッド public void Hit(int nLane) { @@ -107,48 +107,48 @@ public override void On非活性化() base.On非活性化(); } - // CActivity 実装 - - public override void On活性化() - { - this.nフラッシュ制御タイマ = -1L; - this.nY座標制御タイマ = -1L; - for( int i = 0; i < 10; i++ ) - { - STパッド状態 stパッド状態2 = new STパッド状態(); - STパッド状態 stパッド状態 = stパッド状態2; - stパッド状態.nY座標オフセットdot = 0; - stパッド状態.nY座標加速度dot = 0; + // CActivity 実装 + + public override void On活性化() + { + this.nフラッシュ制御タイマ = -1L; + this.nY座標制御タイマ = -1L; + for (int i = 0; i < 10; i++) + { + STパッド状態 stパッド状態2 = new STパッド状態(); + STパッド状態 stパッド状態 = stパッド状態2; + stパッド状態.nY座標オフセットdot = 0; + stパッド状態.nY座標加速度dot = 0; stパッド状態.nY座標オフセットdot2 = 0; stパッド状態.nY座標加速度dot2 = 0; - stパッド状態.n明るさ = 0; - this.stパッド状態[ i ] = stパッド状態; - } - base.On活性化(); - } - public override void OnManagedリソースの作成() - { + stパッド状態.n明るさ = 0; + this.stパッド状態[i] = stパッド状態; + } + base.On活性化(); + } + public override void OnManagedリソースの作成() + { if (!base.b活性化してない) { this.txパッド = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_pads.png")); this.tx光るパッド = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums pads flush.png")); - this.txボーナス文字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Bonus.png" ) ); + this.txボーナス文字 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Bonus.png")); base.OnManagedリソースの作成(); } - } - public override void OnManagedリソースの解放() - { - if( !base.b活性化してない ) - { - CDTXMania.tテクスチャの解放( ref this.txパッド ); - CDTXMania.tテクスチャの解放( ref this.tx光るパッド ); - CDTXMania.tテクスチャの解放( ref this.txボーナス文字 ); - base.OnManagedリソースの解放(); - } - } - public override int On進行描画() - { - if( !base.b活性化してない ) + } + public override void OnManagedリソースの解放() + { + if (!base.b活性化してない) + { + CDTXMania.tテクスチャの解放(ref this.txパッド); + CDTXMania.tテクスチャの解放(ref this.tx光るパッド); + CDTXMania.tテクスチャの解放(ref this.txボーナス文字); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if (!base.b活性化してない) { int num1 = CDTXMania.stage演奏ドラム画面.ctBPMバー.n現在の値; @@ -271,73 +271,101 @@ public override int On進行描画() for (int i = 0; i < 10; i++) { int index = this.n描画順[i]; - int x = this.st基本位置[index].x; - int x2 = (this.st基本位置[index].x + (CDTXMania.ConfigIni.bReverse.Drums ? -10 : 32)) + this.stパッド状態[index].nX座標オフセットdot; - int x3 = (this.st基本位置[index].x + (CDTXMania.ConfigIni.bReverse.Drums ? -10 : 79)) - this.stパッド状態[index].nX座標オフセットdotFLIP; - int y = (this.st基本位置[index].y + (CDTXMania.ConfigIni.bReverse.Drums ? 60 : 560)) + this.stパッド状態[index].nY座標オフセットdot2; - int y2 = (this.st基本位置[index].y + (CDTXMania.ConfigIni.bReverse.Drums ? 0 : 482)) + this.stパッド状態[index].nY座標オフセットdot; - int yh = (this.st基本位置[index].y + (CDTXMania.ConfigIni.bReverse.Drums ? 0 : 495)) + this.stパッド状態[index].nY座標オフセットdot; - int yb = (this.st基本位置[index].y + (CDTXMania.ConfigIni.bReverse.Drums ? 0 : 570)) - this.stパッド状態[index].nY座標オフセットdot; - int yl = (this.st基本位置[index].y + (CDTXMania.ConfigIni.bReverse.Drums ? 0 : 486)) + this.stパッド状態[index].nY座標オフセットdot; - int yf = (this.st基本位置[index].y + (CDTXMania.ConfigIni.bReverse.Drums ? 0 : 470)) + this.stパッド状態[index].nY座標オフセットdot; - #region[レーン切り替え] - if ((index == 2) && ((CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.B) || CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.D)) + int numOfLanesflagIndex = (int)CDTXMania.ConfigIni.eNumOfLanes.Drums; + //26072020: Check DrawFlags array before even compute positions for drawing + if (this.nDrawFlags[numOfLanesflagIndex, index] == 1) { - x = this.st基本位置[9].x - 4; - } - if (index == 3) - { - if ((CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.B) || (CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.C)) + #region[レーン切り替え] + int x = this.st基本位置[index].x; + int x2 = (this.st基本位置[index].x + (CDTXMania.ConfigIni.bReverse.Drums ? -10 : 32)) + this.stパッド状態[index].nX座標オフセットdot; + int x3 = (this.st基本位置[index].x + (CDTXMania.ConfigIni.bReverse.Drums ? -10 : 79)) - this.stパッド状態[index].nX座標オフセットdotFLIP; + int y = (this.st基本位置[index].y + (CDTXMania.ConfigIni.bReverse.Drums ? 60 : 560)) + this.stパッド状態[index].nY座標オフセットdot2; + int y2 = (this.st基本位置[index].y + (CDTXMania.ConfigIni.bReverse.Drums ? 0 : 482)) + this.stパッド状態[index].nY座標オフセットdot; + int yh = (this.st基本位置[index].y + (CDTXMania.ConfigIni.bReverse.Drums ? 0 : 495)) + this.stパッド状態[index].nY座標オフセットdot; + int yb = (this.st基本位置[index].y + (CDTXMania.ConfigIni.bReverse.Drums ? 0 : 570)) - this.stパッド状態[index].nY座標オフセットdot; + int yl = (this.st基本位置[index].y + (CDTXMania.ConfigIni.bReverse.Drums ? 0 : 486)) + this.stパッド状態[index].nY座標オフセットdot; + int yf = (this.st基本位置[index].y + (CDTXMania.ConfigIni.bReverse.Drums ? 0 : 470)) + this.stパッド状態[index].nY座標オフセットdot; + + if ((index == 2) && ((CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.B) || CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.D)) { - x = this.st基本位置[4].x + 7; + x = this.st基本位置[9].x - 4; } - } - if (index == 4) - { - if ((CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.B) || (CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.C)) + if (index == 3) { - x = this.st基本位置[3].x + 15; + if ((CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.B) || (CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.C)) + { + x = this.st基本位置[4].x + 7; + } } - else if(CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.D) + if (index == 4) { - x = this.st基本位置[3].x - 108; + if ((CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.B) || (CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.C)) + { + x = this.st基本位置[3].x + 15; + } + else if (CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.D) + { + x = this.st基本位置[3].x - 108; + } } - } - if (index == 9) - { - if (CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.B) + if (index == 9) { - x = this.st基本位置[2].x + 10; + if (CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.B) + { + x = this.st基本位置[2].x + 10; + } + else if (CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.D) + { + x = this.st基本位置[2].x + 50; + } } - else if (CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.D) + if ((index == 5) && (CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.B)) { - x = this.st基本位置[2].x + 50; + x = this.st基本位置[5].x + 2; } + if ((index == 8) && (CDTXMania.ConfigIni.eRDPosition == ERDPosition.RDRC)) + { + x = this.st基本位置[7].x - 15; + } + if ((index == 7) && (CDTXMania.ConfigIni.eRDPosition == ERDPosition.RDRC)) + { + x = this.st基本位置[8].x - 15; + } + if (this.txパッド != null) + { + this.txパッド.t2D描画(CDTXMania.app.Device, x, y, this.st基本位置[index].rc); + + //if (CDTXMania.ConfigIni.eNumOfLanes.Drums == Eタイプ.B && index == 8) + //{ + // // Do not draw RD if numOfLanes is 9 + //} + //else + //{ + + //} + + } + if (this.tx光るパッド != null) + { + this.tx光るパッド.n透明度 = (this.stパッド状態[index].n明るさ * 50) + 0; + this.tx光るパッド.t2D描画(CDTXMania.app.Device, x, y, this.st基本位置[index].rc); + + //if (CDTXMania.ConfigIni.eNumOfLanes.Drums == Eタイプ.B && index == 8) + //{ + // // Do not draw RD if numOfLanes is 9 + //} + //else + //{ + + //} + + } + + #endregion } - if ((index == 5) && (CDTXMania.ConfigIni.eLaneType.Drums == Eタイプ.B)) - { - x = this.st基本位置[5].x + 2; - } - if ((index == 8) && (CDTXMania.ConfigIni.eRDPosition == ERDPosition.RDRC)) - { - x = this.st基本位置[7].x - 15; - } - if ((index == 7) && (CDTXMania.ConfigIni.eRDPosition == ERDPosition.RDRC)) - { - x = this.st基本位置[8].x - 15; - } - if (this.txパッド != null) - { - this.txパッド.t2D描画(CDTXMania.app.Device, x, y, this.st基本位置[index].rc); - } - if (this.tx光るパッド != null) - { - this.tx光るパッド.n透明度 = (this.stパッド状態[index].n明るさ * 50) + 0; - this.tx光るパッド.t2D描画(CDTXMania.app.Device, x, y, this.st基本位置[index].rc); - } - #endregion + } -#region[ ボーナス表示 ] + #region[ ボーナス表示 ] for (int i = 0; i < 4; i++) { //アニメーションは仮のもの。後から強化する予定。 @@ -350,7 +378,7 @@ public override int On進行描画() this.stボーナス[i].ct進行.t停止(); this.stボーナス[i].b使用中 = false; } - if( this.txボーナス文字 != null && CDTXMania.ConfigIni.bShowScore ) + if (this.txボーナス文字 != null && CDTXMania.ConfigIni.bShowScore) { this.txボーナス文字.t2D描画(CDTXMania.app.Device, 160, 80); //if (this.stボーナス[i].ct進行.n現在の値 >= 765) @@ -361,10 +389,10 @@ public override int On進行描画() } } } -#endregion + #endregion } - return 0; - } + return 0; + } public void Start(int nLane, bool bボーナス) { @@ -389,10 +417,10 @@ public void Start(int nLane, bool bボーナス) } } } - - public void Start( int nLane, bool bボーナス, int n代入番号 ) + + public void Start(int nLane, bool bボーナス, int n代入番号) { - for ( int j = 0; j < 4; j++ ) + for (int j = 0; j < 4; j++) { if (this.stボーナス[j].b使用中) { @@ -404,7 +432,7 @@ public void Start( int nLane, bool bボーナス, int n代入番号 ) { for (int j = 0; j < 4; j++) { - if ( !this.stボーナス[ j ].b使用中 ) + if (!this.stボーナス[j].b使用中) { this.stボーナス[j].b使用中 = true; this.stボーナス[j].ct進行 = new CCounter(0, 1020, 1, CDTXMania.Timer); @@ -415,31 +443,31 @@ public void Start( int nLane, bool bボーナス, int n代入番号 ) } - // その他 + // その他 - #region [ private ] - //----------------- - [StructLayout( LayoutKind.Sequential )] - public struct STパッド状態 - { - public int n明るさ; - public int nY座標オフセットdot; + #region [ private ] + //----------------- + [StructLayout(LayoutKind.Sequential)] + public struct STパッド状態 + { + public int n明るさ; + public int nY座標オフセットdot; public int nY座標オフセットdot2; public int nX座標オフセットdot; public int nX座標オフセットdotFLIP; public int nX座標オフセットdot2; public int nX座標オフセットdot2FLIP; - public int nY座標加速度dot; + public int nY座標加速度dot; public int nY座標加速度dot2; public int nX座標加速度dot; - } - [StructLayout( LayoutKind.Sequential )] - public struct ST基本位置 - { - public int x; - public int y; - public Rectangle rc; - } + } + [StructLayout(LayoutKind.Sequential)] + public struct ST基本位置 + { + public int x; + public int y; + public Rectangle rc; + } [StructLayout(LayoutKind.Sequential)] public struct STボーナス { @@ -447,12 +475,14 @@ public struct STボーナス public CCounter ct進行; public int x; } - private long nY座標制御タイマ; + private long nY座標制御タイマ; private long nY座標制御タイマ2; - private long nフラッシュ制御タイマ; + private long nフラッシュ制御タイマ; private readonly int[] n描画順 = new int[] { 9, 3, 2, 6, 5, 4, 8, 7, 1, 0 }; - // LP BD SD FT HT LT RD CY HH LC - public STパッド状態[] stパッド状態 = new STパッド状態[ 0x13 ]; + // LP BD SD FT HT LT RD CY HH LC + //26072020: New array Fisyher + private readonly int[,] nDrawFlags = new int[3, 10] { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 }, { 0, 1, 1, 1, 1, 1, 0, 1, 0, 0 } }; + public STパッド状態[] stパッド状態 = new STパッド状態[ 0x13 ]; public readonly ST基本位置[] st基本位置; private CTexture txパッド; private CTexture tx光るパッド; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\254\343\203\274\343\203\263\343\203\225\343\203\251\343\203\203\343\202\267\343\203\245D.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\254\343\203\274\343\203\263\343\203\225\343\203\251\343\203\203\343\202\267\343\203\245D.cs" index 4535d360..1ca211f4 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\254\343\203\274\343\203\263\343\203\225\343\203\251\343\203\203\343\202\267\343\203\245D.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\254\343\203\274\343\203\263\343\203\225\343\203\251\343\203\203\343\202\267\343\203\245D.cs" @@ -69,7 +69,7 @@ public CAct演奏DrumsレーンフラッシュD() @"Graphics\ScreenPlayDrums lane flush floortom.png", @"Graphics\ScreenPlayDrums lane flush cymbal.png", @"Graphics\ScreenPlayDrums lane flush leftpedal.png", - @"Graphics\ScreenPlayDrums lane flush hihat.png", + @"Graphics\ScreenPlayDrums lane flush ridecymbal.png", @"Graphics\ScreenPlayDrums lane flush leftpedal.png", @"Graphics\ScreenPlayDrums lane flush leftcymbal reverse.png", @@ -81,7 +81,7 @@ public CAct演奏DrumsレーンフラッシュD() @"Graphics\ScreenPlayDrums lane flush floortom reverse.png", @"Graphics\ScreenPlayDrums lane flush cymbal reverse.png", @"Graphics\ScreenPlayDrums lane flush leftpedal reverse.png", - @"Graphics\ScreenPlayDrums lane flush hihat reverse.png", + @"Graphics\ScreenPlayDrums lane flush ridecymbal reverse.png", @"Graphics\ScreenPlayDrums lane flush leftpedal reverse.png" }; @@ -175,15 +175,18 @@ public override int On進行描画() } for ( int i = 0; i < 10; i++ ) { - int index = this.n描画順[i]; - int x2 = (CDTXMania.stage演奏ドラム画面.actPad.st基本位置[index].x + 32); - int x3 = (CDTXMania.stage演奏ドラム画面.actPad.st基本位置[index].x + (CDTXMania.ConfigIni.bReverse.Drums ? 32 : 32)); - int xHH = (CDTXMania.stage演奏ドラム画面.actPad.st基本位置[index].x + 32); - int xLC = (CDTXMania.stage演奏ドラム画面.actPad.st基本位置[index].x + (CDTXMania.ConfigIni.bReverse.Drums ? 32 : 32)); - int xCY = (CDTXMania.stage演奏ドラム画面.actPad.st基本位置[index].x + (CDTXMania.ConfigIni.bReverse.Drums ? 79 : 79)); - int nAlpha = 255 - ((int)(((float)(CDTXMania.ConfigIni.nMovieAlpha * 255)) / 10f)); - //if (CDTXMania.ConfigIni.eDark == Eダークモード.OFF) //2013.02.17 kairera0467 ダークOFF以外でも透明度を有効にした。 - if (this.txLine != null) + int index = this.n描画順[i]; + int numOfLanesflagIndex = (int)CDTXMania.ConfigIni.eNumOfLanes.Drums; + + int x2 = (CDTXMania.stage演奏ドラム画面.actPad.st基本位置[index].x + 32); + int x3 = (CDTXMania.stage演奏ドラム画面.actPad.st基本位置[index].x + (CDTXMania.ConfigIni.bReverse.Drums ? 32 : 32)); + int xHH = (CDTXMania.stage演奏ドラム画面.actPad.st基本位置[index].x + 32); + int xLC = (CDTXMania.stage演奏ドラム画面.actPad.st基本位置[index].x + (CDTXMania.ConfigIni.bReverse.Drums ? 32 : 32)); + int xCY = (CDTXMania.stage演奏ドラム画面.actPad.st基本位置[index].x + (CDTXMania.ConfigIni.bReverse.Drums ? 79 : 79)); + int nAlpha = 255 - ((int)(((float)(CDTXMania.ConfigIni.nMovieAlpha * 255)) / 10f)); + //if (CDTXMania.ConfigIni.eDark == Eダークモード.OFF) //2013.02.17 kairera0467 ダークOFF以外でも透明度を有効にした。 + //26072020: Check flag before drawing + if (this.nDrawFlags[numOfLanesflagIndex, index] == 1 && this.txLine != null) { this.txLine.n透明度 = nAlpha; this.txBass.n透明度 = nAlpha; @@ -275,7 +278,7 @@ public override int On進行描画() else if (CDTXMania.ConfigIni.eRDPosition == ERDPosition.RDRC) { this.txLine.t2D描画(CDTXMania.app.Device, xCY - 124, 0, new Rectangle(520, 0, 38, 720)); - } + } } if (index == 9) //LP { @@ -297,13 +300,24 @@ public override int On進行描画() else { - if (index == 0) //LC + if (index == 1) //HH { - this.txLine.t2D描画(CDTXMania.app.Device, 295, 0, new Rectangle(0, 0, 558, 720)); + int l_drumPanelWidth = 558; + int l_xOffset = 0; + if (CDTXMania.ConfigIni.eNumOfLanes.Drums == Eタイプ.B) + { + l_drumPanelWidth = 519; // 0x207 + } + else if(CDTXMania.ConfigIni.eNumOfLanes.Drums == Eタイプ.C) + { + l_drumPanelWidth = 447; + l_xOffset = 72; + } + this.txLine.t2D描画(CDTXMania.app.Device, 295 + l_xOffset, 0, new Rectangle(0, 0, l_drumPanelWidth, 720)); } - } + } } - + #endregion } for (int j = 0; j < 11; j++) @@ -429,8 +443,10 @@ private struct STレーンサイズ private readonly STレーンサイズ[] stレーンサイズ; private CCounter[] ct進行 = new CCounter[ 11 ]; private readonly string[] strファイル名; - private readonly int[] n描画順 = new int[] { 9, 2, 4, 6, 5, 3, 1, 8, 7, 0}; - private CTexture[] txFlush = new CTexture[ 0x16 ]; + private readonly int[] n描画順 = new int[] { 9, 2, 4, 6, 5, 3, 1, 8, 7, 0}; //new int[] { 9, 3, 2, 6, 5, 4, 8, 7, 1, 0 }; + //26072020: New array Fisyher + private readonly int[,] nDrawFlags = new int[3, 10] { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 }, { 0, 1, 1, 1, 1, 1, 1, 1, 0, 1 } }; + private CTexture[] txFlush = new CTexture[ 0x16 ]; private CTexture txLC; private CTexture txLine; private CTexture txBass; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227.cs" index 43f01f2d..68d844cb 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227.cs" @@ -1263,32 +1263,13 @@ public override int On進行描画() if (j < 10) { num5 = base.stレーンサイズ[j].x; - num6 = (CDTXMania.ConfigIni.判定文字表示位置.Drums == Eタイプ.A) ? base.iP_A + (CDTXMania.ConfigIni.bReverse.Drums ? -(this.n文字の縦表示位置[j] * 0x20) : (this.n文字の縦表示位置[j] * 0x20)) : base.iP_B; - } - else if (j == 11) - { - if (CDTXMania.ConfigIni.判定文字表示位置.Bass == Eタイプ.D) - { - continue; - } - num5 = base.stレーンサイズ[j].x; - num6 = CDTXMania.ConfigIni.bReverse.Bass ? (((CDTXMania.ConfigIni.判定文字表示位置.Bass == Eタイプ.A) ? 240 : 100) + (this.n文字の縦表示位置[j] * 0x20)) : (((CDTXMania.ConfigIni.判定文字表示位置.Bass == Eタイプ.A) ? 180 : 300) + (this.n文字の縦表示位置[j] * 0x20)); - } - else if (j == 10) - { - if (CDTXMania.ConfigIni.判定文字表示位置.Guitar == Eタイプ.D) + if( CDTXMania.ConfigIni.判定文字表示位置.Drums == Eタイプ.A ) { - continue; - } - if (!(CDTXMania.DTX.bチップがある.Bass || (CDTXMania.ConfigIni.判定文字表示位置.Guitar != Eタイプ.B))) - { - num5 = 0x198; - num6 = 0x93; + num6 = CDTXMania.ConfigIni.bReverse.Drums ? 348 + -(this.n文字の縦表示位置[j] * 0x20) : (348 + this.n文字の縦表示位置[j] * 0x20); } else { - num5 = this.stレーンサイズ[j].x; - num6 = CDTXMania.ConfigIni.bReverse.Guitar ? (((CDTXMania.ConfigIni.判定文字表示位置.Guitar == Eタイプ.A) ? 240 : 100) + (this.n文字の縦表示位置[j] * 0x20)) : (((CDTXMania.ConfigIni.判定文字表示位置.Guitar == Eタイプ.A) ? 180 : 300) + (this.n文字の縦表示位置[j] * 0x20)); + num6 = ( CDTXMania.ConfigIni.bReverse.Drums ? 80 + this.n文字の縦表示位置[j] * 0x20 : 583 + this.n文字の縦表示位置[j] * 0x20 ); } } @@ -1380,7 +1361,14 @@ public override int On進行描画() if (j < 10) { num5 = base.stレーンサイズ[j].x; - num6 = (CDTXMania.ConfigIni.判定文字表示位置.Drums == Eタイプ.A) ? base.iP_A + (CDTXMania.ConfigIni.bReverse.Drums ? -(this.n文字の縦表示位置[j] * 0x20) : (this.n文字の縦表示位置[j] * 0x20)) : base.iP_B; + if( CDTXMania.ConfigIni.判定文字表示位置.Drums == Eタイプ.A ) + { + num6 = CDTXMania.ConfigIni.bReverse.Drums ? 348 + -(this.n文字の縦表示位置[j] * 0x20) : (348 + this.n文字の縦表示位置[j] * 0x20); + } + else + { + num6 = ( CDTXMania.ConfigIni.bReverse.Drums ? 80 + this.n文字の縦表示位置[j] * 0x20 : 583 + this.n文字の縦表示位置[j] * 0x20 ); + } } int nRectX = 85; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CStage\346\274\224\345\245\217\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CStage\346\274\224\345\245\217\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242.cs" index 4a52f61a..396772f0 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CStage\346\274\224\345\245\217\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CStage\346\274\224\345\245\217\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242.cs" @@ -56,9 +56,9 @@ public CStage演奏ドラム画面() public void t演奏結果を格納する( out CScoreIni.C演奏記録 Drums, out CScoreIni.C演奏記録 Guitar, out CScoreIni.C演奏記録 Bass, out CDTX.CChip[] r空打ちドラムチップ ) { - base.t演奏結果を格納する・ドラム( out Drums ); - base.t演奏結果を格納する・ギター( out Guitar ); - base.t演奏結果を格納する・ベース( out Bass ); + base.t演奏結果を格納する_ドラム( out Drums ); + base.t演奏結果を格納する_ギター( out Guitar ); + base.t演奏結果を格納する_ベース( out Bass ); r空打ちドラムチップ = new CDTX.CChip[ 12 ]; for ( int i = 0; i < 12; i++ ) @@ -66,7 +66,7 @@ public void t演奏結果を格納する( out CScoreIni.C演奏記録 Drums, out r空打ちドラムチップ[ i ] = this.r空うちChip( E楽器パート.DRUMS, (Eパッド) i ); if( r空打ちドラムチップ[ i ] == null ) { - r空打ちドラムチップ[ i ] = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( CDTXMania.Timer.n現在時刻, this.nパッド0Atoチャンネル0A[ i ], this.nInputAdjustTimeMs.Drums ); + r空打ちドラムチップ[ i ] = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮( CDTXMania.Timer.n現在時刻, this.nパッド0Atoチャンネル0A[ i ], this.nInputAdjustTimeMs.Drums ); } } } @@ -92,7 +92,18 @@ public override void On活性化() } else { - this.actGraph.dbグラフ値目標_渡 = CDTXMania.stage選曲.r確定されたスコア.譜面情報.最大スキル[0]; // #24074 2011.01.23 add ikanick + this.actGraph.dbグラフ値目標_渡 = CDTXMania.stage選曲.r確定されたスコア.譜面情報.最大スキル[ 0 ]; // #24074 2011.01.23 add ikanick + this.actGraph.dbグラフ値自己ベスト = CDTXMania.stage選曲.r確定されたスコア.譜面情報.最大スキル[ 0 ]; + + // #35411 2015.08.21 chnmr0 add + // ゴースト利用可のなとき、0で初期化 + if (CDTXMania.ConfigIni.eTargetGhost.Drums != ETargetGhostData.NONE) + { + if (CDTXMania.listTargetGhsotLag[(int)E楽器パート.DRUMS] != null) + { + this.actGraph.dbグラフ値目標_渡 = 0; + } + } } dtLastQueueOperation = DateTime.MinValue; } @@ -205,12 +216,12 @@ public override int On進行描画() List pausedCSound = new List(); - #region [ BGMの途中再生開始 (CDTXのt入力・行解析・チップ配置()で小節番号が+1されているのを削っておくこと) ] + #region [ BGMの途中再生開始 (CDTXのt入力_行解析_チップ配置()で小節番号が+1されているのを削っておくこと) ] foreach ( CDTX.CChip pChip in this.listChip ) { if ( pChip.nチャンネル番号 == 0x01 ) { - CDTX.CWAV wc = CDTXMania.DTX.listWAV[ pChip.n整数値・内部番号 ]; + CDTX.CWAV wc = CDTXMania.DTX.listWAV[ pChip.n整数値_内部番号 ]; int nDuration = ( wc.rSound[ 0 ] == null ) ? 0 : (int) ( wc.rSound[ 0 ].n総演奏時間ms / CDTXMania.DTX.db再生速度 ); // if (wc.bIsBGMSound || wc.bIsGuitarSound || wc.bIsBassSound || wc.bIsBGMSound || wc.bIsSESound ) { @@ -268,15 +279,15 @@ public override int On進行描画() CDTXMania.DTX.t全チップの再生停止(); base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED; } - this.t進行描画・背景(); - this.t進行描画・MIDIBGM(); - this.t進行描画・AVI(); - this.t進行描画・レーンフラッシュD(); - this.t進行描画・譜面スクロール速度(); - this.t進行描画・チップアニメ(); - this.t進行描画・小節線( E楽器パート.DRUMS ); - this.t進行描画・チップ・模様のみ( E楽器パート.DRUMS ); - bIsFinishedPlaying = this.t進行描画・チップ( E楽器パート.DRUMS ); + this.t進行描画_背景(); + this.t進行描画_MIDIBGM(); + this.t進行描画_AVI(); + this.t進行描画_レーンフラッシュD(); + this.t進行描画_譜面スクロール速度(); + this.t進行描画_チップアニメ(); + this.t進行描画_小節線( E楽器パート.DRUMS ); + this.t進行描画_チップ_模様のみ( E楽器パート.DRUMS ); + bIsFinishedPlaying = this.t進行描画_チップ( E楽器パート.DRUMS ); #region[ シャッター ] //シャッターを使うのはLC、LP、FT、RDレーンのみ。その他のレーンでは一切使用しない。 if ((CDTXMania.ConfigIni.bCLASSIC譜面判別を有効にする == true ) && ((CDTXMania.DTX.bチップがある.LeftCymbal == false) && ( CDTXMania.DTX.bチップがある.FT == false ) && ( CDTXMania.DTX.bチップがある.Ride == false ) && ( CDTXMania.DTX.bチップがある.LP == false ) && ( CDTXMania.DTX.b強制的にXG譜面にする == false))) @@ -310,7 +321,6 @@ public override int On進行描画() this.txLaneCover.t2D描画(CDTXMania.app.Device, 690, 0, new Rectangle(71, 0, 52, 720)); } //if (CDTXMania.DTX.bチップがある.Ride == false) - /* { //RDPositionで入れ替わり if (CDTXMania.ConfigIni.eRDPosition == ERDPosition.RCRD) @@ -322,7 +332,6 @@ public override int On進行描画() this.txLaneCover.t2D描画(CDTXMania.app.Device, 743, 0, new Rectangle(178, 0, 38, 720)); } } - */ } } @@ -358,9 +367,9 @@ public override int On進行描画() } #endregion - this.t進行描画・判定ライン(); - this.t進行描画・ドラムパッド(); - bIsFinishedFadeout = this.t進行描画・フェードイン・アウト(); + this.t進行描画_判定ライン(); + this.t進行描画_ドラムパッド(); + bIsFinishedFadeout = this.t進行描画_フェードイン_アウト(); if (bIsFinishedPlaying && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態) ) { if ((this.actGauge.IsFailed(E楽器パート.DRUMS)) && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態)) @@ -373,9 +382,9 @@ public override int On進行描画() { this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージクリア; base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト; - if (base.nヒット数・Auto含まない.Drums.Miss + base.nヒット数・Auto含まない.Drums.Poor == 0) + if (base.nヒット数_Auto含まない.Drums.Miss + base.nヒット数_Auto含まない.Drums.Poor == 0) { - this.nパフェ数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nパフェ数 = base.nヒット数・Auto含む.Drums.Perfect : base.nヒット数・Auto含まない.Drums.Perfect; + this.nパフェ数 = CDTXMania.ConfigIni.bドラムが全部オートプレイである ? this.nパフェ数 = base.nヒット数_Auto含む.Drums.Perfect : base.nヒット数_Auto含まない.Drums.Perfect; if (nパフェ数 == CDTXMania.DTX.n可視チップ数.Drums) #region[ エクセ ] { @@ -395,35 +404,34 @@ public override int On進行描画() } } if( CDTXMania.ConfigIni.bShowScore ) - this.t進行描画・スコア(); + this.t進行描画_スコア(); // if( CDTXMania.ConfigIni.bShowMusicInfo ) -// this.t進行描画・パネル文字列(); +// this.t進行描画_パネル文字列(); if (CDTXMania.ConfigIni.nInfoType == 1) - this.t進行描画・ステータスパネル(); - if (CDTXMania.ConfigIni.bGraph有効) - this.t進行描画・グラフ(); - this.t進行描画・ゲージ(); - this.t進行描画・コンボ(); - this.t進行描画・演奏情報(); - this.t進行描画・判定文字列1・通常位置指定の場合(); - this.t進行描画・判定文字列2・判定ライン上指定の場合(); - this.t進行描画・チップファイアD(); - this.t進行描画・STAGEFAILED(); + this.t進行描画_ステータスパネル(); + this.t進行描画_ゲージ(); + this.t進行描画_コンボ(); + this.t進行描画_グラフ(); + this.t進行描画_演奏情報(); + this.t進行描画_判定文字列1_通常位置指定の場合(); + this.t進行描画_判定文字列2_判定ライン上指定の場合(); + this.t進行描画_チップファイアD(); + this.t進行描画_STAGEFAILED(); bすべてのチップが判定された = true; if (bIsFinishedFadeout) { if (!CDTXMania.Skin.soundステージクリア音.b再生中 && !CDTXMania.Skin.soundSTAGEFAILED音.b再生中) { Debug.WriteLine("Total On進行描画=" + sw.ElapsedMilliseconds + "ms"); - this.nミス数 = base.nヒット数・Auto含まない.Drums.Miss + base.nヒット数・Auto含まない.Drums.Poor; + this.nミス数 = base.nヒット数_Auto含まない.Drums.Miss + base.nヒット数_Auto含まない.Drums.Poor; switch (nミス数) { case 0: { - this.nパフェ数 = base.nヒット数・Auto含まない.Drums.Perfect; + this.nパフェ数 = base.nヒット数_Auto含まない.Drums.Perfect; if (CDTXMania.ConfigIni.bドラムが全部オートプレイである) { - this.nパフェ数 = base.nヒット数・Auto含む.Drums.Perfect; + this.nパフェ数 = base.nヒット数_Auto含む.Drums.Perfect; } if (nパフェ数 == CDTXMania.DTX.n可視チップ数.Drums) #region[ エクセ ] @@ -500,7 +508,6 @@ public override int On進行描画() public int nミス数; public int nパフェ数; private CAct演奏DrumsチップファイアD actChipFireD; - public CAct演奏スキルメーター actGraph; // #24074 2011.01.23 add ikanick public CAct演奏Drumsパッド actPad; public bool bフィルイン中; public bool bフィルイン終了; @@ -577,22 +584,35 @@ protected override E判定 tチップのヒット処理( long nHitTime, CDTX.CCh // #24074 2011.01.23 add ikanick if (CDTXMania.ConfigIni.nSkillMode == 0) { - this.actGraph.dbグラフ値現在_渡 = CScoreIni.t旧演奏型スキルを計算して返す(CDTXMania.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); + this.actGraph.dbグラフ値現在_渡 = CScoreIni.t旧演奏型スキルを計算して返す(CDTXMania.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); } else if (CDTXMania.ConfigIni.nSkillMode == 1) { - this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.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, this.actCombo.n現在のコンボ数.最高値.Drums, E楽器パート.DRUMS, bIsAutoPlay); + this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.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, this.actCombo.n現在のコンボ数.最高値.Drums, E楽器パート.DRUMS, bIsAutoPlay); } + // #35411 2015.09.07 add chnmr0 + if( CDTXMania.listTargetGhsotLag.Drums != null && + CDTXMania.ConfigIni.eTargetGhost.Drums == ETargetGhostData.ONLINE && + CDTXMania.DTX.n可視チップ数.Drums > 0 ) + { + // Online Stats の計算式 + this.actGraph.dbグラフ値現在_渡 = 100 * + ( this.nヒット数_Auto含まない.Drums.Perfect * 17 + + this.nヒット数_Auto含まない.Drums.Great * 7 + + this.actCombo.n現在のコンボ数.最高値.Drums * 3 ) / ( 20.0 * CDTXMania.DTX.n可視チップ数.Drums ); + } + + this.actStatusPanels.db現在の達成率.Drums = this.actGraph.dbグラフ値現在_渡; return eJudgeResult; } - protected override void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part ) + protected override void tチップのヒット処理_BadならびにTight時のMiss( E楽器パート part ) { - this.tチップのヒット処理・BadならびにTight時のMiss( part, 0, E楽器パート.DRUMS ); + this.tチップのヒット処理_BadならびにTight時のMiss( part, 0, E楽器パート.DRUMS ); } - protected override void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part, int nLane ) + protected override void tチップのヒット処理_BadならびにTight時のMiss( E楽器パート part, int nLane ) { - this.tチップのヒット処理・BadならびにTight時のMiss( part, nLane, E楽器パート.DRUMS ); + this.tチップのヒット処理_BadならびにTight時のMiss( part, nLane, E楽器パート.DRUMS ); } protected override void tJudgeLineMovingUpandDown() @@ -677,7 +697,7 @@ private bool tドラムヒット処理( long nHitTime, Eパッド type, CDTX.CCh { hH = Eパッド.HH; } - rChip = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮( nHitTime, this.nパッド0Atoチャンネル0A[ (int) hH ], nInputAdjustTime ); + rChip = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮( nHitTime, this.nパッド0Atoチャンネル0A[ (int) hH ], nInputAdjustTime ); if( rChip == null ) { rChip = pChip; @@ -698,30 +718,30 @@ protected override void ドラムスクロール速度ダウン() } /* - protected override void t進行描画・AVI() + protected override void t進行描画_AVI() { - base.t進行描画・AVI( 0, 0 ); + base.t進行描画_AVI( 0, 0 ); } - protected override void t進行描画・BGA() + protected override void t進行描画_BGA() { - base.t進行描画・BGA( 990, 0 ); + base.t進行描画_BGA( 990, 0 ); } */ - protected override void t進行描画・DANGER() + protected override void t進行描画_DANGER() { this.actDANGER.t進行描画( this.actGauge.IsDanger(E楽器パート.DRUMS), false, false ); } - protected override void t進行描画・Wailing枠() + protected override void t進行描画_Wailing枠() { - base.t進行描画・Wailing枠( 587, 478, + base.t進行描画_Wailing枠( 587, 478, CDTXMania.ConfigIni.bReverse.Guitar ? ( 400 - this.txWailing枠.sz画像サイズ.Height ) : 69, CDTXMania.ConfigIni.bReverse.Bass ? ( 400 - this.txWailing枠.sz画像サイズ.Height ) : 69 ); } /* - private void t進行描画・ギターベースフレーム() + private void t進行描画_ギターベースフレーム() { if( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && CDTXMania.ConfigIni.bGuitar有効 ) { @@ -757,7 +777,7 @@ protected override void ドラムスクロール速度ダウン() } } } - private void t進行描画・ギターベース判定ライン() // yyagi: ギタレボモードとは座標が違うだけですが、まとめづらかったのでそのまま放置してます。 + private void t進行描画_ギターベース判定ライン() // yyagi: ギタレボモードとは座標が違うだけですが、まとめづらかったのでそのまま放置してます。 { if ( ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && CDTXMania.ConfigIni.bGuitar有効 ) { @@ -791,37 +811,36 @@ protected override void ドラムスクロール速度ダウン() } */ - private void t進行描画・グラフ() + private void t進行描画_グラフ() { - if (CDTXMania.ConfigIni.bGraph有効) + if( CDTXMania.ConfigIni.bGraph有効.Drums ) { this.actGraph.On進行描画(); - this.actGraph.db現在の判定数合計 = this.nヒット数・Auto含む.Drums.Perfect + this.nヒット数・Auto含む.Drums.Great + this.nヒット数・Auto含む.Drums.Good + this.nヒット数・Auto含む.Drums.Miss + this.nヒット数・Auto含む.Drums.Poor; } } - private void t進行描画・チップファイアD() + private void t進行描画_チップファイアD() { this.actChipFireD.On進行描画(); } - private void t進行描画・ドラムパッド() + private void t進行描画_ドラムパッド() { this.actPad.On進行描画(); } /* - protected override void t進行描画・パネル文字列() + protected override void t進行描画_パネル文字列() { - base.t進行描画・パネル文字列(912, 640); + base.t進行描画_パネル文字列(912, 640); } */ - protected override void t進行描画・演奏情報() + protected override void t進行描画_演奏情報() { - base.t進行描画・演奏情報( 1000, 257 ); + base.t進行描画_演奏情報( 1000, 257 ); } - protected override void t入力処理・ドラム() + protected override void t入力処理_ドラム() { for (int nPad = 0; nPad < (int)Eパッド.MAX; nPad++) @@ -2376,9 +2395,9 @@ protected override void ドラムスクロール速度ダウン() #region [ *** ] //----------------------------- { - CDTX.CChip chipHC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime); - CDTX.CChip chipHO = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime); - CDTX.CChip chipLC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime); + CDTX.CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime); + CDTX.CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime); + CDTX.CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime); switch (CDTXMania.ConfigIni.eHHGroup) { case EHHGroup.ハイハットのみ打ち分ける: @@ -2425,8 +2444,8 @@ protected override void ドラムスクロール速度ダウン() #region [ *** ] //----------------------------- { - CDTX.CChip chipLT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[4], nInputAdjustTime); - CDTX.CChip chipFT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[5], nInputAdjustTime); + CDTX.CChip chipLT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[4], nInputAdjustTime); + CDTX.CChip chipFT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[5], nInputAdjustTime); if (CDTXMania.ConfigIni.eFTGroup != EFTGroup.打ち分ける) rChip = (chipLT != null) ? chipLT : chipFT; else @@ -2440,8 +2459,8 @@ protected override void ドラムスクロール速度ダウン() #region [ *** ] //----------------------------- { - CDTX.CChip chipLT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[4], nInputAdjustTime); - CDTX.CChip chipFT = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[5], nInputAdjustTime); + CDTX.CChip chipLT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[4], nInputAdjustTime); + CDTX.CChip chipFT = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[5], nInputAdjustTime); if (CDTXMania.ConfigIni.eFTGroup != EFTGroup.打ち分ける) rChip = (chipFT != null) ? chipFT : chipLT; else @@ -2456,8 +2475,8 @@ protected override void ドラムスクロール速度ダウン() //----------------------------- { - CDTX.CChip chipCY = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[6], nInputAdjustTime); - CDTX.CChip chipRD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[8], nInputAdjustTime); + CDTX.CChip chipCY = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[6], nInputAdjustTime); + CDTX.CChip chipRD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[8], nInputAdjustTime); if (CDTXMania.ConfigIni.eCYGroup != ECYGroup.打ち分ける) rChip = (chipCY != null) ? chipCY : chipRD; else @@ -2471,9 +2490,9 @@ protected override void ドラムスクロール速度ダウン() #region [ *** ] //----------------------------- { - CDTX.CChip chipHC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime); - CDTX.CChip chipHO = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime); - CDTX.CChip chipLC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime); + CDTX.CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime); + CDTX.CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime); + CDTX.CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime); switch (CDTXMania.ConfigIni.eHHGroup) { case EHHGroup.全部打ち分ける: @@ -2520,8 +2539,8 @@ protected override void ドラムスクロール速度ダウン() #region [ *** ] //----------------------------- { - CDTX.CChip chipCY = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[6], nInputAdjustTime); - CDTX.CChip chipRD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[8], nInputAdjustTime); + CDTX.CChip chipCY = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[6], nInputAdjustTime); + CDTX.CChip chipRD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[8], nInputAdjustTime); if (CDTXMania.ConfigIni.eCYGroup != ECYGroup.打ち分ける) rChip = (chipRD != null) ? chipRD : chipCY; else @@ -2535,9 +2554,9 @@ protected override void ドラムスクロール速度ダウン() #region [ *** ] //----------------------------- { - CDTX.CChip chipHC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime); - CDTX.CChip chipHO = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime); - CDTX.CChip chipLC = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime); + CDTX.CChip chipHC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[0], nInputAdjustTime); + CDTX.CChip chipHO = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[7], nInputAdjustTime); + CDTX.CChip chipLC = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[9], nInputAdjustTime); switch (CDTXMania.ConfigIni.eHHGroup) { case EHHGroup.全部打ち分ける: @@ -2578,9 +2597,9 @@ protected override void ドラムスクロール速度ダウン() #region [ *** ] //----------------------------- { - CDTX.CChip chipBD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[2], nInputAdjustTime + nPedalLagTime); - CDTX.CChip chipLP = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[10], nInputAdjustTime + nPedalLagTime); - CDTX.CChip chipLBD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[11], nInputAdjustTime + nPedalLagTime); + CDTX.CChip chipBD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[2], nInputAdjustTime + nPedalLagTime); + CDTX.CChip chipLP = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[10], nInputAdjustTime + nPedalLagTime); + CDTX.CChip chipLBD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[11], nInputAdjustTime + nPedalLagTime); switch (CDTXMania.ConfigIni.eBDGroup) { case EBDGroup.打ち分ける: @@ -2643,9 +2662,9 @@ protected override void ドラムスクロール速度ダウン() #region [ *** ] //----------------------------- { - CDTX.CChip chipBD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[2], nInputAdjustTime + nPedalLagTime ); - CDTX.CChip chipLP = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[10], nInputAdjustTime + nPedalLagTime ); - CDTX.CChip chipLBD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[11], nInputAdjustTime + nPedalLagTime ); + CDTX.CChip chipBD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[2], nInputAdjustTime + nPedalLagTime ); + CDTX.CChip chipLP = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[10], nInputAdjustTime + nPedalLagTime ); + CDTX.CChip chipLBD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[11], nInputAdjustTime + nPedalLagTime ); switch (CDTXMania.ConfigIni.eBDGroup) { case EBDGroup.打ち分ける: @@ -2695,9 +2714,9 @@ protected override void ドラムスクロール速度ダウン() case Eパッド.LBD: #region [ *** ] { - CDTX.CChip chipBD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[2], nInputAdjustTime + nPedalLagTime); - CDTX.CChip chipLP = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[10], nInputAdjustTime + nPedalLagTime); - CDTX.CChip chipLBD = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[11], nInputAdjustTime + nPedalLagTime); + CDTX.CChip chipBD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[2], nInputAdjustTime + nPedalLagTime); + CDTX.CChip chipLP = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[10], nInputAdjustTime + nPedalLagTime); + CDTX.CChip chipLBD = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[11], nInputAdjustTime + nPedalLagTime); switch (CDTXMania.ConfigIni.eBDGroup) { case EBDGroup.打ち分ける: @@ -2761,7 +2780,7 @@ protected override void ドラムスクロール速度ダウン() default: #region [ *** ] //----------------------------- - rChip = this.r指定時刻に一番近いChip・ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[nPad], nInputAdjustTime); + rChip = this.r指定時刻に一番近いChip_ヒット未済問わず不可視考慮(nTime, this.nパッド0Atoチャンネル0A[nPad], nInputAdjustTime); //----------------------------- #endregion break; @@ -2778,14 +2797,14 @@ protected override void ドラムスクロール速度ダウン() // BAD or TIGHT 時の処理。 if (CDTXMania.ConfigIni.bTight) - this.tチップのヒット処理・BadならびにTight時のMiss(E楽器パート.DRUMS, this.nパッド0Atoレーン07[nPad]); + this.tチップのヒット処理_BadならびにTight時のMiss(E楽器パート.DRUMS, this.nパッド0Atoレーン07[nPad]); //----------------------------- #endregion } } } - // t入力処理・ドラム()からメソッドを抽出したもの。 + // t入力処理_ドラム()からメソッドを抽出したもの。 /// /// chipArrayの中を, n発生位置の小さい順に並べる + nullを大きい方に退かす。セットでe判定Arrayも並べ直す。 /// @@ -2832,7 +2851,7 @@ protected override void t背景テクスチャの生成() base.t背景テクスチャの生成( DefaultBgFilename, bgrect, BgFilename ); } - protected override void t進行描画・チップ・模様のみ・ドラムス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) + protected override void t進行描画_チップ_模様のみ_ドラムス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) { if (configIni.bDrums有効) { @@ -3103,7 +3122,7 @@ protected override void t背景テクスチャの生成() pChip.bHit = true; } } - protected override void t進行描画・チップ・ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + protected override void t進行描画_チップ_ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) { if( configIni.bDrums有効 ) { @@ -3388,21 +3407,93 @@ protected override void t背景テクスチャの生成() } int indexSevenLanes = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ]; + // #35411 chnmr0 modified + bool autoPlayCondition = ( configIni.bAutoPlay[ indexSevenLanes ] && !pChip.bHit ); + bool UsePerfectGhost = true; + long ghostLag = 0; + if( CDTXMania.ConfigIni.eAutoGhost.Drums != EAutoGhostData.PERFECT && + CDTXMania.listAutoGhostLag.Drums != null && + 0 <= pChip.n楽器パートでの出現順 && pChip.n楽器パートでの出現順 < CDTXMania.listAutoGhostLag.Drums.Count) - if( ( pChip.nチャンネル番号 == 0x1C ? ( configIni.bAutoPlay.LBD && !pChip.bHit ) : ( configIni.bAutoPlay[ indexSevenLanes ] && !pChip.bHit ) ) && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + // ゴーストデータが有効 : ラグに合わせて判定 + ghostLag = CDTXMania.listAutoGhostLag.Drums[pChip.n楽器パートでの出現順]; + ghostLag = (ghostLag & 255) - 128; + ghostLag -= this.nInputAdjustTimeMs.Drums; + autoPlayCondition &= !pChip.bHit && (ghostLag + pChip.n発声時刻ms <= CSound管理.rc演奏用タイマ.n現在時刻ms); + UsePerfectGhost = false; + } + if( UsePerfectGhost ) + { + // 従来の AUTO : バー下で判定 + autoPlayCondition &= ( pChip.nバーからの距離dot.Drums < 0 ); + } + + if ( autoPlayCondition ) { pChip.bHit = true; - this.actLaneFlushD.Start( ( Eレーン ) indexSevenLanes, ( ( float ) CInput管理.n通常音量 ) / 127f ); + this.actLaneFlushD.Start( (Eレーン) indexSevenLanes, ( (float) CInput管理.n通常音量 ) / 127f ); bool flag = this.bフィルイン中; bool flag2 = this.bフィルイン中 && this.bフィルイン区間の最後のChipである( pChip ); //bool flag3 = flag2; - // #31602 2013.6.24 yyagi 判定ラインの表示位置をずらしたら、チップのヒットエフェクトの表示もずらすために、nJudgeLine..を追加 - this.actChipFireD.Start( ( Eレーン )indexSevenLanes, flag, flag2, flag2, nJudgeLinePosY_delta.Drums ); + // #31602 2013.6.24 yyagi 判定ラインの表示位置をずらしたら、チップのヒットエフェクトの表示もずらすために、nJudgeLine..を追加 + this.actChipFireD.Start( (Eレーン)indexSevenLanes, flag, flag2, flag2, nJudgeLinePosY_delta.Drums ); this.actPad.Hit( this.nチャンネル0Atoパッド08[ pChip.nチャンネル番号 - 0x11 ] ); - this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) ); - this.tチップのヒット処理( pChip.n発声時刻ms, pChip ); + this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms + ghostLag, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) ); + this.tチップのヒット処理(pChip.n発声時刻ms + ghostLag, pChip); + //cInvisibleChip.StartSemiInvisible( E楽器パート.DRUMS ); } + // #35411 modify end + + // #35411 2015.08.21 chnmr0 add + // 目標値グラフにゴーストの達成率を渡す + if (CDTXMania.ConfigIni.eTargetGhost.Drums != ETargetGhostData.NONE && + CDTXMania.listTargetGhsotLag.Drums != null) + { + double val = 0; + if (CDTXMania.ConfigIni.eTargetGhost.Drums == ETargetGhostData.ONLINE) + { + if (CDTXMania.DTX.n可視チップ数.Drums > 0) + { + // Online Stats の計算式 + val = 100 * + (this.nヒット数_TargetGhost.Drums.Perfect * 17 + + this.nヒット数_TargetGhost.Drums.Great * 7 + + this.n最大コンボ数_TargetGhost.Drums * 3) / (20.0 * CDTXMania.DTX.n可視チップ数.Drums); + } + } + else + { + if( CDTXMania.ConfigIni.nSkillMode == 0 ) + { + val = CScoreIni.t旧演奏型スキルを計算して返す( + CDTXMania.DTX.n可視チップ数.Drums, + this.nヒット数_TargetGhost.Drums.Perfect, + this.nヒット数_TargetGhost.Drums.Great, + this.nヒット数_TargetGhost.Drums.Good, + this.nヒット数_TargetGhost.Drums.Poor, + this.nヒット数_TargetGhost.Drums.Miss, + E楽器パート.DRUMS, new STAUTOPLAY()); + } + else + { + val = CScoreIni.t演奏型スキルを計算して返す( + CDTXMania.DTX.n可視チップ数.Drums, + this.nヒット数_TargetGhost.Drums.Perfect, + this.nヒット数_TargetGhost.Drums.Great, + this.nヒット数_TargetGhost.Drums.Good, + this.nヒット数_TargetGhost.Drums.Poor, + this.nヒット数_TargetGhost.Drums.Miss, + this.n最大コンボ数_TargetGhost.Drums, + E楽器パート.DRUMS, new STAUTOPLAY()); + } + + } + if (val < 0) val = 0; + if (val > 100) val = 100; + this.actGraph.dbグラフ値目標_渡 = val; + } return; } // end of "if configIni.bDrums有効" if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) @@ -3411,16 +3502,16 @@ protected override void t背景テクスチャの生成() pChip.bHit = true; } } - protected override void t進行描画・チップ・ギターベース(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst) + protected override void t進行描画_チップ_ギターベース(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst) { - base.t進行描画・チップ・ギターベース( configIni, ref dTX, ref pChip, inst, + base.t進行描画_チップ_ギターベース( configIni, ref dTX, ref pChip, inst, 95, 374, 57, 412, 509, 400, 268, 144, 76, 6, 24, 509, 561, 400, 452, 26, 24 ); } /* - protected override void t進行描画・チップ・ギター・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + protected override void t進行描画_チップ_ギター_ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) { if ( configIni.bGuitar有効 ) { @@ -3486,10 +3577,10 @@ protected override void t背景テクスチャの生成() //} //pChip.bHit = true; } - base.t進行描画・チップ・ギター・ウェイリング( configIni, ref dTX, ref pChip ); + base.t進行描画_チップ_ギター_ウェイリング( configIni, ref dTX, ref pChip ); } */ - protected override void t進行描画・チップ・フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + protected override void t進行描画_チップ_フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) { if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) { @@ -3520,7 +3611,7 @@ protected override void t背景テクスチャの生成() else { CDTXMania.Skin.sound歓声音.t再生する(); - CDTXMania.Skin.sound歓声音.n位置・次に鳴るサウンド = 0; + CDTXMania.Skin.sound歓声音.n位置_次に鳴るサウンド = 0; } //if (CDTXMania.ConfigIni.nSkillMode == 1) // this.actScore.n現在の本当のスコア.Drums += 500; @@ -3547,7 +3638,7 @@ protected override void t背景テクスチャの生成() else { CDTXMania.Skin.sound歓声音.t再生する(); - CDTXMania.Skin.sound歓声音.n位置・次に鳴るサウンド = 0; + CDTXMania.Skin.sound歓声音.n位置_次に鳴るサウンド = 0; } } break; @@ -3566,7 +3657,7 @@ protected override void t背景テクスチャの生成() else { CDTXMania.Skin.sound歓声音.t再生する(); - CDTXMania.Skin.sound歓声音.n位置・次に鳴るサウンド = 0; + CDTXMania.Skin.sound歓声音.n位置_次に鳴るサウンド = 0; } } break; @@ -3575,7 +3666,7 @@ protected override void t背景テクスチャの生成() } - protected override void t進行描画・チップ・ボーナス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) + protected override void t進行描画_チップ_ボーナス(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) { } @@ -3667,13 +3758,10 @@ public void tボーナスチップのヒット処理( CConfigIni configIni, CDTX case 0x16: //CY this.actPad.Start( 8, true, pChip.nチャンネル番号 ); break; - - /* + case 0x19: //RD - this.actPad.Start( 9, true, pChip.nチャンネル番号 ); + this.actPad.Start(9, true, pChip.nチャンネル番号); break; - */ - default: break; } @@ -3681,7 +3769,7 @@ public void tボーナスチップのヒット処理( CConfigIni configIni, CDTX { this.actAVI.Start( true ); CDTXMania.Skin.sound歓声音.t再生する(); - CDTXMania.Skin.sound歓声音.n位置・次に鳴るサウンド = 0; + CDTXMania.Skin.sound歓声音.n位置_次に鳴るサウンド = 0; } if( CDTXMania.ConfigIni.nSkillMode == 1 && ( !CDTXMania.ConfigIni.bドラムが全部オートプレイである || CDTXMania.ConfigIni.bAutoAddGage ) ) this.actScore.Add( E楽器パート.DRUMS, bIsAutoPlay, 500L ); @@ -3691,7 +3779,7 @@ public void tボーナスチップのヒット処理( CConfigIni configIni, CDTX } /* - protected override void t進行描画・チップ・ベース・ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + protected override void t進行描画_チップ_ベース_ウェイリング( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) { if ( configIni.bGuitar有効 ) { @@ -3759,11 +3847,11 @@ public void tボーナスチップのヒット処理( CConfigIni configIni, CDTX //} //pChip.bHit = true; } - base.t進行描画・チップ・ベース・ウェイリング( configIni, ref dTX, ref pChip); + base.t進行描画_チップ_ベース_ウェイリング( configIni, ref dTX, ref pChip); } */ - protected override void t進行描画・チップ・空打ち音設定・ドラム(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) + protected override void t進行描画_チップ_空打ち音設定_ドラム(CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip) { if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0)) { @@ -3780,7 +3868,7 @@ public void tボーナスチップのヒット処理( CConfigIni configIni, CDTX } } - protected override void t進行描画・チップ・小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + protected override void t進行描画_チップ_小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) { int n小節番号plus1 = pChip.n発声位置 / 384; if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) @@ -3799,8 +3887,19 @@ public void tボーナスチップのヒット処理( CConfigIni configIni, CDTX } if (((configIni.nLaneDisp.Drums == 0 || configIni.nLaneDisp.Drums == 1) && pChip.b可視) && (this.txチップ != null)) { - // 27/02/2016 limyz shorten the dtx score line to duplicate Gitadora gameplay - this.txチップ.t2D描画(CDTXMania.app.Device, 295, configIni.bReverse.Drums ? ((base.nJudgeLinePosY.Drums + pChip.nバーからの距離dot.Drums) - 1) : ((base.nJudgeLinePosY.Drums - pChip.nバーからの距離dot.Drums) - 1), new Rectangle(0, 769, 0x207, 2)); + int l_drumPanelWidth = 0x22f; + int l_xOffset = 0; + if (configIni.eNumOfLanes.Drums == Eタイプ.B) + { + l_drumPanelWidth = 0x207; + } + else if (CDTXMania.ConfigIni.eNumOfLanes.Drums == Eタイプ.C) + { + l_drumPanelWidth = 447; + l_xOffset = 72; + } + + this.txチップ.t2D描画(CDTXMania.app.Device, 295 + l_xOffset, configIni.bReverse.Drums ? ((base.nJudgeLinePosY.Drums + pChip.nバーからの距離dot.Drums) - 1) : ((base.nJudgeLinePosY.Drums - pChip.nバーからの距離dot.Drums) - 1), new Rectangle(0, 769, l_drumPanelWidth, 2)); } /* diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/08.\347\265\220\346\236\234/CActResultImage.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/08.\347\265\220\346\236\234/CActResultImage.cs" index b4ff4041..c72a42c0 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/08.\347\265\220\346\236\234/CActResultImage.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/08.\347\265\220\346\236\234/CActResultImage.cs" @@ -67,17 +67,17 @@ public override void OnManagedリソースの作成() #region[ 曲名、アーティスト名テクスチャの生成 ] if (string.IsNullOrEmpty(CDTXMania.DTX.TITLE) || (!CDTXMania.bコンパクトモード && CDTXMania.ConfigIni.b曲名表示をdefのものにする)) - this.strSongName = CDTXMania.stage選曲.r確定された曲.strタイトル;//CDTXMania.stage選曲.r現在選択中の曲.strタイトル; + this.strSongName = CDTXMania.stage選曲.r現在選択中の曲.strタイトル; else this.strSongName = CDTXMania.DTX.TITLE; - pfタイトル = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 20, FontStyle.Regular); + this.pfタイトル = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 20, FontStyle.Regular); Bitmap bmpSongName = new Bitmap(1, 1); bmpSongName = pfタイトル.DrawPrivateFont(this.strSongName, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true); this.txSongName = CDTXMania.tテクスチャの生成(bmpSongName, false); bmpSongName.Dispose(); - pfアーティスト = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 15, FontStyle.Regular); + this.pfアーティスト = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 15, FontStyle.Regular); Bitmap bmpArtistName = new Bitmap(1, 1); bmpArtistName = pfアーティスト.DrawPrivateFont(CDTXMania.DTX.ARTIST, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true); this.txArtistName = CDTXMania.tテクスチャの生成(bmpArtistName, false); @@ -143,6 +143,9 @@ public override void OnManagedリソースの解放() CDTXMania.tテクスチャの解放(ref this.txSongLevel); CDTXMania.tテクスチャの解放(ref this.txSongDifficulty); CDTXMania.tテクスチャの解放(ref this.txDrumSpeed); + + CDTXMania.t安全にDisposeする( ref this.pfタイトル ); + CDTXMania.t安全にDisposeする( ref this.pfアーティスト ); base.OnManagedリソースの解放(); } } @@ -215,8 +218,8 @@ public override unsafe int On進行描画() //2014.04.05.kairera0467 GITADORAグラデーションの色。 //本当は共通のクラスに設置してそれを参照する形にしたかったが、なかなかいいメソッドが無いため、とりあえず個別に設置。 - private Color clGITADORAgradationTopColor = Color.FromArgb(0, 211, 199); - private Color clGITADORAgradationBottomColor = Color.FromArgb(250, 232, 45); + private Color clGITADORAgradationTopColor = Color.FromArgb(0, 220, 200); + private Color clGITADORAgradationBottomColor = Color.FromArgb(255, 250, 40); private bool tプレビュー画像の指定があれば構築する() { diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/08.\347\265\220\346\236\234/CActResultParameterPanel.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/08.\347\265\220\346\236\234/CActResultParameterPanel.cs" index 9ed5f3f1..97677b18 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/08.\347\265\220\346\236\234/CActResultParameterPanel.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/08.\347\265\220\346\236\234/CActResultParameterPanel.cs" @@ -3,7 +3,6 @@ using System.Text; using System.Runtime.InteropServices; using System.Drawing; -using System.Diagnostics;//Temp using System.IO; using SlimDX; using FDK; @@ -17,110 +16,99 @@ internal class CActResultParameterPanel : CActivity public CActResultParameterPanel() { this.tx文字 = new CTexture[3]; - ST文字位置[] st文字位置Array = new ST文字位置[12]; + ST文字位置[] st文字位置Array = new ST文字位置[11]; ST文字位置 st文字位置 = new ST文字位置(); st文字位置.ch = '0'; st文字位置.pt = new Point(0, 0); st文字位置Array[0] = st文字位置; ST文字位置 st文字位置2 = new ST文字位置(); st文字位置2.ch = '1'; - st文字位置2.pt = new Point(31, 0);//Change all to width of 31 + st文字位置2.pt = new Point(28, 0); st文字位置Array[1] = st文字位置2; ST文字位置 st文字位置3 = new ST文字位置(); st文字位置3.ch = '2'; - st文字位置3.pt = new Point(62, 0); + st文字位置3.pt = new Point(56, 0); st文字位置Array[2] = st文字位置3; ST文字位置 st文字位置4 = new ST文字位置(); st文字位置4.ch = '3'; - st文字位置4.pt = new Point(93, 0); + st文字位置4.pt = new Point(84, 0); st文字位置Array[3] = st文字位置4; ST文字位置 st文字位置5 = new ST文字位置(); st文字位置5.ch = '4'; - st文字位置5.pt = new Point(124, 0); + st文字位置5.pt = new Point(112, 0); st文字位置Array[4] = st文字位置5; ST文字位置 st文字位置6 = new ST文字位置(); st文字位置6.ch = '5'; - st文字位置6.pt = new Point(155, 0); + st文字位置6.pt = new Point(140, 0); st文字位置Array[5] = st文字位置6; ST文字位置 st文字位置7 = new ST文字位置(); st文字位置7.ch = '6'; - st文字位置7.pt = new Point(186, 0); + st文字位置7.pt = new Point(168, 0); st文字位置Array[6] = st文字位置7; ST文字位置 st文字位置8 = new ST文字位置(); st文字位置8.ch = '7'; - st文字位置8.pt = new Point(217, 0); + st文字位置8.pt = new Point(196, 0); st文字位置Array[7] = st文字位置8; ST文字位置 st文字位置9 = new ST文字位置(); st文字位置9.ch = '8'; - st文字位置9.pt = new Point(248, 0); + st文字位置9.pt = new Point(224, 0); st文字位置Array[8] = st文字位置9; ST文字位置 st文字位置10 = new ST文字位置(); st文字位置10.ch = '9'; - st文字位置10.pt = new Point(279, 0); + st文字位置10.pt = new Point(252, 0); st文字位置Array[9] = st文字位置10; ST文字位置 st文字位置11 = new ST文字位置(); st文字位置11.ch = '.'; - st文字位置11.pt = new Point(319, 0); + st文字位置11.pt = new Point(280, 0); st文字位置Array[10] = st文字位置11; - //Added by KSM 17/04/2016: - ST文字位置 st文字位置Percent = new ST文字位置(); - st文字位置Percent.ch = '%'; - st文字位置Percent.pt = new Point(341, 0); - st文字位置Array[11] = st文字位置Percent; this.st大文字位置 = st文字位置Array; - ST文字位置[] st文字位置Array2 = new ST文字位置[12]; - ST文字位置 st文字位置12 = new ST文字位置();//Change all width to multiples of 21 + ST文字位置[] st文字位置Array2 = new ST文字位置[11]; + ST文字位置 st文字位置12 = new ST文字位置(); st文字位置12.ch = '0'; st文字位置12.pt = new Point(0, 0); st文字位置Array2[0] = st文字位置12; ST文字位置 st文字位置13 = new ST文字位置(); st文字位置13.ch = '1'; - st文字位置13.pt = new Point(21, 0); + st文字位置13.pt = new Point(20, 0); st文字位置Array2[1] = st文字位置13; ST文字位置 st文字位置14 = new ST文字位置(); st文字位置14.ch = '2'; - st文字位置14.pt = new Point(42, 0); + st文字位置14.pt = new Point(40, 0); st文字位置Array2[2] = st文字位置14; ST文字位置 st文字位置15 = new ST文字位置(); st文字位置15.ch = '3'; - st文字位置15.pt = new Point(63, 0); + st文字位置15.pt = new Point(60, 0); st文字位置Array2[3] = st文字位置15; ST文字位置 st文字位置16 = new ST文字位置(); st文字位置16.ch = '4'; - st文字位置16.pt = new Point(84, 0); + st文字位置16.pt = new Point(80, 0); st文字位置Array2[4] = st文字位置16; ST文字位置 st文字位置17 = new ST文字位置(); st文字位置17.ch = '5'; - st文字位置17.pt = new Point(105, 0); + st文字位置17.pt = new Point(100, 0); st文字位置Array2[5] = st文字位置17; ST文字位置 st文字位置18 = new ST文字位置(); st文字位置18.ch = '6'; - st文字位置18.pt = new Point(126, 0); + st文字位置18.pt = new Point(120, 0); st文字位置Array2[6] = st文字位置18; ST文字位置 st文字位置19 = new ST文字位置(); st文字位置19.ch = '7'; - st文字位置19.pt = new Point(147, 0); + st文字位置19.pt = new Point(140, 0); st文字位置Array2[7] = st文字位置19; ST文字位置 st文字位置20 = new ST文字位置(); st文字位置20.ch = '8'; - st文字位置20.pt = new Point(168, 0); + st文字位置20.pt = new Point(160, 0); st文字位置Array2[8] = st文字位置20; ST文字位置 st文字位置21 = new ST文字位置(); st文字位置21.ch = '9'; - st文字位置21.pt = new Point(189, 0); + st文字位置21.pt = new Point(180, 0); st文字位置Array2[9] = st文字位置21; ST文字位置 st文字位置22 = new ST文字位置(); - st文字位置22.ch = '.'; - st文字位置22.pt = new Point(210, 0); + st文字位置22.ch = '%'; + st文字位置22.pt = new Point(200, 0); st文字位置Array2[10] = st文字位置22; - ST文字位置 st文字位置SmallP = new ST文字位置(); - st文字位置SmallP.ch = '%'; - st文字位置SmallP.pt = new Point(231, 0); - st文字位置Array2[11] = st文字位置SmallP; this.st小文字位置 = st文字位置Array2; - - ST文字位置[] st文字位置Array3 = new ST文字位置[12]; ST文字位置 st文字位置23 = new ST文字位置(); st文字位置23.ch = '0'; @@ -291,8 +279,8 @@ public override void On活性化() } #endregion - this.ft表示用フォント = new System.Drawing.Font(CDTXMania.ConfigIni.str曲名表示フォント, 24f, FontStyle.Regular, GraphicsUnit.Pixel); - this.ft称号フォント = new System.Drawing.Font(CDTXMania.ConfigIni.str曲名表示フォント, 16f, FontStyle.Regular, GraphicsUnit.Pixel); + this.prv表示用フォント = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str曲名表示フォント ), 20, FontStyle.Regular ); + this.prv称号フォント = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.str曲名表示フォント ), 12, FontStyle.Regular ); this.sdDTXで指定されたフルコンボ音 = null; base.On活性化(); @@ -303,16 +291,6 @@ public override void On非活性化() { this.ct表示用 = null; } - if (this.ft表示用フォント != null) - { - this.ft表示用フォント.Dispose(); - this.ft表示用フォント = null; - } - if (this.ft称号フォント != null) - { - this.ft称号フォント.Dispose(); - this.ft称号フォント = null; - } if (this.sdDTXで指定されたフルコンボ音 != null) { CDTXMania.Sound管理.tサウンドを破棄する( this.sdDTXで指定されたフルコンボ音 ); @@ -337,17 +315,113 @@ public override void OnManagedリソースの作成() this.txスキルパネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_SkillPanel.png")); this.tx難易度パネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Difficulty.png")); this.tx難易度用数字 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_LevelNumber.png")); - //KSM Added 21/04/2016 - this.txスキルMAX = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_skill max.png")); - - this.strPlayerName = string.IsNullOrEmpty( CDTXMania.ConfigIni.strCardName[ 1 ] ) ? "GUEST" : CDTXMania.ConfigIni.strCardName[ 1 ]; - this.strTitleName = string.IsNullOrEmpty( CDTXMania.ConfigIni.strGroupName[ 1 ] ) ? "" : CDTXMania.ConfigIni.strGroupName[ 1 ]; - Bitmap image2 = new Bitmap(200, 100); - Graphics graネームプレート用 = Graphics.FromImage(image2); - graネームプレート用.DrawString(this.strTitleName, this.ft称号フォント, Brushes.White, (float)8f, (float)12f); - graネームプレート用.DrawString(this.strPlayerName, this.ft表示用フォント, Brushes.White, (float)8f, (float)32f); - this.txネームプレート用文字 = new CTexture(CDTXMania.app.Device, image2, CDTXMania.TextureFormat, false); - image2.Dispose(); + + for( int i = 0; i < 3; i++ ) + { + this.strPlayerName = string.IsNullOrEmpty( CDTXMania.ConfigIni.strCardName[ i ] ) ? "GUEST" : CDTXMania.ConfigIni.strCardName[ i ]; + this.strTitleName = string.IsNullOrEmpty( CDTXMania.ConfigIni.strGroupName[ i ] ) ? "" : CDTXMania.ConfigIni.strGroupName[ i ]; + Bitmap image2 = new Bitmap( 257, 100 ); + Graphics graネームプレート用 = Graphics.FromImage( image2 ); + + #region[ ネームカラー ] + //-------------------- + Color clNameColor = Color.White; + Color clNameColorLower = Color.White; + switch( CDTXMania.ConfigIni.nNameColor[ 0 ] ) + { + case 0: + clNameColor = Color.White; + break; + case 1: + clNameColor = Color.LightYellow; + break; + case 2: + clNameColor = Color.Yellow; + break; + case 3: + clNameColor = Color.Green; + break; + case 4: + clNameColor = Color.Blue; + break; + case 5: + clNameColor = Color.Purple; + break; + case 6: + clNameColor = Color.Red; + break; + case 7: + clNameColor = Color.Brown; + break; + case 8: + clNameColor = Color.Silver; + break; + case 9: + clNameColor = Color.Gold; + break; + + case 10: + clNameColor = Color.White; + break; + case 11: + clNameColor = Color.LightYellow; + clNameColorLower = Color.White; + break; + case 12: + clNameColor = Color.Yellow; + clNameColorLower = Color.White; + break; + case 13: + clNameColor = Color.FromArgb(0, 255, 33); + clNameColorLower = Color.White; + break; + case 14: + clNameColor = Color.FromArgb(0, 38, 255); + clNameColorLower = Color.White; + break; + case 15: + clNameColor = Color.FromArgb(72, 0, 255); + clNameColorLower = Color.White; + break; + case 16: + clNameColor = Color.FromArgb(255, 255, 0, 0); + clNameColorLower = Color.White; + break; + case 17: + clNameColor = Color.FromArgb(255, 232, 182, 149); + clNameColorLower = Color.FromArgb(255, 122, 69, 26); + break; + case 18: + clNameColor = Color.FromArgb(246, 245, 255); + clNameColorLower = Color.FromArgb(125, 128, 137); + break; + case 19: + clNameColor = Color.FromArgb(255, 238, 196, 85); + clNameColorLower = Color.FromArgb(255, 255, 241, 200); + break; + } + //-------------------- + #endregion + #region[ 名前とか ] + Bitmap bmpCardName = new Bitmap(1, 1); + bmpCardName = this.prv表示用フォント.DrawPrivateFont( this.strPlayerName, Color.White, Color.Transparent, clNameColor, ( CDTXMania.ConfigIni.nNameColor[ i ] > 11 ? clNameColorLower : clNameColor ) ); + Bitmap bmpTitleName = new Bitmap(1, 1); + bmpTitleName = this.prv称号フォント.DrawPrivateFont( this.strTitleName, Color.White, Color.Transparent ); + + graネームプレート用.DrawImage( bmpCardName, -2f, 26f ); + graネームプレート用.DrawImage( bmpTitleName, 6f, 8f ); + #endregion + CDTXMania.t安全にDisposeする( ref bmpCardName ); + CDTXMania.t安全にDisposeする( ref bmpTitleName ); + this.txネームプレート用文字[ i ] = new CTexture( CDTXMania.app.Device, image2, CDTXMania.TextureFormat, false ); + CDTXMania.t安全にDisposeする( ref image2 ); + + CDTXMania.t安全にDisposeする( ref graネームプレート用 ); + } + this.prv表示用フォント.Dispose(); + this.prv称号フォント.Dispose(); + + this.tスクリプトから難易度ラベルを取得する( CDTXMania.stage選曲.r確定された曲.ar難易度ラベル[ CDTXMania.stage選曲.n確定された曲の難易度 ] ); base.OnManagedリソースの作成(); } @@ -356,21 +430,18 @@ public override void OnManagedリソースの解放() { if (!base.b活性化してない) { - CDTXMania.tテクスチャの解放(ref this.txパネル本体); - CDTXMania.tテクスチャの解放(ref this.tx文字[0]); - CDTXMania.tテクスチャの解放(ref this.tx文字[1]); - CDTXMania.tテクスチャの解放(ref this.tx文字[2]); - CDTXMania.tテクスチャの解放(ref this.txNewRecord); - CDTXMania.tテクスチャの解放(ref this.txエキサイトゲージ[0]); - CDTXMania.tテクスチャの解放(ref this.txエキサイトゲージ[1]); - CDTXMania.tテクスチャの解放(ref this.txエキサイトゲージ[2]); - CDTXMania.tテクスチャの解放(ref this.txスキルパネル); - CDTXMania.tテクスチャの解放(ref this.txスコア); - CDTXMania.tテクスチャの解放(ref this.txネームプレート用文字); - CDTXMania.tテクスチャの解放(ref this.tx難易度パネル); - CDTXMania.tテクスチャの解放(ref this.tx難易度用数字); - //KSM Added 21/04/2016 - CDTXMania.tテクスチャの解放(ref this.txスキルMAX); + CDTXMania.tテクスチャの解放( ref this.txパネル本体 ); + CDTXMania.tテクスチャの解放( ref this.txNewRecord ); + CDTXMania.tテクスチャの解放( ref this.txスキルパネル ); + CDTXMania.tテクスチャの解放( ref this.txスコア ); + CDTXMania.tテクスチャの解放( ref this.tx難易度パネル ); + CDTXMania.tテクスチャの解放( ref this.tx難易度用数字 ); + for( int i = 0; i < 3; i++ ) + { + CDTXMania.tテクスチャの解放( ref this.txネームプレート用文字[ i ] ); + CDTXMania.tテクスチャの解放( ref this.txエキサイトゲージ[ i ] ); + CDTXMania.tテクスチャの解放( ref this.tx文字[ i ] ); + } base.OnManagedリソースの解放(); } } @@ -392,16 +463,8 @@ public override int On進行描画() { if ( this.n本体X[j] != 0 ) { - string str = string.Format("{0:0.00}", ((float)CDTXMania.DTX.LEVEL[j]) / 10f); + string str = string.Format("{0:0.00}", ((float)CDTXMania.DTX.LEVEL[j]) / 10.0f + (CDTXMania.DTX.LEVELDEC[j] != 0 ? CDTXMania.DTX.LEVELDEC[j] / 100.0f : 0)); bool bCLASSIC = false; - if (CDTXMania.DTX.LEVEL[j] > 100) - { - str = string.Format("{0:0.00}", ((float)CDTXMania.DTX.LEVEL[j]) / 100f); - } - else - { - str = string.Format("{0:0.00}", ((float)CDTXMania.DTX.LEVEL[j]) / 10.0f + (CDTXMania.DTX.LEVELDEC[j] != 0 ? CDTXMania.DTX.LEVELDEC[j] / 100.0f : 0)); - } if (CDTXMania.ConfigIni.bCLASSIC譜面判別を有効にする && (CDTXMania.DTX.bチップがある.LeftCymbal == false) && @@ -414,18 +477,15 @@ public override int On進行描画() str = string.Format("{0:00}", CDTXMania.DTX.LEVEL[j]); bCLASSIC = true; } - - double num11 = 3.5 * (CDTXMania.stage結果.st演奏記録[j].db演奏型スキル値); - int num = this.ct表示用.n現在の値; - + this.txスキルパネル.t2D描画(CDTXMania.app.Device, this.n本体X[j], this.n本体Y); - this.txネームプレート用文字.t2D描画(CDTXMania.app.Device, this.n本体X[j], this.n本体Y); + this.txネームプレート用文字[ j ].t2D描画(CDTXMania.app.Device, this.n本体X[j], this.n本体Y); - this.t小文字表示(80 + this.n本体X[j], 72 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage結果.st演奏記録[j].nPerfect数・Auto含まない)); - this.t小文字表示(80 + this.n本体X[j], 102 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage結果.st演奏記録[j].nGreat数・Auto含まない)); - this.t小文字表示(80 + this.n本体X[j], 132 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage結果.st演奏記録[j].nGood数・Auto含まない)); - this.t小文字表示(80 + this.n本体X[j], 162 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage結果.st演奏記録[j].nPoor数・Auto含まない)); - this.t小文字表示(80 + this.n本体X[j], 192 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage結果.st演奏記録[j].nMiss数・Auto含まない)); + this.t小文字表示(80 + this.n本体X[j], 72 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage結果.st演奏記録[j].nPerfect数_Auto含まない)); + this.t小文字表示(80 + this.n本体X[j], 102 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage結果.st演奏記録[j].nGreat数_Auto含まない)); + this.t小文字表示(80 + this.n本体X[j], 132 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage結果.st演奏記録[j].nGood数_Auto含まない)); + this.t小文字表示(80 + this.n本体X[j], 162 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage結果.st演奏記録[j].nPoor数_Auto含まない)); + this.t小文字表示(80 + this.n本体X[j], 192 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage結果.st演奏記録[j].nMiss数_Auto含まない)); this.t小文字表示(80 + this.n本体X[j], 222 + this.n本体Y, string.Format("{0,4:###0}", CDTXMania.stage結果.st演奏記録[j].n最大コンボ数)); @@ -436,20 +496,11 @@ public override int On進行描画() this.t小文字表示(167 + this.n本体X[j], 192 + this.n本体Y, string.Format("{0,3:##0}%", (int)Math.Round(CDTXMania.stage結果.fMiss率[j]))); this.t小文字表示(167 + this.n本体X[j], 222 + this.n本体Y, string.Format("{0,3:##0}%", (int)Math.Round((100.0 * CDTXMania.stage結果.st演奏記録[j].n最大コンボ数 / CDTXMania.stage結果.st演奏記録[j].n全チップ数)))); - //KSM Added 21/04/2016: Shows the word MAX instead of 100.00% when 100.00% - if (CDTXMania.stage結果.st演奏記録[j].db演奏型スキル値 >= 100.0 && this.txスキルMAX != null) - { - this.txスキルMAX.t2D描画(CDTXMania.app.Device, 120 + this.n本体X[j], 277 + this.n本体Y); - } - else - { - this.t大文字表示(58 + this.n本体X[j], 277 + this.n本体Y, string.Format("{0,6:##0.00}%", CDTXMania.stage結果.st演奏記録[j].db演奏型スキル値)); - } - + this.t大文字表示(58 + this.n本体X[j], 277 + this.n本体Y, string.Format("{0,6:##0.00}", CDTXMania.stage結果.st演奏記録[j].db演奏型スキル値)); this.t大文字表示(88 + this.n本体X[j], 363 + this.n本体Y, string.Format("{0,6:##0.00}", CDTXMania.stage結果.st演奏記録[j].dbゲーム型スキル値)); if(this.tx難易度パネル != null) - this.tx難易度パネル.t2D描画(CDTXMania.app.Device, 14 + this.n本体X[j], 266 + this.n本体Y, new Rectangle(0, 60 * CDTXMania.nSongDifficulty, 60, 60)); + this.tx難易度パネル.t2D描画(CDTXMania.app.Device, 14 + this.n本体X[j], 266 + this.n本体Y, new Rectangle( this.rectDiffPanelPoint.X, this.rectDiffPanelPoint.Y, 60, 60)); this.tレベル数字描画((bCLASSIC == true ? 26 : 18) + this.n本体X[j], 290 + this.n本体Y, str); string strScore = string.Format("{0,7:######0}", CDTXMania.stage結果.st演奏記録[j].nスコア); @@ -461,14 +512,10 @@ public override int On進行描画() { rectangle = new Rectangle(0, 0, 0, 0); } - else if (ch.Equals('-')) - { - rectangle = new Rectangle(0, 0, 0, 0); - } else { int num4 = int.Parse(strScore.Substring(i, 1)); - rectangle = new Rectangle(num4 * 36, 0, 36, 50); + rectangle = new Rectangle(num4 * 36, 0, 36, 50); } if (this.txスコア != null) { @@ -533,17 +580,15 @@ private struct ST文字位置 private CTexture[] txエキサイトゲージ; private CTexture txスキルパネル; private CTexture txスコア; - private CTexture txネームプレート用文字; + private CTexture[] txネームプレート用文字 = new CTexture[ 3 ]; private string strPlayerName; private string strTitleName; - private System.Drawing.Font ft表示用フォント; - private System.Drawing.Font ft称号フォント; + private CPrivateFastFont prv表示用フォント; + private CPrivateFastFont prv称号フォント; private CTexture tx難易度パネル; private CTexture tx難易度用数字; - //KSM Added 21/04/2016: New Texture for Skill Max - private CTexture txスキルMAX; - + protected Rectangle rectDiffPanelPoint; private void t小文字表示(int x, int y, string str) { @@ -553,7 +598,7 @@ private void t小文字表示(int x, int y, string str) { if (this.st小文字位置[i].ch == ch) { - Rectangle rectangle = new Rectangle(this.st小文字位置[i].pt.X, this.st小文字位置[i].pt.Y, 20, 28); + Rectangle rectangle = new Rectangle(this.st小文字位置[i].pt.X, this.st小文字位置[i].pt.Y, 20, 26); if (this.tx文字[0] != null) { this.tx文字[0].t2D描画(CDTXMania.app.Device, x, y, rectangle); @@ -600,16 +645,11 @@ private void t大文字表示( int x, int y, string str, bool b強調 ) { if( this.st大文字位置[ i ].ch == ch ) { - Rectangle rectangle = new Rectangle( this.st大文字位置[ i ].pt.X, this.st大文字位置[ i ].pt.Y, 30, 42 ); + Rectangle rectangle = new Rectangle( this.st大文字位置[ i ].pt.X, this.st大文字位置[ i ].pt.Y, 28, 42 ); if( ch == '.' ) { rectangle.Width -= 18; } - //KSM added: '%' has width of 30 - //else if( ch == '%') - //{ - // rectangle.Width += 2; - //} if( this.tx文字[ 1 ] != null ) { this.tx文字[ 1 ].t2D描画( CDTXMania.app.Device, x, y, rectangle ); @@ -617,7 +657,7 @@ private void t大文字表示( int x, int y, string str, bool b強調 ) break; } } - x += (ch == '.' ? 12 : 30);//Was 28 + x += (ch == '.' ? 12 : 28); } } private void t特大文字表示(int x, int y, string str) @@ -736,7 +776,61 @@ private void tレベル数字描画(int x, int y, string str) } } + public void tスクリプトから難易度ラベルを取得する( string strラベル名 ) + { + string strRawScriptFile; + + //ファイルの存在チェック + if( File.Exists( CSkin.Path( @"Script\difficult.dtxs" ) ) ) + { + //スクリプトを開く + StreamReader reader = new StreamReader( CSkin.Path( @"Script\difficult.dtxs" ), Encoding.GetEncoding( "Shift_JIS" ) ); + strRawScriptFile = reader.ReadToEnd(); + + strRawScriptFile = strRawScriptFile.Replace( Environment.NewLine, "\n" ); + string[] delimiter = { "\n" }; + string[] strSingleLine = strRawScriptFile.Split( delimiter, StringSplitOptions.RemoveEmptyEntries ); + + for( int i = 0; i < strSingleLine.Length; i++ ) + { + if( strSingleLine[ i ].StartsWith( "//" ) ) + continue; //コメント行の場合は無視 + + //まずSplit + string[] arScriptLine = strSingleLine[ i ].Split( ',' ); + + if( ( arScriptLine.Length >= 4 && arScriptLine.Length <= 5 ) == false ) + continue; //引数が4つか5つじゃなければ無視。 + + if( arScriptLine[ 0 ] != "7" ) + continue; //使用するシーンが違うなら無視。 + if( arScriptLine.Length == 4 ) + { + if( String.Compare( arScriptLine[ 1 ], strラベル名, true ) != 0 ) + continue; //ラベル名が違うなら無視。大文字小文字区別しない + } + else if( arScriptLine.Length == 5 ) + { + if( arScriptLine[ 4 ] == "1" ) + { + if( arScriptLine[ 1 ] != strラベル名 ) + continue; //ラベル名が違うなら無視。 + } + else + { + if( String.Compare( arScriptLine[ 1 ], strラベル名, true ) != 0 ) + continue; //ラベル名が違うなら無視。大文字小文字区別しない + } + } + this.rectDiffPanelPoint.X = Convert.ToInt32( arScriptLine[ 2 ] ); + this.rectDiffPanelPoint.Y = Convert.ToInt32( arScriptLine[ 3 ] ); + + reader.Close(); + break; + } + } + } //----------------- diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/08.\347\265\220\346\236\234/CStage\347\265\220\346\236\234.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/08.\347\265\220\346\236\234/CStage\347\265\220\346\236\234.cs" index 863ba14d..c97b86f5 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/08.\347\265\220\346\236\234/CStage\347\265\220\346\236\234.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/08.\347\265\220\346\236\234/CStage\347\265\220\346\236\234.cs" @@ -101,16 +101,17 @@ public override void On活性化() case 2: bIsAutoPlay = CDTXMania.ConfigIni.bベースが全部オートプレイである; break; - } - this.fPerfect率[i] = bIsAutoPlay ? 0f : ((100f * part.nPerfect数) / ((float)part.n全チップ数)); + } + + this.fPerfect率[i] = bIsAutoPlay ? 0f : ((100f * part.nPerfect数) / ((float)part.n全チップ数)); this.fGreat率[i] = bIsAutoPlay ? 0f : ((100f * part.nGreat数) / ((float)part.n全チップ数)); this.fGood率[i] = bIsAutoPlay ? 0f : ((100f * part.nGood数) / ((float)part.n全チップ数)); this.fPoor率[i] = bIsAutoPlay ? 0f : ((100f * part.nPoor数) / ((float)part.n全チップ数)); this.fMiss率[i] = bIsAutoPlay ? 0f : ((100f * part.nMiss数) / ((float)part.n全チップ数)); - this.bオート[i] = bIsAutoPlay; // #23596 10.11.16 add ikanick そのパートがオートなら1 - // 10.11.17 change (int to bool) ikanick - //04032016: Change first condition check to 1, XG mode is 1, not 0. KSM - if (CDTXMania.ConfigIni.nSkillMode == 1)//was 0, which is incorrect + this.bオート[i] = bIsAutoPlay; // #23596 10.11.16 add ikanick そのパートがオートなら1 + // 10.11.17 change (int to bool) ikanick + //18072020: Change first condition check to 1, XG mode is 1, not 0. Fisyher + if (CDTXMania.ConfigIni.nSkillMode == 1) { this.nランク値[i] = CScoreIni.tランク値を計算して返す(part); } @@ -161,7 +162,7 @@ public override void On活性化() } // 新記録スキルチェック - if ( this.st演奏記録[ i ].db演奏型スキル値 > ini.stセクション[ ( i * 2 ) + 1 ].db演奏型スキル値 ) + if ( ( this.st演奏記録[ i ].db演奏型スキル値 > ini.stセクション[ ( i * 2 ) + 1 ].db演奏型スキル値 ) && !this.bオート[ i ] ) { this.b新記録スキル[ i ] = true; ini.stセクション[ ( i * 2 ) + 1 ] = this.st演奏記録[ i ]; @@ -374,23 +375,23 @@ private void SaveGhost(int sectionIndex) } //Ver.K追加 演奏結果の記録 - CScoreIni.C演奏記録 cScoreData; - cScoreData = this.st演奏記録[ (int)inst ]; - using (FileStream fs = new FileStream(directory + "\\" + filename + ".score", FileMode.Create, FileAccess.Write)) - { - using (StreamWriter sw = new StreamWriter(fs)) - { - sw.WriteLine( "Score=" + cScoreData.nスコア ); - sw.WriteLine( "PlaySkill=" + cScoreData.db演奏型スキル値 ); - sw.WriteLine( "Skill=" + cScoreData.dbゲーム型スキル値 ); - sw.WriteLine( "Perfect=" + cScoreData.nPerfect数・Auto含まない ); - sw.WriteLine( "Great=" + cScoreData.nGreat数・Auto含まない ); - sw.WriteLine( "Good=" + cScoreData.nGood数・Auto含まない ); - sw.WriteLine( "Poor=" + cScoreData.nPoor数・Auto含まない ); - sw.WriteLine( "Miss=" + cScoreData.nMiss数・Auto含まない ); - sw.WriteLine( "MaxCombo=" + cScoreData.n最大コンボ数 ); - } - } + //CScoreIni.C演奏記録 cScoreData; + //cScoreData = this.st演奏記録[ (int)inst ]; + //using (FileStream fs = new FileStream(directory + "\\" + filename + ".score", FileMode.Create, FileAccess.Write)) + //{ + // using (StreamWriter sw = new StreamWriter(fs)) + // { + // sw.WriteLine( "Score=" + cScoreData.nスコア ); + // sw.WriteLine( "PlaySkill=" + cScoreData.db演奏型スキル値 ); + // sw.WriteLine( "Skill=" + cScoreData.dbゲーム型スキル値 ); + // sw.WriteLine( "Perfect=" + cScoreData.nPerfect数_Auto含まない ); + // sw.WriteLine( "Great=" + cScoreData.nGreat数_Auto含まない ); + // sw.WriteLine( "Good=" + cScoreData.nGood数_Auto含まない ); + // sw.WriteLine( "Poor=" + cScoreData.nPoor数_Auto含まない ); + // sw.WriteLine( "Miss=" + cScoreData.nMiss数_Auto含まない ); + // sw.WriteLine( "MaxCombo=" + cScoreData.n最大コンボ数 ); + // } + //} } } public override void On非活性化() @@ -482,22 +483,7 @@ public override int On進行描画() if( base.b初めての進行描画 ) { this.ct登場用 = new CCounter( 0, 100, 5, CDTXMania.Timer ); - - //KSM 21052016: Added a check on game mode selected and play the sound clip for the correct game mode accordingly - //May still not work correctly with Guitar/Bass mode... - for (int i = 0; i < 3;++i ) - { - if ((((i != 0) || (CDTXMania.DTX.bチップがある.Drums && !CDTXMania.ConfigIni.bギタレボモード)) && - ((i != 1) || CDTXMania.DTX.bチップがある.Guitar)) && - ((i != 2) || CDTXMania.DTX.bチップがある.Bass)) - { - // Added conditions for excellent/fullcombo audio playback - limyz / 210516 - if (fPerfect率[i] == 100.0 && bオート[i].Equals(false)) CDTXMania.Skin.soundExcellent.t再生する(); - else if (fPoor率[i] == 0.0 && fMiss率[i] == 0.0 && bオート[i].Equals(false)) CDTXMania.Skin.soundフルコンボ音.t再生する(); - else CDTXMania.Skin.soundステージクリア音.t再生する(); - } - } - + CDTXMania.Skin.soundステージクリア音.t再生する(); this.actFI.tフェードイン開始(false); base.eフェーズID = CStage.Eフェーズ.共通_フェードイン; base.b初めての進行描画 = false; @@ -662,7 +648,7 @@ public override int On進行描画() if( ( nLane == 1 ) && ( ( rChip.nチャンネル番号 == 0x11 ) || ( ( rChip.nチャンネル番号 == 0x18 ) && ( this.n最後に再生したHHのチャンネル番号 != 0x18 ) ) ) ) { CDTXMania.DTX.tWavの再生停止( this.n最後に再生したHHのWAV番号 ); - this.n最後に再生したHHのWAV番号 = rChip.n整数値・内部番号; + this.n最後に再生したHHのWAV番号 = rChip.n整数値_内部番号; this.n最後に再生したHHのチャンネル番号 = rChip.nチャンネル番号; } CDTXMania.DTX.tチップの再生( rChip, CDTXMania.Timer.nシステム時刻, nLane, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する.Drums ); diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/CActFIFOBlackStart.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/CActFIFOBlackStart.cs" index 90ebe4de..b9e66e5c 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/CActFIFOBlackStart.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/CActFIFOBlackStart.cs" @@ -58,15 +58,19 @@ public override int On進行描画() this.tx黒幕.n透明度 = (this.mode == EFIFOモード.フェードイン) ? (((100 - this.counter.n現在の値) * 0xff) / 100) : ((this.counter.n現在の値 * 0xff) / 100); this.tx黒幕.t2D描画(CDTXMania.app.Device, 0, 0); string path = CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.PREIMAGE; - if (!File.Exists(path)) + if( this.txジャケット == null ) // 2019.04.26 kairera0467 { - //Trace.TraceWarning("ファイルが存在しません。({0})", new object[] { path }); - this.txジャケット = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\\5_preimage default.png")); - } - else - { - this.txジャケット = CDTXMania.tテクスチャの生成(path); + if (!File.Exists(path)) + { + //Trace.TraceWarning("ファイルが存在しません。({0})", new object[] { path }); + this.txジャケット = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\\5_preimage default.png")); + } + else + { + this.txジャケット = CDTXMania.tテクスチャの生成(path); + } } + if( this.txジャケット != null ) { this.txジャケット.vc拡大縮小倍率.X = 0.96f; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/CActFIFOWhiteClear.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/CActFIFOWhiteClear.cs" index 692aa7d9..f26f6f84 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/CActFIFOWhiteClear.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/CActFIFOWhiteClear.cs" @@ -156,6 +156,7 @@ public override unsafe int On進行描画() #region [ private ] //----------------- public CCounter counter; + private EFIFOモード mode; private CTexture tx白タイル64x64; private CTexture txFullCombo; private CTexture txExcellent; @@ -163,10 +164,6 @@ public override unsafe int On進行描画() private CTexture txボーナス花火; private CTexture txリザルト画像; - #pragma warning disable 414 - private EFIFOモード mode; - #pragma warning restore 414 - [StructLayout(LayoutKind.Sequential)] private struct ST青い星 { diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\203\227\343\203\251\343\202\260\343\202\244\343\203\263/IPluginActivity.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\203\227\343\203\251\343\202\260\343\202\244\343\203\263/IPluginActivity.cs" index 946caad9..bc6a49f6 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\203\227\343\203\251\343\202\260\343\202\244\343\203\263/IPluginActivity.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\203\227\343\203\251\343\202\260\343\202\244\343\203\263/IPluginActivity.cs" @@ -7,11 +7,11 @@ namespace DTXMania /// /// Activity プラグインへのインターフェース。 /// DTXMania は、IPluginActivity に対して、以下のライフサイクルを実行します。 - /// (1) DTXMania の起動処理の最後(セットアップ画面が表示される直前)に一度だけ、On初期化()・OnManagedリソースの作成()・OnUnmanagedリソースの作成() をこの順番で1回ずつ呼び出します。 - /// (2) DTXMania の終了処理の最初(Thank you for playing が消えた直後)に一度だけ、OnUnmanagedリソースの解放()・OnManagedリソースの解放()・On終了() をこの順番で1回ずつ呼び出します。 + /// (1) DTXMania の起動処理の最後(セットアップ画面が表示される直前)に一度だけ、On初期化()_OnManagedリソースの作成()_OnUnmanagedリソースの作成() をこの順番で1回ずつ呼び出します。 + /// (2) DTXMania の終了処理の最初(Thank you for playing が消えた直後)に一度だけ、OnUnmanagedリソースの解放()_OnManagedリソースの解放()_On終了() をこの順番で1回ずつ呼び出します。 /// (3) DTXMania の起動中、すなわち(1)~(2)の間は、どんなシーンであっても、常に On進行描画() を1フレームにつき1回ずつ呼び出します。 /// (4) Direct3D デバイスのリセット時には、デバイスのリセット前に OnUnmanagedリソースの解放() を1回呼び出し、デバイスをリセットしたのち、OnUnmanagedリソースの作成() を1回呼び出します。 - /// (5) Direct3D デバイスのロスト時には、デバイスの再生成前に OnUnmanagedリソースの解放()・OnManagedリソースの解放() を1回ずつ呼び出し、デバイスを再生成したのち、OnManagedリソースの作成()・OnUnmanagedリソースの作成() を1回ずつ呼び出します。 + /// (5) Direct3D デバイスのロスト時には、デバイスの再生成前に OnUnmanagedリソースの解放()_OnManagedリソースの解放() を1回ずつ呼び出し、デバイスを再生成したのち、OnManagedリソースの作成()_OnUnmanagedリソースの作成() を1回ずつ呼び出します。 /// public interface IPluginActivity { diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/App.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/App.cs" index d1f15040..33e64931 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/App.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/App.cs" @@ -68,7 +68,7 @@ protected override void On初期化() /// /// Direct3Dデバイス(this.Device)に対するデフォルト設定を行う。 - /// Direct3Dデバイスのリセット・変更・再作成時に呼び出される。 + /// Direct3Dデバイスのリセット_変更_再作成時に呼び出される。 /// protected override void OnD3Dデバイスステータスの初期化() { @@ -134,7 +134,7 @@ protected override void On描画() { var newSettings = this.currentD3DSettings.Clone(); - this.tDirect3Dデバイスを生成・変更・リセットする( // 例外はキャッチしない。準正常じゃなくて異常なので。 + this.tDirect3Dデバイスを生成_変更_リセットする( // 例外はキャッチしない。準正常じゃなくて異常なので。 newSettings, this.LogicalDisplaySize, CApplicationForm.wsウィンドウスタイル, @@ -234,8 +234,8 @@ public enum E状態処理結果 : int 終了, CLEAR, //STAGEFAILED, - GUI割込・演奏停止, - GUI割込・演奏開始, + GUI割込_演奏停止, + GUI割込_演奏開始, } public volatile bool bWM_CLOSEを受け取った = false; @@ -248,7 +248,7 @@ public enum E状態処理結果 : int private volatile Eアプリ状態[] e現在の状態 = new Eアプリ状態[3] { Eアプリ状態.待機, Eアプリ状態.待機, Eアプリ状態.待機 }; /// - /// 進行・描画スレッドの処理が完了したら、このイベントを Set() する。 + /// 進行_描画スレッドの処理が完了したら、このイベントを Set() する。 /// private ManualResetEvent[] ev状態処理完了通知 = new ManualResetEvent[2] { new ManualResetEvent( false ), // [THREAD_進行] diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CConfigIni.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CConfigIni.cs" index 2ee83c98..fcbad803 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CConfigIni.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CConfigIni.cs" @@ -481,7 +481,7 @@ public enum ESoundDeviceTypeForConfig public bool bSTAGEFAILED有効; public STDGBVALUE bSudden; public bool bTight; - public bool bGraph有効; // #24074 2011.01.23 add ikanick + public STDGBVALUE bGraph有効; // #24074 2011.01.23 add ikanick public bool bWave再生位置自動調整機能有効; public bool bシンバルフリー; public bool bストイックモード; @@ -494,7 +494,6 @@ public enum ESoundDeviceTypeForConfig public bool bAutoAddGage; //2012.9.18 public bool b歓声を発声する; public bool b垂直帰線待ちを行う; - public bool b縮小文字のアンチエイリアスを有効にする; public bool b選曲リストフォントを斜体にする; public bool b選曲リストフォントを太字にする; public bool bDirectShowMode; @@ -604,8 +603,10 @@ public enum ESoundDeviceTypeForConfig #endregion public STDGBVALUE nInputAdjustTimeMs; // #23580 2011.1.3 yyagi タイミングアジャスト機能 + public int nCommonBGMAdjustMs; // #36372 2016.06.19 kairera0467 全曲共通のBGMオフセット public STDGBVALUE nJudgeLinePosOffset; // #31602 2013.6.23 yyagi 判定ライン表示位置のオフセット public int nShowLagType; // #25370 2011.6.5 yyagi ズレ時間表示機能 + public int nShowLagTypeColor; public STDGBVALUE nHidSud; public bool bIsAutoResultCapture; // #25399 2011.6.9 yyagi リザルト画像自動保存機能のON/OFF制御 public int nPoliphonicSounds; // #28228 2012.5.1 yyagi レーン毎の最大同時発音数 @@ -978,7 +979,7 @@ public void SwapGuitarBassInfos_AutoFlags() //CDTXMania.ConfigIni.bAutoPlay.Guitar = ts; int looptime = (int)Eレーン.GtW - (int)Eレーン.GtR + 1; // #29390 2013.1.25 yyagi ギターのAutoLane/AutoPick対応に伴い、FLIPもこれに対応 - for (int i = 0; i < looptime; i++) // こんなに離れたところを独立して修正しなければならない設計ではいけませんね・・・ + for (int i = 0; i < looptime; i++) // こんなに離れたところを独立して修正しなければならない設計ではいけませんね___ { bool b = CDTXMania.ConfigIni.bAutoPlay[i + (int)Eレーン.BsR]; CDTXMania.ConfigIni.bAutoPlay[i + (int)Eレーン.BsR] = CDTXMania.ConfigIni.bAutoPlay[i + (int)Eレーン.GtR]; @@ -1014,7 +1015,6 @@ public CConfigIni() this.str曲データ検索パス = @".\"; this.b全画面モード = false; this.b垂直帰線待ちを行う = true; - this.b縮小文字のアンチエイリアスを有効にする = true; this.n初期ウィンドウ開始位置X = 0; // #30675 2013.02.04 ikanick add this.n初期ウィンドウ開始位置Y = 0; this.bDirectShowMode = false; @@ -1136,6 +1136,7 @@ public CConfigIni() this.判定文字表示位置 = new STDGBVALUE(); this.n譜面スクロール速度 = new STDGBVALUE(); this.nInputAdjustTimeMs = new STDGBVALUE(); // #23580 2011.1.3 yyagi + this.nCommonBGMAdjustMs = 0; // #36372 2016.06.19 kairera0467 this.nJudgeLinePosOffset = new STDGBVALUE(); // #31602 2013.6.23 yyagi for ( int i = 0; i < 3; i++ ) { @@ -1212,6 +1213,7 @@ public CConfigIni() this.bHAZARD = false; this.nRisky = 0; // #23539 2011.7.26 yyagi RISKYモード this.nShowLagType = (int) EShowLagType.OFF; // #25370 2011.6.3 yyagi ズレ時間表示 + this.nShowLagTypeColor = 0; this.bIsAutoResultCapture = false; // #25399 2011.6.9 yyagi リザルト画像自動保存機能ON/OFF #region [ XGオプション ] @@ -1463,10 +1465,6 @@ public void t書き出し( string iniファイル名 ) sw.WriteLine( "Drums={0}", this.bDrums有効 ? 1 : 0 ); sw.WriteLine(); #endregion - sw.WriteLine( "; 縮小文字のアンチエイリアスの有無 (0:OFF, 1:ON)"); - sw.WriteLine( "; 文字やネームプレートなどの縮小している画像に対してアンチエイリアス処理をします。" ); - sw.WriteLine( "Antialias={0}", this.b縮小文字のアンチエイリアスを有効にする ? 1 : 0); - sw.WriteLine(); sw.WriteLine( "; DirectShowでのワイドクリップ再生 (0:OFF, 1:ON)"); sw.WriteLine( "DirectShowMode={0}", this.bDirectShowMode ? 1 : 0); sw.WriteLine(); @@ -1643,6 +1641,9 @@ public void t書き出し( string iniファイル名 ) sw.WriteLine( "; Whether displaying the lag times from the just timing or not." ); // sw.WriteLine( "ShowLagTime={0}", this.nShowLagType ); // sw.WriteLine(); + sw.WriteLine( "; 判定ズレ時間表示の色(0:Slow青、Fast赤, 1:Slow赤、Fast青)" ); + sw.WriteLine( "ShowLagTimeColor={0}", this.nShowLagTypeColor ); // + sw.WriteLine(); sw.WriteLine( "; リザルト画像自動保存機能(0:OFF, 1:ON)" ); // #25399 2011.6.9 yyagi sw.WriteLine( "; Set ON if you'd like to save result screen image automatically"); // sw.WriteLine( "; when you get hiscore/hiskill."); // @@ -1656,13 +1657,18 @@ public void t書き出し( string iniファイル名 ) sw.WriteLine("TimeStretch={0}", this.bTimeStretch ? 1 : 0); // sw.WriteLine(); #region [ Adjust ] - sw.WriteLine("; 判定タイミング調整(ドラム, ギター, ベース)(-99~0)[ms]"); // #23580 2011.1.3 yyagi + sw.WriteLine("; 判定タイミング調整(ドラム, ギター, ベース)(-99~99)[ms]"); // #23580 2011.1.3 yyagi sw.WriteLine("; Revision value to adjust judgement timing for the drums, guitar and bass."); // sw.WriteLine("InputAdjustTimeDrums={0}", this.nInputAdjustTimeMs.Drums); // sw.WriteLine("InputAdjustTimeGuitar={0}", this.nInputAdjustTimeMs.Guitar); // sw.WriteLine("InputAdjustTimeBass={0}", this.nInputAdjustTimeMs.Bass); // sw.WriteLine(); + sw.WriteLine( "; BGMタイミング調整(-99~99)[ms]" ); // #36372 2016.06.19 kairera0467 + sw.WriteLine( "; Revision value to adjust judgement timing for BGM." ); // + sw.WriteLine( "BGMAdjustTime={0}", this.nCommonBGMAdjustMs ); // + sw.WriteLine(); + sw.WriteLine("; 判定ラインの表示位置調整(ドラム, ギター, ベース)(-99~99)[px]"); // #31602 2013.6.23 yyagi 判定ラインの表示位置オフセット sw.WriteLine("; Offset value to adjust displaying judgement line for the drums, guitar and bass."); // sw.WriteLine("JudgeLinePosOffsetDrums={0}", this.nJudgeLinePosOffset.Drums); // @@ -1704,7 +1710,7 @@ public void t書き出し( string iniファイル名 ) sw.WriteLine( "; 曲データ検索に関するLog出力(0:OFF, 1:ON)" ); sw.WriteLine( "TraceSongSearch={0}", this.bLog曲検索ログ出力 ? 1 : 0 ); sw.WriteLine(); - sw.WriteLine( "; 画像やサウンドの作成・解放に関するLog出力(0:OFF, 1:ON)" ); + sw.WriteLine( "; 画像やサウンドの作成_解放に関するLog出力(0:OFF, 1:ON)" ); sw.WriteLine( "TraceCreatedDisposed={0}", this.bLog作成解放ログ出力 ? 1 : 0 ); sw.WriteLine(); sw.WriteLine( "; DTX読み込み詳細に関するLog出力(0:OFF, 1:ON)" ); @@ -1769,7 +1775,9 @@ public void t書き出し( string iniファイル名 ) // #24074 2011.01.23 add ikanick sw.WriteLine( "; グラフ表示(0:OFF, 1:ON)" ); - sw.WriteLine( "SkillMater={0}", this.bGraph有効 ? 1 : 0 ); + sw.WriteLine( "DrumGraph={0}", this.bGraph有効.Drums ? 1 : 0 ); + sw.WriteLine( "GuitarGraph={0}", this.bGraph有効.Guitar ? 1 : 0 ); + sw.WriteLine( "BassGraph={0}", this.bGraph有効.Bass ? 1 : 0 ); sw.WriteLine(); sw.WriteLine( "; ドラムコンボの表示(0:OFF, 1:ON)" ); // #29500 2012.9.11 kairera0467 @@ -2443,10 +2451,6 @@ public void tファイルから読み込み( string iniファイル名 ) { this.bDrums有効 = C変換.bONorOFF(str4[0]); } - else if (str3.Equals("Antialias")) - { - this.b縮小文字のアンチエイリアスを有効にする = C変換.bONorOFF(str4[0]); - } else if (str3.Equals("DirectShowMode")) { this.bDirectShowMode = C変換.bONorOFF(str4[0]); @@ -2637,6 +2641,10 @@ public void tファイルから読み込み( string iniファイル名 ) { this.nShowLagType = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, this.nShowLagType); } + else if (str3.Equals("ShowLagTimeColor")) // #25370 2011.6.3 yyagi + { + this.nShowLagTypeColor = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1, this.nShowLagTypeColor ); + } else if (str3.Equals("TimeStretch")) // #23664 2013.2.24 yyagi { this.bTimeStretch = C変換.bONorOFF(str4[0]); @@ -2658,6 +2666,10 @@ public void tファイルから読み込み( string iniファイル名 ) { this.nInputAdjustTimeMs.Bass = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, -99, 99, this.nInputAdjustTimeMs.Bass); } + else if ( str3.Equals( "BGMAdjustTime" ) ) // #36372 2016.06.19 kairera0467 + { + this.nCommonBGMAdjustMs = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, -99, 99, this.nCommonBGMAdjustMs ); + } else if ( str3.Equals( "JudgeLinePosOffsetDrums" ) ) // #31602 2013.6.23 yyagi { this.nJudgeLinePosOffset.Drums = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, -99, 99, this.nJudgeLinePosOffset.Drums ); @@ -2719,7 +2731,7 @@ public void tファイルから読み込み( string iniファイル名 ) { this.nVelocityMin.LP = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 127, this.nVelocityMin.LP); } - else if (str3.Equals("RDVelocityMin")) // #23857 2011.1.31 yyagi + else if (str3.Equals("LBDVelocityMin")) // #23857 2011.1.31 yyagi { this.nVelocityMin.LBD = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 127, this.nVelocityMin.LBD); } @@ -2761,9 +2773,17 @@ public void tファイルから読み込み( string iniファイル名 ) //----------------------------- case Eセクション種別.PlayOption: { - if( str3.Equals( "SkillMater" ) ) // #24074 2011.01.23 addikanick + if( str3.Equals( "DrumGraph" ) ) // #24074 2011.01.23 addikanick + { + this.bGraph有効.Drums = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( "GuitarGraph" ) ) // #24074 2011.01.23 addikanick + { + this.bGraph有効.Guitar = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( "BassGraph" ) ) // #24074 2011.01.23 addikanick { - this.bGraph有効 = C変換.bONorOFF( str4[ 0 ] ); + this.bGraph有効.Bass = C変換.bONorOFF( str4[ 0 ] ); } else if( str3.Equals( "DrumsReverse" ) ) { @@ -3604,17 +3624,17 @@ private void tデフォルトのキーアサインに設定する() string strDefaultKeyAssign = @" [DrumsKeyAssign] -HH=K033,M142 -SD=K012,K013,M138 -BD=K0126,K048,M044,M136 -HT=K031,K015,M148 -LT=K011,K016,M048 -FT=K023,K017,M038 -CY=K022,K019,M151 -HO=K028,M146 -RD=K020,K021 -LC=K035,K010,M049 -LP=K087,M144 +HH=K033,M042,M093 +SD=K012,K013,M025,M026,M027,M028,M029,M031,M032,M034,M037,M038,M040,M0113 +BD=K0126,K048,M033,M035,M036,M0112 +HT=K031,K015,M048,M050 +LT=K011,K016,M047 +FT=K023,K017,M041,M043,M045 +CY=K022,K019,M049,M052,M055,M057,M091 +HO=K028,M046,M092 +RD=K047,K020,M051,M053,M059,M089 +LC=K035,K010 +LP=K087 LBD=K077 [GuitarKeyAssign] diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CDTXMania.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CDTXMania.cs" index 51f80f1e..7d353c0c 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CDTXMania.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CDTXMania.cs" @@ -23,7 +23,7 @@ internal class CDTXMania : Game { // プロパティ - public static readonly string VERSION = "Ver3.40GD(150919)"; + public static readonly string VERSION = "Ver3.62bGD(200728)"; public static readonly string SLIMDXDLL = "c_net20x86_Jun2010"; public static readonly string D3DXDLL = "d3dx9_43.dll"; // June 2010 //public static readonly string D3DXDLL = "d3dx9_42.dll"; // February 2010 @@ -290,7 +290,7 @@ public bool b次のタイミングで垂直帰線同期切り替えを行う get; set; } - public bool b次のタイミングで全画面・ウィンドウ切り替えを行う + public bool b次のタイミングで全画面_ウィンドウ切り替えを行う { get; set; @@ -339,7 +339,7 @@ public CDTXMania() // メソッド - public void t全画面・ウィンドウモード切り替え() + public void t全画面_ウィンドウモード切り替え() { #if WindowedFullscreen if ( ConfigIni != null ) @@ -488,12 +488,9 @@ protected override void LoadContent() this.Device.SetRenderState(RenderState.AlphaTestEnable, true); this.Device.SetRenderState(RenderState.AlphaRef, 10); - if (CDTXMania.ConfigIni.b縮小文字のアンチエイリアスを有効にする == true) - { - this.Device.SetRenderState(RenderState.MultisampleAntialias, true); - this.Device.SetSamplerState(0, SamplerState.MinFilter, TextureFilter.Linear); - this.Device.SetSamplerState(0, SamplerState.MagFilter, TextureFilter.Linear); - } + this.Device.SetRenderState(RenderState.MultisampleAntialias, true); + this.Device.SetSamplerState(0, SamplerState.MinFilter, TextureFilter.Linear); + this.Device.SetSamplerState(0, SamplerState.MagFilter, TextureFilter.Linear); this.Device.SetRenderState(RenderState.AlphaFunc, Compare.Greater); this.Device.SetRenderState(RenderState.AlphaBlendEnable, true); @@ -618,7 +615,7 @@ protected override void Draw(GameTime gameTime) case CStage.Eステージ.曲読み込み: if (EnumSongs != null) { - #region [ (特定条件時) 曲検索スレッドの起動・開始 ] + #region [ (特定条件時) 曲検索スレッドの起動_開始 ] if (r現在のステージ.eステージID == CStage.Eステージ.タイトル && r直前のステージ.eステージID == CStage.Eステージ.起動 && this.n進行描画の戻り値 == (int)CStageタイトル.E戻り値.継続 && @@ -627,7 +624,7 @@ protected override void Draw(GameTime gameTime) actEnumSongs.On活性化(); CDTXMania.stage選曲.bIsEnumeratingSongs = true; EnumSongs.Init(CDTXMania.Songs管理.listSongsDB, CDTXMania.Songs管理.nSongsDBから取得できたスコア数); // songs.db情報と、取得した曲数を、新インスタンスにも与える - EnumSongs.StartEnumFromDisk(); // 曲検索スレッドの起動・開始 + EnumSongs.StartEnumFromDisk(); // 曲検索スレッドの起動_開始 if (CDTXMania.Songs管理.nSongsDBから取得できたスコア数 == 0) // もし初回起動なら、検索スレッドのプライオリティをLowestでなくNormalにする { EnumSongs.ChangeEnumeratePriority(ThreadPriority.Normal); @@ -733,73 +730,77 @@ protected override void Draw(GameTime gameTime) case CStage.Eステージ.タイトル: #region [ *** ] //----------------------------- - switch (this.n進行描画の戻り値) + if( this.n進行描画の戻り値 != 0 ) { - case (int)CStageタイトル.E戻り値.GAMESTART: - #region [ 選曲処理へ ] - //----------------------------- - r現在のステージ.On非活性化(); - Trace.TraceInformation("----------------------"); - Trace.TraceInformation("■ 選曲"); - stage選曲.On活性化(); - r直前のステージ = r現在のステージ; - r現在のステージ = stage選曲; - //----------------------------- + switch (this.n進行描画の戻り値) + { + case (int)CStageタイトル.E戻り値.GAMESTART: + #region [ 選曲処理へ ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation("----------------------"); + Trace.TraceInformation("■ 選曲"); + stage選曲.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage選曲; + //----------------------------- + #endregion + break; + + #region [ OPTION: 廃止済 ] + /* + case 2: // #24525 OPTIONとCONFIGの統合に伴い、OPTIONは廃止 + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ オプション" ); + stageオプション.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stageオプション; + //----------------------------- + #endregion + break; + */ #endregion - break; - #region [ OPTION: 廃止済 ] - /* - case 2: // #24525 OPTIONとCONFIGの統合に伴い、OPTIONは廃止 - #region [ *** ] - //----------------------------- - r現在のステージ.On非活性化(); - Trace.TraceInformation( "----------------------" ); - Trace.TraceInformation( "■ オプション" ); - stageオプション.On活性化(); - r直前のステージ = r現在のステージ; - r現在のステージ = stageオプション; - //----------------------------- - #endregion - break; - */ - #endregion + case (int)CStageタイトル.E戻り値.CONFIG: + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation("----------------------"); + Trace.TraceInformation("■ コンフィグ"); + stageコンフィグ.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stageコンフィグ; + //----------------------------- + #endregion + break; - case (int)CStageタイトル.E戻り値.CONFIG: - #region [ *** ] - //----------------------------- - r現在のステージ.On非活性化(); - Trace.TraceInformation("----------------------"); - Trace.TraceInformation("■ コンフィグ"); - stageコンフィグ.On活性化(); - r直前のステージ = r現在のステージ; - r現在のステージ = stageコンフィグ; - //----------------------------- - #endregion - break; + case (int)CStageタイトル.E戻り値.EXIT: + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation("----------------------"); + Trace.TraceInformation("■ 終了"); + stage終了.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage終了; + //----------------------------- + #endregion + break; + } - case (int)CStageタイトル.E戻り値.EXIT: - #region [ *** ] - //----------------------------- - r現在のステージ.On非活性化(); - Trace.TraceInformation("----------------------"); - Trace.TraceInformation("■ 終了"); - stage終了.On活性化(); - r直前のステージ = r現在のステージ; - r現在のステージ = stage終了; - //----------------------------- - #endregion - break; - } + foreach (STPlugin pg in this.listプラグイン) + { + Directory.SetCurrentDirectory(pg.strプラグインフォルダ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory(CDTXMania.strEXEのあるフォルダ); + } - foreach (STPlugin pg in this.listプラグイン) - { - Directory.SetCurrentDirectory(pg.strプラグインフォルダ); - pg.plugin.Onステージ変更(); - Directory.SetCurrentDirectory(CDTXMania.strEXEのあるフォルダ); + this.tガベージコレクションを実行する(); // #31980 2013.9.3 yyagi タイトル画面でだけ、毎フレームGCを実行して重くなっていた問題の修正 } - //this.tガベージコレクションを実行する(); // #31980 2013.9.3 yyagi タイトル画面でだけ、毎フレームGCを実行して重くなっていた問題の修正 //----------------------------- #endregion break; @@ -1414,12 +1415,12 @@ protected override void Draw(GameTime gameTime) #if !GPUFlushAfterPresent actFlushGPU.On進行描画(); // Flush GPU // EndScene()~Present()間 (つまりVSync前) でFlush実行 #endif - #region [ 全画面・ウインドウ切り替え ] - if (this.b次のタイミングで全画面・ウィンドウ切り替えを行う) + #region [ 全画面_ウインドウ切り替え ] + if (this.b次のタイミングで全画面_ウィンドウ切り替えを行う) { ConfigIni.b全画面モード = !ConfigIni.b全画面モード; - app.t全画面・ウィンドウモード切り替え(); - this.b次のタイミングで全画面・ウィンドウ切り替えを行う = false; + app.t全画面_ウィンドウモード切り替え(); + this.b次のタイミングで全画面_ウィンドウ切り替えを行う = false; } #endregion #region [ 垂直基線同期切り替え ] @@ -1457,6 +1458,7 @@ public static CTexture tテクスチャの生成( string fileName, bool b黒を } try { + //Trace.WriteLine("CTextureをFileから生成 + Filename:" + fileName); return new CTexture( app.Device, fileName, TextureFormat, b黒を透過する ); } catch ( CTextureCreateFailedException ) @@ -1472,8 +1474,10 @@ public static CTexture tテクスチャの生成( string fileName, bool b黒を } public static void tテクスチャの解放( ref CTexture tx ) { - if( tx != null ) + if (tx != null) { + //Trace.WriteLine( "CTextureを解放 Size W:" + tx.sz画像サイズ.Width + " H:" + tx.sz画像サイズ.Height ); CDTXMania.t安全にDisposeする( ref tx ); + } } public static void tテクスチャの解放( ref CTextureAf tx ) { @@ -1512,6 +1516,7 @@ public static CTexture tテクスチャの生成( Bitmap bitmap, bool b黒を透 } try { + //Trace.WriteLine( "CTextureをBitmapから生成" ); return new CTexture( app.Device, bitmap, TextureFormat, b黒を透過する ); } catch ( CTextureCreateFailedException ) @@ -1758,7 +1763,7 @@ private void t起動処理() base.InactiveSleepTime = TimeSpan.FromMilliseconds((float)(ConfigIni.n非フォーカス時スリープms)); // #23568 2010.11.3 yyagi: to support valiable sleep value when !IsActive // #23568 2010.11.4 ikanick changed ( 1 -> ConfigIni ) #if WindowedFullscreen - this.t全画面・ウィンドウモード切り替え(); // #30666 2013.2.2 yyagi: finalize settings for "Maximized window mode" + this.t全画面_ウィンドウモード切り替え(); // #30666 2013.2.2 yyagi: finalize settings for "Maximized window mode" #endif actFlushGPU = new CActFlushGPU(); //--------------------- @@ -2203,6 +2208,7 @@ private void t終了処理() Trace.Indent(); try { + CDTXMania.Skin.tSaveSkinConfig(); //2016.07.30 kairera0467 #36413 Skin.Dispose(); Skin = null; Trace.TraceInformation("スキンの終了処理を完了しました。"); @@ -2535,7 +2541,7 @@ private void Window_KeyDown(object sender, KeyEventArgs e) if (ConfigIni != null) { ConfigIni.bウィンドウモード = !ConfigIni.bウィンドウモード; - this.t全画面・ウィンドウモード切り替え(); + this.t全画面_ウィンドウモード切り替え(); } e.Handled = true; e.SuppressKeyPress = true; @@ -2566,7 +2572,7 @@ private void Window_MouseDoubleClick(object sender, MouseEventArgs e) // #23510 if (mb.Equals(MouseButtons.Left) && ConfigIni.bIsAllowedDoubleClickFullscreen) // #26752 2011.11.27 yyagi { ConfigIni.bウィンドウモード = false; - this.t全画面・ウィンドウモード切り替え(); + this.t全画面_ウィンドウモード切り替え(); } } private void Window_ResizeEnd(object sender, EventArgs e) // #23510 2010.11.20 yyagi: to get resized window size @@ -2598,4 +2604,4 @@ private void Window_ResizeEnd(object sender, EventArgs e) // #23510 2010.11.2 //----------------- #endregion } -} +} \ No newline at end of file diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CPrivateFont.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CPrivateFont.cs" index 8b1b6118..04d3460f 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CPrivateFont.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CPrivateFont.cs" @@ -109,25 +109,50 @@ protected void Initialize( string fontpath, FontFamily fontfamily, int pt, FontS // 指定されたフォントスタイルが適用できない場合は、フォント内で定義されているスタイルから候補を選んで使用する // 何もスタイルが使えないようなフォントなら、例外を出す。 - if ( !_fontfamily.IsStyleAvailable( style ) ) + if ( _fontfamily != null ) { - FontStyle[] FS = { FontStyle.Regular, FontStyle.Bold, FontStyle.Italic, FontStyle.Underline, FontStyle.Strikeout }; - style = FontStyle.Regular | FontStyle.Bold | FontStyle.Italic | FontStyle.Underline | FontStyle.Strikeout; // null非許容型なので、代わりに全盛をNGワードに設定 - foreach ( FontStyle ff in FS ) + if ( !_fontfamily.IsStyleAvailable( style ) ) { - if ( this._fontfamily.IsStyleAvailable( ff ) ) + FontStyle[] FS = { FontStyle.Regular, FontStyle.Bold, FontStyle.Italic, FontStyle.Underline, FontStyle.Strikeout }; + style = FontStyle.Regular | FontStyle.Bold | FontStyle.Italic | FontStyle.Underline | FontStyle.Strikeout; // null非許容型なので、代わりに全盛をNGワードに設定 + foreach ( FontStyle ff in FS ) { - style = ff; - Trace.TraceWarning( "フォント{0}へのスタイル指定を、{1}に変更しました。", Path.GetFileName( fontpath ), style.ToString() ); - break; + if ( this._fontfamily.IsStyleAvailable( ff ) ) + { + style = ff; + Trace.TraceWarning( "フォント{0}へのスタイル指定を、{1}に変更しました。", Path.GetFileName( fontpath ), style.ToString() ); + break; + } + } + if ( style == ( FontStyle.Regular | FontStyle.Bold | FontStyle.Italic | FontStyle.Underline | FontStyle.Strikeout ) ) + { + Trace.TraceWarning( "フォント{0}は適切なスタイル{1}を選択できませんでした。", Path.GetFileName( fontpath ), style.ToString() ); } } - if ( style == ( FontStyle.Regular | FontStyle.Bold | FontStyle.Italic | FontStyle.Underline | FontStyle.Strikeout ) ) + //this._font = new Font(this._fontfamily, pt, style); //PrivateFontCollectionの先頭のフォントのFontオブジェクトを作成する + float emSize = pt * 96.0f / 72.0f; + this._font = new Font( this._fontfamily, emSize, style, GraphicsUnit.Pixel ); //PrivateFontCollectionの先頭のフォントのFontオブジェクトを作成する + //HighDPI対応のため、pxサイズで指定 + } + else + // フォントファイルが見つからなかった場合 (MS PGothicを代わりに指定する) + { + float emSize = pt * 96.0f / 72.0f; + this._font = new Font( "MS PGothic", emSize, style, GraphicsUnit.Pixel ); //MS PGothicのFontオブジェクトを作成する + FontFamily[] ffs = new System.Drawing.Text.InstalledFontCollection().Families; + int lcid = System.Globalization.CultureInfo.GetCultureInfo( "en-us" ).LCID; + foreach ( FontFamily ff in ffs ) { - throw new ArgumentException( "フォント{0}は適切なスタイルを選択できず、使用できません。", Path.GetFileName( fontpath ) ); + // Trace.WriteLine( lcid ) ); + if ( ff.GetName( lcid ) == "MS PGothic" ) + { + this._fontfamily = ff; + Trace.TraceInformation( "MS PGothicを代わりに指定しました。" ); + return; + } } + throw new FileNotFoundException( "プライベートフォントの追加に失敗し、MS PGothicでの代替処理にも失敗しました。({0})", Path.GetFileName( fontpath ) ); } - this._font = new Font( this._fontfamily, pt, style ); //PrivateFontCollectionの先頭のフォントのFontオブジェクトを作成する } [Flags] @@ -263,7 +288,7 @@ public Bitmap DrawPrivateFont( string drawstr, DrawMode drawmode, Color fontColo { if ( this._fontfamily == null || drawstr == null || drawstr == "" ) { - // nullを返すと、その後bmp→texture処理や、textureのサイズを見て・・の処理で全部例外が発生することになる。 + // nullを返すと、その後bmp→texture処理や、textureのサイズを見て__の処理で全部例外が発生することになる。 // それは非常に面倒なので、最小限のbitmapを返してしまう。 // まずはこの仕様で進めますが、問題有れば(上位側からエラー検出が必要であれば)例外を出したりエラー状態であるプロパティを定義するなり検討します。 Trace.TraceError( "DrawPrivateFont()の入力不正。最小値のbitmapを返します。" ); @@ -275,13 +300,12 @@ public Bitmap DrawPrivateFont( string drawstr, DrawMode drawmode, Color fontColo bool bGradation = ( ( drawmode & DrawMode.Gradation ) == DrawMode.Gradation ); // 縁取りの縁のサイズは、とりあえずフォントの大きさの1/4とする - int nEdgePt = (bEdge)? _pt / 6 : 0;//Change to 6 from 4 + int nEdgePt = (bEdge)? _pt / 4 : 0; // 描画サイズを測定する Size stringSize = System.Windows.Forms.TextRenderer.MeasureText( drawstr, this._font, new Size( int.MaxValue, int.MaxValue ), System.Windows.Forms.TextFormatFlags.NoPrefix | System.Windows.Forms.TextFormatFlags.NoPadding - | System.Windows.Forms.TextFormatFlags.SingleLine//KSM 04052016: Force to draw single line ); //取得した描画サイズを基に、描画先のbitmapを作成する @@ -365,7 +389,7 @@ public Bitmap DrawPrivateFont( string drawstr, DrawMode drawmode, Color fontColo { if ( this._fontfamily == null || drawstr == null || drawstr == "" ) { - // nullを返すと、その後bmp→texture処理や、textureのサイズを見て・・の処理で全部例外が発生することになる。 + // nullを返すと、その後bmp→texture処理や、textureのサイズを見て__の処理で全部例外が発生することになる。 // それは非常に面倒なので、最小限のbitmapを返してしまう。 // まずはこの仕様で進めますが、問題有れば(上位側からエラー検出が必要であれば)例外を出したりエラー状態であるプロパティを定義するなり検討します。 Trace.TraceError( "DrawPrivateFont()の入力不正。最小値のbitmapを返します。" ); @@ -377,14 +401,12 @@ public Bitmap DrawPrivateFont( string drawstr, DrawMode drawmode, Color fontColo bool bGradation = ( ( drawmode & DrawMode.Gradation ) == DrawMode.Gradation ); // 縁取りの縁のサイズは、とりあえずフォントの大きさの1/4とする - int nEdgePt = (bEdge) ? _pt / 6 : 0;//Change from 1/4 to 1/5 + int nEdgePt = (bEdge)? _pt / 4 : 0; // 描画サイズを測定する Size stringSize = System.Windows.Forms.TextRenderer.MeasureText( drawstr, this._font, new Size( int.MaxValue, int.MaxValue ), System.Windows.Forms.TextFormatFlags.NoPrefix | System.Windows.Forms.TextFormatFlags.NoPadding - | System.Windows.Forms.TextFormatFlags.SingleLine//KSM 04052016: Force to draw single line - //System.Windows.Forms.TextFormatFlags.NoPadding ); //取得した描画サイズを基に、描画先のbitmapを作成する @@ -399,6 +421,7 @@ public Bitmap DrawPrivateFont( string drawstr, DrawMode drawmode, Color fontColo // レイアウト枠 Rectangle r = new Rectangle( 0, 0, stringSize.Width + nEdgePt * 2, stringSize.Height + nEdgePt * 2 ); + r = new Rectangle( 0, 0, stringSize.Width + nEdgePt * 3, stringSize.Height + nEdgePt * 2 ); // 2016.06.12 kairera0467 改行防止 if( bEdge && bEdgeGradation ) // 縁取り有りの描画 { diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CSkin.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CSkin.cs" index 10604709..e5f94404 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CSkin.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CSkin.cs" @@ -39,8 +39,6 @@ public enum Eシステムサウンド SOUNDBASIC, SOUNDADVANCED, SOUNDEXTREME, - // Added new audio files for excellent - limyz / 210516 - SOUNDEXCELLENT, Count // システムサウンド総数の計算用 } @@ -72,7 +70,7 @@ public bool b再生中 return this.rSound[ 1 - this.n次に鳴るサウンド番号 ].b再生中; } } - public int n位置・現在のサウンド + public int n位置_現在のサウンド { get { @@ -89,7 +87,7 @@ public int n位置・現在のサウンド sound.n位置 = value; } } - public int n位置・次に鳴るサウンド + public int n位置_次に鳴るサウンド { get { @@ -106,7 +104,7 @@ public int n位置・次に鳴るサウンド sound.n位置 = value; } } - public int n音量・現在のサウンド + public int n音量_現在のサウンド { get { @@ -123,7 +121,7 @@ public int n音量・現在のサウンド sound.n音量 = value; } } - public int n音量・次に鳴るサウンド + public int n音量_次に鳴るサウンド { get { @@ -143,7 +141,7 @@ public int n音量・次に鳴るサウンド } } } - public int n長さ・現在のサウンド + public int n長さ_現在のサウンド { get { @@ -155,7 +153,7 @@ public int n長さ・現在のサウンド return sound.n総演奏時間ms; } } - public int n長さ・次に鳴るサウンド + public int n長さ_次に鳴るサウンド { get { @@ -353,10 +351,6 @@ public void Dispose() public Cシステムサウンド soundBasic = null; public Cシステムサウンド soundAdvanced = null; public Cシステムサウンド soundExtreme = null; - - // Added new audio files for excellent - limyz / 210516 - public Cシステムサウンド soundExcellent = null; - public readonly int nシステムサウンド数 = (int)Eシステムサウンド.Count; public Cシステムサウンド this[ Eシステムサウンド sound ] { @@ -433,10 +427,6 @@ public Cシステムサウンド this[ Eシステムサウンド sound ] case Eシステムサウンド.SOUNDSELECTMUSIC: return this.soundSelectMusic; - // Added new audio files for excellent - limyz / 210516 - case Eシステムサウンド.SOUNDEXCELLENT: - return this.soundExcellent; - case Eシステムサウンド.BGM起動画面: return this.bgm起動画面; @@ -544,32 +534,28 @@ public Cシステムサウンド this[ int index ] case 27: return this.soundExtreme; - - // Added new audio files for excellent - limyz / 210516 - case 28: - return this.soundExcellent; } throw new IndexOutOfRangeException(); } } - // スキンの切り替えについて・・・ + // スキンの切り替えについて___ // - // ・スキンの種類は大きく分けて2種類。Systemスキンとboxdefスキン。 + // _スキンの種類は大きく分けて2種類。Systemスキンとboxdefスキン。 //  前者はSystem/フォルダにユーザーが自らインストールしておくスキン。 //  後者はbox.defで指定する、曲データ制作者が提示するスキン。 // - // ・Config画面で、2種のスキンを区別無く常時使用するよう設定することができる。 - // ・box.defの#SKINPATH 設定により、boxdefスキンを一時的に使用するよう設定する。 + // _Config画面で、2種のスキンを区別無く常時使用するよう設定することができる。 + // _box.defの#SKINPATH 設定により、boxdefスキンを一時的に使用するよう設定する。 //  (box.defの効果の及ばない他のmuxic boxでは、当該boxdefスキンの有効性が無くなる) // - // これを実現するために・・・ - // ・Systemスキンの設定情報と、boxdefスキンの設定情報は、分離して持つ。 + // これを実現するために___ + // _Systemスキンの設定情報と、boxdefスキンの設定情報は、分離して持つ。 //  (strSystem~~ と、strBoxDef~~~) - // ・Config画面からは前者のみ書き換えできるようにし、 + // _Config画面からは前者のみ書き換えできるようにし、 //  選曲画面からは後者のみ書き換えできるようにする。(SetCurrent...()) - // ・読み出しは両者から行えるようにすると共に + // _読み出しは両者から行えるようにすると共に //  選曲画面用に二種の情報を区別しない読み出し方法も提供する(GetCurrent...) private object lockBoxDefSkin; @@ -703,10 +689,6 @@ public void PrepareReloadSkin() this.soundExtreme = new Cシステムサウンド( @"Sounds\Extreme.ogg", false, false, false ); this.soundMaster = new Cシステムサウンド( @"Sounds\Master.ogg", false, false, false ); this.soundSelectMusic = new Cシステムサウンド( @"Sounds\SelectMusic.ogg", false, false, false ); - - // Added new audio files for excellent - limyz / 210516 - this.soundExcellent = new Cシステムサウンド( @"Sounds\Excellent.ogg", false, true, false); - this.bgm起動画面 = new Cシステムサウンド( @"Sounds\Setup BGM.ogg", true, true, false ); this.bgmオプション画面 = new Cシステムサウンド( @"Sounds\Option BGM.ogg", true, true, false ); this.bgmコンフィグ画面 = new Cシステムサウンド( @"Sounds\Config BGM.ogg", true, true, false ); @@ -906,6 +888,244 @@ public void tRemoveMixerAll() } } + + public void tReadSkinConfig() + { + if( File.Exists( CSkin.Path( @"SkinConfig.ini" ) ) ) + { + string str; + //this.tキーアサインを全部クリアする(); + using ( StreamReader reader = new StreamReader( CSkin.Path( @"SkinConfig.ini" ), Encoding.GetEncoding( "unicode" ) ) ) + { + str = reader.ReadToEnd(); + } + this.t文字列から読み込み( str ); + } + } + + /// + /// 2016.07.30 kairera0467 #36413 + /// + public void tSaveSkinConfig() + { + if( File.Exists( CSkin.Path( @"SkinConfig.ini" ) ) ) + { + StreamWriter sw = new StreamWriter( CSkin.Path( @"SkinConfig.ini" ), false, Encoding.GetEncoding( "unicode" ) ); + sw.WriteLine( "; スキンごとでの設定ファイル。現在テスト段階です。" ); + sw.WriteLine( "; ここで設定した数値が優先的に使用されます。" ); + sw.WriteLine( ";" ); + sw.WriteLine( "; 読み込み画面、演奏画面、ネームプレート、リザルト画面の曲名で使用するフォント名" ); + sw.WriteLine( "DisplayFontName={0}", CDTXMania.ConfigIni.str曲名表示フォント ); + sw.WriteLine(); + sw.WriteLine( "; 選曲リストのフォント名" ); + sw.WriteLine( "; Font name for select song item." ); + sw.WriteLine( "SelectListFontName={0}", CDTXMania.ConfigIni.str選曲リストフォント ); + sw.WriteLine(); + sw.WriteLine( "; 選曲リストのフォントのサイズ[dot]" ); + sw.WriteLine( "; Font size[dot] for select song item." ); + sw.WriteLine( "SelectListFontSize={0}", CDTXMania.ConfigIni.n選曲リストフォントのサイズdot ); + sw.WriteLine(); + sw.WriteLine( "; ネームプレートタイプ" ); + sw.WriteLine( "; 0:タイプA XG2風の表示がされます。" ); + sw.WriteLine( "; 1:タイプB XG風の表示がされます。このタイプでは7_NamePlate_XG.png、7_Difficlty_XG.pngが読み込まれます。" ); + sw.WriteLine( "NamePlateType={0}", (int)CDTXMania.ConfigIni.eNamePlate ); + sw.WriteLine(); + sw.WriteLine( "; 動くドラムセット(0:ON, 1:OFF, 2:NONE)" ); + sw.WriteLine( "DrumSetMoves={0}", (int)CDTXMania.ConfigIni.eドラムセットを動かす ); + sw.WriteLine(); + sw.WriteLine( "; BPMバーの表示(0:表示する, 1:左のみ表示, 2:動くバーを表示しない, 3:表示しない)" ); + sw.WriteLine( "BPMBar={0}", (int)CDTXMania.ConfigIni.eBPMbar ); + sw.WriteLine(); + sw.WriteLine( "; LivePointの表示(0:OFF, 1:ON)" ); + sw.WriteLine( "LivePoint={0}", CDTXMania.ConfigIni.bLivePoint ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; スピーカーの表示(0:OFF, 1:ON)" ); + sw.WriteLine( "Speaker={0}", CDTXMania.ConfigIni.bSpeaker ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( ";判定画像のアニメーション方式" ); + sw.WriteLine( ";(0:旧DTXMania方式 1:コマ方式 2:擬似XG方式)" ); + sw.WriteLine( "JudgeAnimeType={0}", CDTXMania.ConfigIni.nJudgeAnimeType ); + sw.WriteLine(); + sw.WriteLine( ";判定画像のコマ数" ); + sw.WriteLine( "JudgeFrames={0}", CDTXMania.ConfigIni.nJudgeFrames ); + sw.WriteLine(); + sw.WriteLine( ";判定画像の1コマのフレーム数" ); + sw.WriteLine( "JudgeInterval={0}", CDTXMania.ConfigIni.nJudgeInterval ); + sw.WriteLine(); + sw.WriteLine( ";判定画像の1コマの幅" ); + sw.WriteLine( "JudgeWidgh={0}", CDTXMania.ConfigIni.nJudgeWidgh ); + sw.WriteLine(); + sw.WriteLine( ";判定画像の1コマの高さ" ); + sw.WriteLine( "JudgeHeight={0}", CDTXMania.ConfigIni.nJudgeHeight ); + sw.WriteLine(); + sw.WriteLine( ";アタックエフェクトのコマ数" ); + sw.WriteLine( "ExplosionFrames={0}", CDTXMania.ConfigIni.nExplosionFrames ); + sw.WriteLine(); + sw.WriteLine( ";アタックエフェクトの1コマのフレーム数" ); + sw.WriteLine( "ExplosionInterval={0}", CDTXMania.ConfigIni.nExplosionInterval ); + sw.WriteLine(); + sw.WriteLine( ";アタックエフェクトの1コマの幅" ); + sw.WriteLine( "ExplosionWidgh={0}", CDTXMania.ConfigIni.nExplosionWidgh ); + sw.WriteLine(); + sw.WriteLine( ";アタックエフェクトの1コマの高さ" ); + sw.WriteLine( "ExplosionHeight={0}", CDTXMania.ConfigIni.nExplosionHeight ); + sw.WriteLine(); + sw.WriteLine( "ワイリングエフェクトのコマ数;" ); + sw.WriteLine( "WailingFireFrames={0}", CDTXMania.ConfigIni.nWailingFireFrames ); + sw.WriteLine(); + sw.WriteLine( ";ワイリングエフェクトの1コマのフレーム数" ); + sw.WriteLine( "WailingFireInterval={0}", CDTXMania.ConfigIni.nWailingFireInterval ); + sw.WriteLine(); + sw.WriteLine( ";ワイリングエフェクトの1コマの幅" ); + sw.WriteLine( "WailingFireWidgh={0}", CDTXMania.ConfigIni.nWailingFireWidgh ); + sw.WriteLine(); + sw.WriteLine( ";ワイリングエフェクトの1コマの高さ" ); + sw.WriteLine( "WailingFireHeight={0}", CDTXMania.ConfigIni.nWailingFireHeight ); + sw.WriteLine(); + sw.WriteLine( ";ワイリングエフェクトのX座標" ); + sw.WriteLine( "WailingFirePosXGuitar={0}", CDTXMania.ConfigIni.nWailingFireX.Guitar ); + sw.WriteLine( "WailingFirePosXBass={0}", CDTXMania.ConfigIni.nWailingFireX.Bass ); + sw.WriteLine(); + sw.WriteLine( ";ワイリングエフェクトのY座標(Guitar、Bass共通)" ); + sw.WriteLine( "WailingFirePosY={0}", CDTXMania.ConfigIni.nWailingFireY ); + sw.WriteLine(); + + sw.Close(); + } + } + + private void t文字列から読み込み(string strAllSettings) // 2011.4.13 yyagi; refactored to make initial KeyConfig easier. + { + string[] delimiter = { "\n" }; + string[] strSingleLine = strAllSettings.Split(delimiter, StringSplitOptions.RemoveEmptyEntries); + foreach (string s in strSingleLine) + { + string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' }); + if ((str.Length != 0) && (str[0] != ';')) + { + try + { + string str3; + string str4; + string[] strArray = str.Split(new char[] { '=' }); + if (strArray.Length == 2) + { + str3 = strArray[0].Trim(); + str4 = strArray[1].Trim(); + //----------------------------- + if (str3.Equals("SelectListFontName")) + { + CDTXMania.ConfigIni.str選曲リストフォント = str4; + } + else if (str3.Equals("DisplayFontName")) + { + CDTXMania.ConfigIni.str曲名表示フォント = str4; + } + else if (str3.Equals("SelectListFontSize")) + { + CDTXMania.ConfigIni.n選曲リストフォントのサイズdot = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 1, 0x3e7, CDTXMania.ConfigIni.n選曲リストフォントのサイズdot); + } + else if (str3.Equals("SelectListFontBold")) + { + CDTXMania.ConfigIni.b選曲リストフォントを太字にする = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("NamePlateType")) + { + CDTXMania.ConfigIni.eNamePlate = (Eタイプ)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)CDTXMania.ConfigIni.eNamePlate); + } + else if (str3.Equals("DrumSetMoves")) + { + CDTXMania.ConfigIni.eドラムセットを動かす = (Eタイプ)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, (int)CDTXMania.ConfigIni.eドラムセットを動かす); + } + else if (str3.Equals("BPMBar")) + { + CDTXMania.ConfigIni.eBPMbar = (Eタイプ)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)CDTXMania.ConfigIni.eBPMbar); + } + else if (str3.Equals("LivePoint")) + { + CDTXMania.ConfigIni.bLivePoint = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("Speaker")) + { + CDTXMania.ConfigIni.bSpeaker = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("JudgeAnimeType")) + { + CDTXMania.ConfigIni.nJudgeAnimeType = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, CDTXMania.ConfigIni.nJudgeAnimeType); + } + else if (str3.Equals("JudgeFrames")) + { + CDTXMania.ConfigIni.nJudgeFrames = C変換.n値を文字列から取得して返す(str4, CDTXMania.ConfigIni.nJudgeFrames); + } + else if (str3.Equals("JudgeInterval")) + { + CDTXMania.ConfigIni.nJudgeInterval = C変換.n値を文字列から取得して返す(str4, CDTXMania.ConfigIni.nJudgeInterval); + } + else if (str3.Equals("JudgeWidgh")) + { + CDTXMania.ConfigIni.nJudgeWidgh = C変換.n値を文字列から取得して返す(str4, CDTXMania.ConfigIni.nJudgeWidgh); + } + else if (str3.Equals("JudgeHeight")) + { + CDTXMania.ConfigIni.nJudgeHeight = C変換.n値を文字列から取得して返す(str4, CDTXMania.ConfigIni.nJudgeHeight); + } + else if (str3.Equals("ExplosionFrames")) + { + CDTXMania.ConfigIni.nExplosionFrames = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, int.MaxValue, (int)CDTXMania.ConfigIni.nExplosionFrames); + } + else if (str3.Equals("ExplosionInterval")) + { + CDTXMania.ConfigIni.nExplosionInterval = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, int.MaxValue, (int)CDTXMania.ConfigIni.nExplosionInterval); + } + else if (str3.Equals("ExplosionWidgh")) + { + CDTXMania.ConfigIni.nExplosionWidgh = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, int.MaxValue, (int)CDTXMania.ConfigIni.nExplosionWidgh); + } + else if (str3.Equals("ExplosionHeight")) + { + CDTXMania.ConfigIni.nExplosionHeight = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, int.MaxValue, (int)CDTXMania.ConfigIni.nExplosionHeight); + } + else if (str3.Equals("WailingFireFrames")) + { + CDTXMania.ConfigIni.nWailingFireFrames = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, int.MaxValue, (int)CDTXMania.ConfigIni.nWailingFireFrames); + } + else if (str3.Equals("WailingFireInterval")) + { + CDTXMania.ConfigIni.nWailingFireInterval = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, int.MaxValue, (int)CDTXMania.ConfigIni.nWailingFireInterval); + } + else if (str3.Equals("WailingFireWidgh")) + { + CDTXMania.ConfigIni.nWailingFireWidgh = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, int.MaxValue, (int)CDTXMania.ConfigIni.nWailingFireWidgh); + } + else if (str3.Equals("WailingFireHeight")) + { + CDTXMania.ConfigIni.nWailingFireHeight = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, int.MaxValue, (int)CDTXMania.ConfigIni.nWailingFireHeight); + } + else if (str3.Equals("WailingFirePositionXGuitar")) + { + CDTXMania.ConfigIni.nWailingFireX.Guitar = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, int.MaxValue, (int)CDTXMania.ConfigIni.nWailingFireX.Guitar); + } + else if (str3.Equals("WailingFirePositionXBass")) + { + CDTXMania.ConfigIni.nWailingFireX.Bass = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, int.MaxValue, (int)CDTXMania.ConfigIni.nWailingFireX.Bass); + } + else if (str3.Equals("WailingFirePosY")) + { + CDTXMania.ConfigIni.nWailingFireX.Bass = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, int.MaxValue, (int)CDTXMania.ConfigIni.nWailingFireY); + } + //----------------------------- + } + continue; + } + catch (Exception exception) + { + Trace.TraceError(exception.Message); + continue; + } + } + } + } + #region [ IDisposable 実装 ] //----------------- public void Dispose() diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/C\343\203\241\343\202\244\343\203\263\343\202\246\343\202\243\343\203\263\343\203\211\343\202\246.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/C\343\203\241\343\202\244\343\203\263\343\202\246\343\202\243\343\203\263\343\203\211\343\202\246.cs" index 55eb343f..e92370a5 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/C\343\203\241\343\202\244\343\203\263\343\202\246\343\202\243\343\203\263\343\203\211\343\202\246.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/C\343\203\241\343\202\244\343\203\263\343\202\246\343\202\243\343\203\263\343\203\211\343\202\246.cs" @@ -56,8 +56,8 @@ protected override void WndProc( ref Message m ) #region [ イベント発信者(CDirectShow) を特定する。] //----------------- // このインスタンスID は、今のところ以下のいずれかである。 - // ・背景動画 - // ・仮想ドラムキット + // _背景動画 + // _仮想ドラムキット // なので、これらを順に見ていって、イベント発信者を特定する。 if( CDTXMania.stage選曲.r現在演奏中のスコアの背景動画 != null && diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/Folder.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/Folder.cs" index 9863409c..140ed75b 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/Folder.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/Folder.cs" @@ -123,9 +123,9 @@ public void tユーザ個別フォルダを変更する( string str新しいユ /// /// 指定されたパスを絶対パスに変換して返す。 - /// ・path が相対パス指定であれば、str相対パス時のルートからの相対パスと見なす。 - /// ・path が空文字列 or null であれば空文字列を返す。 - /// ・path に問題があれば例外を発出する。 + /// _path が相対パス指定であれば、str相対パス時のルートからの相対パスと見なす。 + /// _path が空文字列 or null であれば空文字列を返す。 + /// _path に問題があれば例外を発出する。 /// public string tパスを絶対パスに変換しパスとしての正当性を確認する( string path, string str相対パス時のルート ) { diff --git "a/FDK17\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/FDK19.csproj" "b/FDK17\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/FDK19.csproj" index 07337b70..325cee09 100644 --- "a/FDK17\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/FDK19.csproj" +++ "b/FDK17\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/FDK19.csproj" @@ -23,21 +23,6 @@ 3.5 - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true x86 @@ -168,18 +153,6 @@ - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - -