OSDN Git Service

#26007 branchで適用した修正を、trunkにmergeした。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / スコア、曲 / CDTX.cs
index e3767d8..96f6516 100644 (file)
@@ -2197,60 +2197,40 @@ namespace DTXMania
                                str = str + cwav.strファイル名;\r
                                try\r
                                {\r
-                                       for( int i = 0; i < 4; i++ )\r
-                                       {\r
                                                try\r
                                                {\r
-                                                       cwav.rSound[i] = CDTXMania.Sound管理.tサウンドを生成する(str);\r
-                                                       cwav.rSound[ i ].n音量 = 100;\r
-                                                       if( ( i == 0 ) && CDTXMania.ConfigIni.bLog作成解放ログ出力 )\r
+                                                       cwav.rSound[ 0 ] = CDTXMania.Sound管理.tサウンドを生成する(str);\r
+                                                       cwav.rSound[ 0 ].n音量 = 100;\r
+                                                       if( CDTXMania.ConfigIni.bLog作成解放ログ出力 )\r
                                                        {\r
-                                                               Trace.TraceInformation( "サウンドを作成しました。({3})({0})({1})({2}bytes)", cwav.strコメント文, str, cwav.rSound[ i ].nサウンドバッファサイズ, cwav.rSound[ i ].bストリーム再生する ? "Stream" : "OnMemory" );\r
+                                                               Trace.TraceInformation( "サウンドを作成しました。({3})({0})({1})({2}bytes)", cwav.strコメント文, str, cwav.rSound[ 0 ].nサウンドバッファサイズ, cwav.rSound[ 0 ].bストリーム再生する ? "Stream" : "OnMemory" );\r
                                                        }\r
                                                }\r
                                                catch\r
                                                {\r
-                                                       cwav.rSound[ i ] = null;\r
-                                                       if( i == 0 )\r
+                                                       cwav.rSound[ 0 ] = null;\r
+                                                       Trace.TraceError( "サウンドの作成に失敗しました。({0})({1})", cwav.strコメント文, str );\r
+                                               }\r
+                                               if ( cwav.rSound[ 0 ] == null || cwav.rSound[ 0 ].bストリーム再生する )\r
+                                               {\r
+                                                       for ( int j = 1; j < cwav.rSound.GetLength(0); j++ )\r
                                                        {\r
-                                                               Trace.TraceError( "サウンドの作成に失敗しました。({0})({1})", cwav.strコメント文, str );\r
+                                                               cwav.rSound[ j ] = null;\r
                                                        }\r
                                                }\r
-                                               if( ( cwav.rSound[ i ] != null ) && cwav.rSound[ i ].bストリーム再生する )\r
+                                               else\r
                                                {\r
-                                                       break;\r
+                                                       for ( int j = 1; j < cwav.rSound.GetLength(0); j++ )\r
+                                                       {\r
+                                                               cwav.rSound[ j ] = (CSound) cwav.rSound[ 0 ].Clone();   // #24007 2011.9.5 yyagi add: to accelerate loading chip sounds\r
+                                                               CDTXMania.Sound管理.tサウンドを登録する( cwav.rSound[ j ] );\r
+                                                       }\r
                                                }\r
-//                                             Type t = typeof(CSound);\r
-//                                             MethodInfo[] methods = t.GetMethods(\r
-//                                                     BindingFlags.Public | BindingFlags.NonPublic |\r
-//                                                     BindingFlags.Instance | BindingFlags.Static\r
-//                                             );\r
-\r
-//                                             for (int j = 1; j < 3; j++)\r
-//                                             {\r
-//                                                     SlimDX.DirectSound.SoundBuffer result;\r
-//                                                     CDTXMania.Sound管理.Device.DuplicateSoundBuffer(\r
-//                                                             cwav.rSound[0].Buffer,\r
-//                                                             out result);\r
-//                                                     cwav.rSound[j].Buffer = (SlimDX.DirectSound.SecondarySoundBuffer)result;\r
-//                                                     cwav.rSound[j].bストリーム再生する = cwav.rSound[0].bストリーム再生する;\r
-//                                                     cwav.rSound[j].bループする\r
-//                                                     foreach(MethodInfo m in methods) {\r
-//                                                             if (m cwav..rSound[j].\r
-//                                             }\r
-//                                             cwav.rSound[0].Buffer.\r
-\r
-//                                             cwav.rSound[1] = cwav.rSound[0];                // #24007 2010.11.23 yyagi add: to accelerate loading chip sounds\r
-//                                             cwav.rSound[2] = cwav.rSound[0];                //\r
-//                                             cwav.rSound[3] = cwav.rSound[0];                //\r
-//                                             break;                                                                  //\r
-                                       }\r
-                                       continue;\r
                                }\r
                                catch( Exception exception )\r
                                {\r
                                        Trace.TraceError( "サウンドの生成に失敗しました。({0})({1})({2})", exception.Message, cwav.strコメント文, str );\r
-                                       for( int j = 0; j < 4; j++ )\r
+                                       for( int j = 0; j < cwav.rSound.GetLength(0); j++ )\r
                                        {\r
                                                cwav.rSound[ j ] = null;\r
                                        }\r