예제 #1
0
 private void tSelectSong()          // t曲を選択する
 {
     this.rConfirmedSong           = this.actSongList.rSelectedSong;
     this.rChosenScore             = this.actSongList.rSelectedScore;
     this.nConfirmedSongDifficulty = this.actSongList.n現在選択中の曲の現在の難易度レベル;
     if ((this.rConfirmedSong != null) && (this.rChosenScore != null))
     {
         this.eReturnValueWhenFadeOutCompleted = EReturnValue.Selected;
         //	this.actFOtoNowLoading.tStartFadeOut();				// #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略
         base.ePhaseID = CStage.EPhase.選曲_NowLoading画面へのフェードアウト;
     }
     CDTXMania.Skin.bgm選曲画面.t停止する();
 }
예제 #2
0
        private void tSelectSongRandomly()
        {
            CSongListNode song = this.actSongList.rSelectedSong;

            if ((song.stackRandomPerformanceNumber.Count == 0) || (song.listランダム用ノードリスト == null))
            {
                if (song.listランダム用ノードリスト == null)
                {
                    song.listランダム用ノードリスト = this.t指定された曲が存在する場所の曲を列挙する_子リスト含む(song);
                }
                int count = song.listランダム用ノードリスト.Count;
                if (count == 0)
                {
                    return;
                }
                int[] numArray = new int[count];
                for (int i = 0; i < count; i++)
                {
                    numArray[i] = i;
                }
                for (int j = 0; j < (count * 1.5); j++)
                {
                    int index = CDTXMania.Random.Next(count);
                    int num5  = CDTXMania.Random.Next(count);
                    int num6  = numArray[num5];
                    numArray[num5]  = numArray[index];
                    numArray[index] = num6;
                }
                for (int k = 0; k < count; k++)
                {
                    song.stackRandomPerformanceNumber.Push(numArray[k]);
                }
                if (CDTXMania.ConfigIni.bLogDTX詳細ログ出力)
                {
                    StringBuilder builder = new StringBuilder(0x400);
                    builder.Append(string.Format("ランダムインデックスリストを作成しました: {0}曲: ", song.stackRandomPerformanceNumber.Count));
                    for (int m = 0; m < count; m++)
                    {
                        builder.Append(string.Format("{0} ", numArray[m]));
                    }
                    Trace.TraceInformation(builder.ToString());
                }
            }
            this.rConfirmedSong                   = song.listランダム用ノードリスト[song.stackRandomPerformanceNumber.Pop()];
            this.nConfirmedSongDifficulty         = this.actSongList.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(this.rConfirmedSong);
            this.rChosenScore                     = this.rConfirmedSong.arScore[this.nConfirmedSongDifficulty];
            this.eReturnValueWhenFadeOutCompleted = EReturnValue.Selected;
            //	this.actFOtoNowLoading.tStartFadeOut();					// #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略
            base.ePhaseID = CStage.EPhase.選曲_NowLoading画面へのフェードアウト;
            if (CDTXMania.ConfigIni.bLogDTX詳細ログ出力)
            {
                int[]         numArray2 = song.stackRandomPerformanceNumber.ToArray();
                StringBuilder builder2  = new StringBuilder(0x400);
                builder2.Append("ランダムインデックスリスト残り: ");
                if (numArray2.Length > 0)
                {
                    for (int n = 0; n < numArray2.Length; n++)
                    {
                        builder2.Append(string.Format("{0} ", numArray2[n]));
                    }
                }
                else
                {
                    builder2.Append("(なし)");
                }
                Trace.TraceInformation(builder2.ToString());
            }
            CDTXMania.Skin.bgm選曲画面.t停止する();
        }