OSDN Git Service

#39873 Fixed: Number of lanes is not shown in the select-music screen, even if CONFIG...
authoryyagi <yyagi.dtxmania@gmail.com>
Sat, 28 Dec 2019 18:22:58 +0000 (03:22 +0900)
committeryyagi <yyagi.dtxmania@gmail.com>
Sat, 28 Dec 2019 18:22:58 +0000 (03:22 +0900)
DTXMania/コード/スコア、曲/CDTX.cs
DTXMania/コード/スコア、曲/CDTXInput.cs
DTXMania/コード/スコア、曲/CDTXNestedTypes.cs
DTXMania/コード/ステージ/05.選曲/CActSelect曲リスト.cs

index 107c049..1d664cd 100644 (file)
@@ -132,6 +132,7 @@ namespace DTXMania
                        this.bチップがある.Movie = false;
                        this.bチップがある.LeftPedal = false;
                        this.bチップがある.LeftBassDrum = false;
+                       this.bチップがある.FloorTom = false;
                        this.bMovieをFullscreen再生する = false;
                        this.strファイル名 = "";
                        this.strフォルダ名 = "";
@@ -606,7 +607,6 @@ namespace DTXMania
                                //                              Debug.WriteLine(strCount);
                                //                              CDTXMania.Instance.app.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, strCount);
                                //                              count++;
-
                                string str = string.IsNullOrEmpty(this.PATH_WAV) ? this.strフォルダ名 : this.PATH_WAV;
                                str = str + cwav.strファイル名;
                                bool bIsDirectSound = (CDTXMania.Instance.Sound管理.CurrentSoundDeviceType == ESoundDeviceType.DirectSound);
index 2e44ad8..7992846 100644 (file)
@@ -85,7 +85,7 @@ namespace DTXMania
                {
                        this.t入力_全入力文字列から(str全入力文字列, 1.0, 0);
                }
-               public unsafe void t入力_全入力文字列から(string str全入力文字列, double db再生速度, int nBGMAdjust)
+               public void t入力_全入力文字列から(string str全入力文字列, double db再生速度, int nBGMAdjust)
                {
                        //DateTime timeBeginLoad = DateTime.Now;
                        //TimeSpan span;
@@ -166,7 +166,7 @@ namespace DTXMania
                                        this.n無限管理VOL = null;
                                        this.n無限管理PAN = null;
                                        this.n無限管理SIZE = null;
-                                       if (!this.bヘッダのみ && this.bレーン情報を確認する)
+                                       if (!this.bヘッダのみ || this.bレーン情報を確認する)
                                        {
                                                #region [ BPM/BMP初期化 ]
                                                CBPM cbpm = null;
@@ -532,50 +532,54 @@ namespace DTXMania
 
                                                // #36177 使用レーン数の表示 add ikanick 16.03.20
                                                #region [ 使用レーン数カウント ]
-
-                                               for (EPart inst = EPart.Drums; inst <= EPart.Bass; ++inst)
+                                               #region [Drums]
+                                               if (this.bチップがある.LeftPedal || this.bチップがある.LeftBassDrum)
                                                {
-                                                       this.n使用レーン数[inst] = EUseLanes.Other;
+                                                       this.n使用レーン数.Drums = EUseLanes.Dr_12;
                                                }
-                                               foreach (CChip chip in this.listChip)
+                                               else if (this.bチップがある.FloorTom || this.bチップがある.HHOpen || this.bチップがある.Ride || this.bチップがある.LeftCymbal)
                                                {
-                                                       int ch = (int)chip.eチャンネル番号;
-                                                       if (chip.bDrums可視チップ)
-                                                       {
-                                                               if (this.n使用レーン数.Drums == EUseLanes.Other) this.n使用レーン数.Drums = EUseLanes.Dr_6;
-                                                               if ( ( this.n使用レーン数.Drums != EUseLanes.Dr_10 ) && ( this.n使用レーン数.Drums != EUseLanes.Dr_12 ) )
-                                                               {
-                                                                       if ((chip.eチャンネル番号 == EChannel.FloorTom)
-                                                                       || (chip.eチャンネル番号 == EChannel.HiHatOpen)
-                                                                       || (chip.eチャンネル番号 == EChannel.RideCymbal)
-                                                                       || (chip.eチャンネル番号 == EChannel.LeftCymbal))
-                                                                       {
-                                                                               this.n使用レーン数.Drums = EUseLanes.Dr_10;
-                                                                       }
-                                                               }
-                                                               if (this.n使用レーン数.Drums != EUseLanes.Dr_12)
-                                                               {
-                                                                       if ((chip.eチャンネル番号 == EChannel.LeftPedal)
-                                                                       || (chip.eチャンネル番号 == EChannel.LeftBassDrum))
-                                                                       {
-                                                                               this.n使用レーン数.Drums = EUseLanes.Dr_12;
-                                                                       }
-                                                               }
-                                                       }
-                                                       if (chip.bGuitar可視チップ)
-                                                       {
-                                                               // 5レーン未対応
-                                                               if ( this.n使用レーン数.Guitar == EUseLanes.Other ) this.n使用レーン数.Guitar = EUseLanes.GB_3;
-                                                       }
-                                                       if (chip.bBass可視チップ)
-                                                       {
-                                                               // 5レーン未対応
-                                                               if ( this.n使用レーン数.Bass == EUseLanes.Other ) this.n使用レーン数.Bass = EUseLanes.GB_3;
-                                                       }
+                                                       this.n使用レーン数.Drums = EUseLanes.Dr_10;
+                                               }
+                                               else if (this.bチップがある.Drums)
+                                               {
+                                                       this.n使用レーン数.Drums = EUseLanes.Dr_6;
+                                               }
+                                               else
+                                               {
+                                                       this.n使用レーン数.Drums = EUseLanes.Other;
                                                }
-                                               //Trace.TraceInformation( "LeftPedal使用=" + this.bチップがある.LeftPedal );
-                                               //Trace.TraceInformation( "LeftBass使用 =" + this.bチップがある.LeftBassDrum );
-                                               //Trace.TraceInformation( "Lane Type    =" + this.n使用レーン数.Drums );
+                                               #endregion
+                                               #region [Guitar]
+                                               if ( this.bチップがある.Guitar)
+                                               {
+                                                       // 5レーン未対応
+                                                       this.n使用レーン数.Guitar = EUseLanes.GB_3;
+                                               }
+                                               else
+                                               {
+                                                       this.n使用レーン数.Guitar = EUseLanes.Other;
+                                               }
+                                               #endregion
+                                               #region [Bass]
+                                               if (this.bチップがある.Bass)
+                                               {
+                                                       // 5レーン未対応
+                                                       this.n使用レーン数.Bass = EUseLanes.GB_3;
+                                               }
+                                               else
+                                               {
+                                                       this.n使用レーン数.Bass = EUseLanes.Other;
+                                               }
+                                               #endregion
+                                               //Trace.TraceInformation("FloorTom使用 =" + this.bチップがある.FloorTom);
+                                               //Trace.TraceInformation("HiHatOpen使用=" + this.bチップがある.HHOpen);
+                                               //Trace.TraceInformation("RideCymbal使用=" + this.bチップがある.Ride);
+                                               //Trace.TraceInformation("LeftCymbal使用=" + this.bチップがある.LeftCymbal);
+                                               //Trace.TraceInformation("LeftPedal使用=" + this.bチップがある.LeftPedal);
+                                               //Trace.TraceInformation("LeftBass使用 =" + this.bチップがある.LeftBassDrum);
+                                               //Trace.TraceInformation("Drumsチップあり =" + this.bチップがある.Drums);
+                                               //Trace.TraceInformation("Lane Type    =" + this.n使用レーン数.Drums);
                                                #endregion
 
                                                //span = (TimeSpan) ( DateTime.Now - timeBeginLoad );
@@ -1160,7 +1164,15 @@ namespace DTXMania
                                }
                                //-----------------
                                #endregion
-                               else if (!this.bヘッダのみ)    // ヘッダのみの解析の場合、以下は無視。
+                               else if (this.bヘッダのみ && this.bレーン情報を確認する) // ヘッダのみ、かつbLoadDetailDTX==trueの場合は、チップの配置のみ実行。
+                               {
+                                       this.t入力_行解析_チップ配置(strコマンド, strパラメータ, strコメント);
+                               }
+                               //else if (!this.bヘッダのみ && this.bレーン情報を確認する)   // ヘッダのみ、かつbLoadDetailDTX==trueの場合は、チップの配置のみ実行。
+                               //{
+                               //      this.t入力_行解析_チップ配置(strコマンド, strパラメータ, strコメント);
+                               //}
+                               else if (!this.bヘッダのみ)        // ヘッダのみの解析の場合、以下は無視。
                                {
                                        #region [ PANEL ]
                                        //-----------------
@@ -2820,6 +2832,9 @@ namespace DTXMania
                                this.bチップがある.OpenBass |= chip[EChannel.Bass_Open];
                                this.bチップがある.BGA |= chip.bBGALayer;
                                this.bチップがある.Movie |= chip.bMovie;
+
+                               this.bチップがある.FloorTom |= chip[EChannel.FloorTom];
+
                                if (chip.bMovie)
                                {
                                        if (chip[EChannel.MovieFull] || CDTXMania.Instance.ConfigIni.bForceScalingAVI)
index fc7b66d..3baa80f 100644 (file)
@@ -570,6 +570,13 @@ namespace DTXMania
                        public bool LeftPedal;
                        public bool LeftBassDrum;
 
+                       public bool FloorTom;
+
+                       public bool GuitarY;
+                       public bool GuitarP;
+                       public bool BassY;
+                       public bool BassP;
+
                        public bool this[EPart inst]
                        {
                                get
@@ -626,6 +633,21 @@ namespace DTXMania
 
                                                case 9:
                                                        return this.LeftBassDrum;
+
+                                               case 10:
+                                                       return this.FloorTom;
+
+                                               case 11:
+                                                       return this.GuitarY;
+
+                                               case 12:
+                                                       return this.GuitarP;
+
+                                               case 13:
+                                                       return this.BassY;
+
+                                               case 14:
+                                                       return this.BassP;
                                        }
                                        throw new IndexOutOfRangeException();
                                }
@@ -672,6 +694,26 @@ namespace DTXMania
                                                case 9:
                                                        this.LeftBassDrum = value;
                                                        return;
+
+                                               case 10:
+                                                       this.FloorTom = value;
+                                                       return;
+
+                                               case 11:
+                                                       this.GuitarY = value;
+                                                       return;
+
+                                               case 12:
+                                                       this.GuitarP = value;
+                                                       return;
+
+                                               case 13:
+                                                       this.BassY= value;
+                                                       return;
+
+                                               case 14:
+                                                       this.BassP = value;
+                                                       return;
                                        }
                                        throw new IndexOutOfRangeException();
                                }
index e213037..a5168e3 100644 (file)
@@ -1492,6 +1492,8 @@ namespace DTXMania
                        int n使用レーン数 = 0;
                        switch (e使用レーン数)
                        {
+                               //case EUseLanes.None:  n使用レーン数 = 90; break;
+                               //case EUseLanes.Other: n使用レーン数 = 99; break;
                                case EUseLanes.Dr_6             : n使用レーン数 = 6; break;
                                case EUseLanes.Dr_10    : n使用レーン数 = 10; break;
                                case EUseLanes.Dr_12    : n使用レーン数 = 12; break;