OSDN Git Service

#36057 configファイルがxml化したため、従来Config.iniファイルを直接編集することでのみ設定変更できていた項目が、設定変更しづらくなった。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Fri, 22 Jul 2016 16:36:07 +0000 (16:36 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Fri, 22 Jul 2016 16:36:07 +0000 (16:36 +0000)
そのため、VelocityMin関係と、HitRamge関係を、CONFIGURATIONから設定できるようにした。
それぞれ、CONFIGURATION/Drums/E-Drums Option, CONFIGURATION/Drums/HitRange Option で設定する。

#35906 DTXMania実行中に、動的に言語情報を切り替えられるようにした。それに伴い、COption関連の初期化方法を追加した。
#35906 resources.csvファイルを、System/ フォルダに移動した。
#36043 曲選択画面でBD-HTと操作すると表示されるソートメニューが正しく表示されていなかった問題を修正。また、この部分も多言語化対応した。
#36128 演奏時の曲名と難易度ラベルが表示されなくなっていた問題を修正。
なおset.defで定義した難易度も表示するのは、タイトルにそれと同じ難易度の文字列がない場合に限る。

#xxxxx Config.xml内のstrDTXManiaVersionが更新されない問題を修正。
#xxxxx 余計なデバッグメッセージの削除。

git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@1001 16f42ceb-6dc6-49c8-ba94-f2d53467949d

14 files changed:
DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CActConfigList.cs
DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CConfigXml.cs
DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/COption.cs
DTXManiaプロジェクト/コード/ステージ/05.選曲/CActSortSongs.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXManiaプロジェクト/コード/全体/CDTXMania.cs
DTXManiaプロジェクト/コード/全体/CResources.cs
FDK17プロジェクト/コード/00.共通/CPowerPlan.cs
実行時フォルダ(DTXCreator)/dll/FDK.dll
実行時フォルダ/DTXManiaGR.exe
実行時フォルダ/System/resources.csv [moved from 実行時フォルダ/resources.csv with 85% similarity]
実行時フォルダ/System/resources.xlsx [new file with mode: 0644]
実行時フォルダ/dll/FDK.dll
実行時フォルダ/resources.xlsx [deleted file]

index 9e38d74..fdb8f6c 100644 (file)
@@ -14,6 +14,8 @@ namespace DTXMania
                STDGBSValue<COptionLabel> ReturnToMenu;\r
                STDGBSValue<COptionLabel> KeyAssignMenu;\r
                STDGBSValue<COptionLabel> DisplayMenu;\r
+               STDGBSValue<COptionLabel> EDrumsMenu;\r
+               COptionLabel HitRangeMenu;\r
                COptionStringList skins;\r
 \r
                bool b項目リスト側にフォーカスがある;\r
@@ -146,6 +148,14 @@ namespace DTXMania
                        {\r
                                t項目リストの設定(Eメニュー種別.Bass);\r
                        }\r
+                       else if (this.eメニュー種別 == Eメニュー種別.EDrumsSettings)\r
+                       {\r
+                               t項目リストの設定(Eメニュー種別.Drums);\r
+                       }\r
+                       else if (this.eメニュー種別 == Eメニュー種別.HitRangeSettings)\r
+                       {\r
+                               t項目リストの設定(Eメニュー種別.System);\r
+                       }\r
                }\r
 \r
                public bool tEnter押下()\r
@@ -311,6 +321,27 @@ namespace DTXMania
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nMinComboDisp.Bass);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bGraph.Bass);\r
                        }\r
+                       else if (eMenu == Eメニュー種別.EDrumsSettings)\r
+                       {\r
+                               list項目リスト.Add(ReturnToMenu.Drums);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.LC);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.HH);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.SD);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.BD);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.HT);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.LT);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.FT);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.CY);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.RD);\r
+                       }\r
+                       else if (eMenu == Eメニュー種別.HitRangeSettings)\r
+                       {\r
+                               list項目リスト.Add(ReturnToMenu.System);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nHitRange.Perfect);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nHitRange.Great);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nHitRange.Good);\r
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nHitRange.Poor);\r
+                       }\r
                        else if (eMenu == Eメニュー種別.KeyAssignSystem)\r
                        {\r
                                list項目リスト.Add(ReturnToMenu.System);\r
@@ -365,7 +396,7 @@ namespace DTXMania
                        {\r
                                list項目リスト.Add(ReturnToMenu.System);\r
                                COptionStringList langlist = new COptionStringList("default");\r
-                               langlist.Initialize(cr.Label("strCfgLanguage"), cr.Explanation("strCfgLanguage"), cr.LanguageList );\r
+                               langlist.Initialize( "strCfgLanguage", cr.LanguageDispList );\r
                                langlist.Index = CDTXMania.Instance.Resources.LanguageCodeIndex;\r
                                langlist.OnEnterDelegate = () =>\r
                                {\r
@@ -376,7 +407,7 @@ namespace DTXMania
                                list項目リスト.Add( langlist );\r
                        \r
                                COptionString enumsongs = new COptionString("");\r
-                               enumsongs.Initialize( cr.Label("strCfgSysEnumSongs"), cr.Explanation("strCfgSysEnumSongs") );\r
+                               enumsongs.Initialize( "strCfgSysEnumSongs" );\r
                                list項目リスト.Add(enumsongs);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.eDark);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nRisky);\r
@@ -409,6 +440,7 @@ namespace DTXMania
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bUseBoxDefSkin);\r
                                list項目リスト.Add(skins);\r
                                list項目リスト.Add(DisplayMenu.System);\r
+                               list項目リスト.Add(HitRangeMenu);\r
                                list項目リスト.Add(KeyAssignMenu.System);\r
                                enumsongs.OnEnterDelegate = () =>\r
                                {\r
@@ -429,7 +461,7 @@ namespace DTXMania
                        {\r
                                list項目リスト.Add(ReturnToMenu.Drums);\r
                                COptionEnum<EThreeState> AllAuto = new COptionEnum<EThreeState>(EThreeState.X);\r
-                               AllAuto.Initialize( cr.Label("strCfgDrAllAuto"), cr.Explanation("strCfgDrAllAuto"), typeof(EThreeState));\r
+                               AllAuto.Initialize( "strCfgDrAllAuto", typeof(EThreeState));\r
                                AllAuto.OnEnterDelegate = () =>\r
                                {\r
                                        if ( AllAuto.Value == EThreeState.X )\r
@@ -458,13 +490,14 @@ namespace DTXMania
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bDrumsHitSound);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bEmphasizePlaySound.Drums);\r
                                list項目リスト.Add(DisplayMenu.Drums);\r
+                               list項目リスト.Add(EDrumsMenu.Drums);\r
                                list項目リスト.Add(KeyAssignMenu.Drums);\r
                        }\r
                        else if (eMenu == Eメニュー種別.Guitar)\r
                        {\r
                                list項目リスト.Add(ReturnToMenu.Guitar);\r
                                COptionEnum<EThreeState> AllAuto = new COptionEnum<EThreeState>(EThreeState.X);\r
-                               AllAuto.Initialize( cr.Label("strCfgDrAllAuto"), cr.Explanation("strCfgDrAllAuto"), typeof(EThreeState));\r
+                               AllAuto.Initialize( "strCfgDrAllAuto", typeof(EThreeState));\r
                                AllAuto.OnEnterDelegate = () =>\r
                                {\r
                                        if ( AllAuto.Value == EThreeState.X )\r
@@ -490,7 +523,7 @@ namespace DTXMania
                        {\r
                                list項目リスト.Add(ReturnToMenu.Bass);\r
                                COptionEnum<EThreeState> AllAuto = new COptionEnum<EThreeState>(EThreeState.X);\r
-                               AllAuto.Initialize( cr.Label("strCfgDrAllAuto"), cr.Explanation("strCfgDrAllAuto"), typeof(EThreeState));\r
+                               AllAuto.Initialize( "strCfgDrAllAuto", typeof(EThreeState));\r
                                AllAuto.OnEnterDelegate = () =>\r
                                {\r
                                        if ( AllAuto.Value == EThreeState.X )\r
@@ -567,18 +600,23 @@ namespace DTXMania
                                this.nスクロール用タイマ値 = -1;\r
                                this.ct三角矢印アニメ = new CCounter();\r
 \r
+\r
                                DisplayMenu = new STDGBSValue<COptionLabel>();\r
                                KeyAssignMenu = new STDGBSValue<COptionLabel>();\r
+                               EDrumsMenu = new STDGBSValue<COptionLabel>();\r
                                ReturnToMenu = new STDGBSValue<COptionLabel>();\r
 \r
                                CResources cr = CDTXMania.Instance.Resources;\r
-                               for (EPart i = EPart.Drums; i <= EPart.System; ++i)\r
+                               for ( EPart i = EPart.Drums; i <= EPart.System; ++i )\r
                                {\r
-                                       DisplayMenu[i] = new COptionLabel( cr.Label("strCfgDisplayOption"), cr.Explanation("strCfgDisplayOption") );\r
-                                       KeyAssignMenu[i] = new COptionLabel( cr.Label("strCfgInputOption"), cr.Explanation("strCfgInputOption") );\r
-                                       ReturnToMenu[i] = new COptionLabel( cr.Label("strCfgReturnToMenu"), cr.Explanation("strCfgReturnToMenu") );\r
+                                       DisplayMenu[i] = new COptionLabel( "strCfgDisplayOption" );\r
+                                       KeyAssignMenu[i] = new COptionLabel( "strCfgInputOption" );\r
+                                       ReturnToMenu[i] = new COptionLabel( "strCfgReturnToMenu" );\r
                                }\r
 \r
+                               EDrumsMenu[ EPart.Drums ] = new COptionLabel( "strCfgEDrumsOption" );\r
+                               HitRangeMenu = new COptionLabel( "strCfgHitRangeOption" );\r
+\r
                                DisplayMenu.Drums.OnEnterDelegate = () =>\r
                                {\r
                                        t項目リストの設定(Eメニュー種別.DisplayDrums);\r
@@ -629,6 +667,14 @@ namespace DTXMania
                                {\r
                                        t項目リストの設定(Eメニュー種別.System);\r
                                };\r
+                               EDrumsMenu.Drums.OnEnterDelegate = () =>\r
+                               {\r
+                                       t項目リストの設定(Eメニュー種別.EDrumsSettings);\r
+                               };\r
+                               HitRangeMenu.OnEnterDelegate = () =>\r
+                               {\r
+                                       t項目リストの設定( Eメニュー種別.HitRangeSettings );\r
+                               };\r
 \r
                                #region [ スキン選択肢と、現在選択中のスキン(index)の準備 #28195 2012.5.2 yyagi ]\r
                                int ns = (CDTXMania.Instance.Skin.strSystemSkinSubfolders == null) ? 0 : CDTXMania.Instance.Skin.strSystemSkinSubfolders.Length;\r
@@ -1097,6 +1143,8 @@ namespace DTXMania
                        DisplayDrums,\r
                        DisplayGuitar,\r
                        DisplayBass,\r
+                       EDrumsSettings,\r
+                       HitRangeSettings,\r
                        Unknown\r
                }\r
 \r
index af5fc2f..84526a3 100644 (file)
@@ -518,6 +518,7 @@ namespace DTXMania
                                nVelocityMin[pad] = new COptionInteger(0);\r
                        }\r
                        nVelocityMin.HH.Value = 20;\r
+\r
                        nRisky = new COptionInteger(0);\r
                        nWASAPIBufferSizeMs = new COptionInteger(50);\r
                        nChipDisplayTimeMs = new COptionInteger(3000);\r
@@ -681,53 +682,53 @@ namespace DTXMania
                {\r
                        // ラベル・説明文・上下限値\r
                        CResources cr = CDTXMania.Instance.Resources;\r
-                       bFullScreen.Initialize( cr.Label("strCfgSysFullScreen"), cr.Explanation("strCfgSysFullScreen") );\r
-                       bVSyncWait.Initialize( cr.Label("strCfgSysVSync"), cr.Explanation("strCfgSysVSync") );\r
-                       bStageFailed.Initialize( cr.Label("strCfgSysStageFailed"), cr.Explanation("strCfgSysStageFailed") );\r
-                       bFullAVI.Initialize( cr.Label("strCfgSysFullAVI"), cr.Explanation("strCfgSysFullAVI") );\r
-                       bAVI.Initialize( cr.Label("strCfgSysAVI"), cr.Explanation("strCfgSysAVI") );\r
-                       bBGA.Initialize( cr.Label("strCfgSysBGA"), cr.Explanation("strCfgSysBGA" ) );\r
-                       bLog.Initialize( cr.Label("strCfgSysLog"), cr.Explanation("strCfgSysLog") );\r
-                       bStoicMode.Initialize( cr.Label("strCfgSysStoic"), cr.Explanation("strCfgSysStoic") );\r
-                       bWaveAdjust.Initialize( cr.Label("strCfgSysAdjustWaves"), cr.Explanation("strCfgSysAdjustWaves") );\r
-                       bBGMPlay.Initialize( cr.Label("strCfgSysBGM"), cr.Explanation("strCfgSysBGM") );\r
-                       bAudience.Initialize( cr.Label("strCfgSysAudience"), cr.Explanation("strCfgSysAudience") );\r
-                       bScoreIni.Initialize( cr.Label("strCfgSysSaveScoreIni"), cr.Explanation("strCfgSysSaveScoreIni") );\r
-                       bRandSubBox.Initialize( cr.Label("strCfgSysRandSubBox"), cr.Explanation("strCfgSysRandSubBox") );\r
-                       bAutoPlay.HH.Initialize( cr.Label("strCfgDrAutoHHC"), cr.Explanation("strCfgDrAutoHHC") );\r
-                       bAutoPlay.HHO.Initialize( cr.Label("strCfgDrAutoHHO"), cr.Explanation("strCfgDrAutoHHO") );\r
-                       bAutoPlay.SD.Initialize( cr.Label("strCfgDrAutoSD"), cr.Explanation("strCfgDrAutoSD") );\r
-                       bAutoPlay.BD.Initialize( cr.Label("strCfgDrAutoBD"), cr.Explanation("strCfgDrAutoBD") );\r
-                       bAutoPlay.HT.Initialize( cr.Label("strCfgDrAutoHT"), cr.Explanation("strCfgDrAutoHT") );\r
-                       bAutoPlay.LT.Initialize( cr.Label("strCfgDrAutoLT"), cr.Explanation("strCfgDrAutoLT") );\r
-                       bAutoPlay.FT.Initialize( cr.Label("strCfgDrAutoFT"), cr.Explanation("strCfgDrAutoFT") );\r
-                       bAutoPlay.CY.Initialize( cr.Label("strCfgDrAutoCY"), cr.Explanation("strCfgDrAutoCY") );\r
-                       bAutoPlay.RD.Initialize( cr.Label("strCfgDrAutoRD"), cr.Explanation("strCfgDrAutoRD") );\r
-                       bAutoPlay.LC.Initialize( cr.Label("strCfgDrAutoLCY"), cr.Explanation("strCfgDrAutoLCY") );\r
-                       bAutoPlay.GtR.Initialize( cr.Label( "strCfgGtAutoR" ), cr.Explanation( "strCfgGtAutoR" ) );\r
-                       bAutoPlay.GtG.Initialize( cr.Label( "strCfgGtAutoG" ), cr.Explanation( "strCfgGtAutoG" ) );\r
-                       bAutoPlay.GtB.Initialize( cr.Label( "strCfgGtAutoB" ), cr.Explanation( "strCfgGtAutoB" ) );\r
-                       bAutoPlay.GtPick.Initialize( cr.Label( "strCfgGtAutoPick" ), cr.Explanation( "strCfgGtAutoPick" ) );\r
-                       bAutoPlay.GtWail.Initialize( cr.Label( "strCfgGtAutoWailing" ), cr.Explanation( "strCfgGtAutoWailing" ) );\r
-                       bAutoPlay.BsR.Initialize( cr.Label( "strCfgBsAutoR" ), cr.Explanation( "strCfgBsAutoR" ) );\r
-                       bAutoPlay.BsG.Initialize( cr.Label( "strCfgBsAutoG" ), cr.Explanation( "strCfgBsAutoG" ) );\r
-                       bAutoPlay.BsB.Initialize( cr.Label( "strCfgBsAutoB" ), cr.Explanation( "strCfgBsAutoB" ) );\r
-                       bAutoPlay.BsPick.Initialize( cr.Label( "strCfgBsAutoPick" ), cr.Explanation( "strCfgBsAutoPick" ) );\r
-                       bAutoPlay.BsWail.Initialize( cr.Label( "strCfgBsAutoWailing" ), cr.Explanation( "strCfgBsAutoWailing" ) );\r
-\r
-                       bLoadSoundSpeed.Initialize( cr.Label("strCfgSysSoundLoadLimiter"), cr.Explanation("strCfgSysSoundLoadLimiter") );\r
-                       bIsAutoResultCapture.Initialize( cr.Label("strCfgSysAutoResultCapture"), cr.Explanation("strCfgSysAutoResultCapture") );\r
-                       bBufferedInput.Initialize( cr.Label("strCfgSysBufferingInput"), cr.Explanation("strCfgSysBufferingInput") );\r
-                       bUseBoxDefSkin.Initialize( cr.Label("strCfgSysUseBoxDefSkin"), cr.Explanation("strCfgSysUseBoxDefSkin") );\r
-                       bUseOSTimer.Initialize( cr.Label("strCfgSysUseOSTimer"), cr.Explanation("strCfgSysUseOSTimer") );\r
-                       bTimeStretch.Initialize( cr.Label("strCfgSysTimeStretch"),  cr.Explanation("strCfgSysTimeStretch") );\r
-                       bForceHighPowerPlan.Initialize( cr.Label("strCfgSysForceHighPowerPlan"), cr.Explanation("strCfgSysForceHighPowerPlan") );\r
-                       bEventDrivenWASAPI.Initialize( cr.Label("strCfgSysWASAPIEventDriven"), cr.Explanation("strCfgSysWASAPIEventDriven") );\r
-\r
-                       bCymbalFree.Initialize( cr.Label("strCfgDrCymbalFree"), cr.Explanation("strCfgDrCymbalFree") );\r
-                       bDrumsHitSound.Initialize( cr.Label("strCfgDrChipSound"), cr.Explanation("strCfgDrChipSound") );\r
-                       bFillin.Initialize( cr.Label("strCfgDrFillin"), cr.Explanation("strCfgDrFillin") );\r
-                       bTight.Initialize( cr.Label("strCfgDrTight"), cr.Explanation("strCfgDrTight") );\r
+                       bFullScreen.Initialize( "strCfgSysFullScreen" );\r
+                       bVSyncWait.Initialize( "strCfgSysVSync" );\r
+                       bStageFailed.Initialize( "strCfgSysStageFailed" );\r
+                       bFullAVI.Initialize( "strCfgSysFullAVI" );\r
+                       bAVI.Initialize( "strCfgSysAVI" );\r
+                       bBGA.Initialize( "strCfgSysBGA" );\r
+                       bLog.Initialize( "strCfgSysLog" );\r
+                       bStoicMode.Initialize( "strCfgSysStoic" );\r
+                       bWaveAdjust.Initialize( "strCfgSysAdjustWaves" );\r
+                       bBGMPlay.Initialize( "strCfgSysBGM" );\r
+                       bAudience.Initialize( "strCfgSysAudience" );\r
+                       bScoreIni.Initialize( "strCfgSysSaveScoreIni" );\r
+                       bRandSubBox.Initialize( "strCfgSysRandSubBox" );\r
+                       bAutoPlay.HH.Initialize( "strCfgDrAutoHHC" );\r
+                       bAutoPlay.HHO.Initialize( "strCfgDrAutoHHO" );\r
+                       bAutoPlay.SD.Initialize( "strCfgDrAutoSD" );\r
+                       bAutoPlay.BD.Initialize( "strCfgDrAutoBD" );\r
+                       bAutoPlay.HT.Initialize( "strCfgDrAutoHT" );\r
+                       bAutoPlay.LT.Initialize( "strCfgDrAutoLT" );\r
+                       bAutoPlay.FT.Initialize( "strCfgDrAutoFT" );\r
+                       bAutoPlay.CY.Initialize( "strCfgDrAutoCY" );\r
+                       bAutoPlay.RD.Initialize( "strCfgDrAutoRD" );\r
+                       bAutoPlay.LC.Initialize( "strCfgDrAutoLCY" );\r
+                       bAutoPlay.GtR.Initialize( "strCfgGtAutoR" );\r
+                       bAutoPlay.GtG.Initialize( "strCfgGtAutoG" );\r
+                       bAutoPlay.GtB.Initialize( "strCfgGtAutoB" );\r
+                       bAutoPlay.GtPick.Initialize( "strCfgGtAutoPick" );\r
+                       bAutoPlay.GtWail.Initialize( "strCfgGtAutoWailing" );\r
+                       bAutoPlay.BsR.Initialize( "strCfgBsAutoR" );\r
+                       bAutoPlay.BsG.Initialize( "strCfgBsAutoG" );\r
+                       bAutoPlay.BsB.Initialize( "strCfgBsAutoB" );\r
+                       bAutoPlay.BsPick.Initialize( "strCfgBsAutoPick" );\r
+                       bAutoPlay.BsWail.Initialize( "strCfgBsAutoWailing" );\r
+\r
+                       bLoadSoundSpeed.Initialize( "strCfgSysSoundLoadLimiter" );\r
+                       bIsAutoResultCapture.Initialize( "strCfgSysAutoResultCapture" );\r
+                       bBufferedInput.Initialize( "strCfgSysBufferingInput" );\r
+                       bUseBoxDefSkin.Initialize( "strCfgSysUseBoxDefSkin" );\r
+                       bUseOSTimer.Initialize( "strCfgSysUseOSTimer" );\r
+                       bTimeStretch.Initialize( "strCfgSysTimeStretch" );\r
+                       bForceHighPowerPlan.Initialize( "strCfgSysForceHighPowerPlan" );\r
+                       bEventDrivenWASAPI.Initialize( "strCfgSysWASAPIEventDriven" );\r
+\r
+                       bCymbalFree.Initialize( "strCfgDrCymbalFree" );\r
+                       bDrumsHitSound.Initialize( "strCfgDrChipSound" );\r
+                       bFillin.Initialize( "strCfgDrFillin" );\r
+                       bTight.Initialize( "strCfgDrTight" );\r
 \r
                        bItalicFontSongSelect.Initialize("", "");\r
                        bBoldFontSongSelect.Initialize("", "");\r
@@ -742,91 +743,91 @@ namespace DTXMania
                        bIsAllowedDoubleClickFullscreen.Initialize("", "");\r
                        bIsEnabledSystemMenu.Initialize("", "");\r
                        bDynamicBassMixerManagement.Initialize("", "");\r
-                       bDebugInfo.Initialize( cr.Label("strCfgSysDebugInfo"), cr.Explanation("strCfgSysDebugInfo") );\r
+                       bDebugInfo.Initialize( "strCfgSysDebugInfo" );\r
 \r
                        // enum\r
-                       nSoundDeviceType.Initialize( cr.Label("strCfgSysSoundDeviceType"), cr.Explanation("strCfgSysSoundDeviceType"), typeof(ESoundDeviceTypeForConfig));\r
-                       eDamageLevel.Initialize( cr.Label("strCfgSysDamageLevel"), cr.Explanation("strCfgSysDamageLevel"), typeof(EDamage));\r
-                       eJudgePriority.Initialize( cr.Label("strCfgSysJudgePriority"), cr.Explanation("strCfgSysJudgePriority"), typeof(EJudgeDisplayPriority));\r
-                       eCYGroup.Initialize( cr.Label("strCfgDrCYGroup"), cr.Explanation("strCfgDrCYGroup"), typeof(ECYGroup));\r
-                       eDark.Initialize( cr.Label("strCfgSysDark"), cr.Explanation("strCfgSysDark"), typeof(EDark));\r
-                       eFTGroup.Initialize( cr.Label("strCfgDrFTGroup"), cr.Explanation("strCfgDrFTGroup"), typeof(EFTGroup));\r
-                       eHHGroup.Initialize( cr.Label("strCfgDrHHGroup"), cr.Explanation("strCfgDrHHGroup"), typeof(EHHGroup));\r
-                       eBDGroup.Initialize( cr.Label("strCfgDrBDGroup"), cr.Explanation("strCfgDrBDGroup"), typeof(EBDGroup));\r
+                       nSoundDeviceType.Initialize( "strCfgSysSoundDeviceType", typeof(ESoundDeviceTypeForConfig));\r
+                       eDamageLevel.Initialize( "strCfgSysDamageLevel", typeof(EDamage));\r
+                       eJudgePriority.Initialize( "strCfgSysJudgePriority", typeof(EJudgeDisplayPriority));\r
+                       eCYGroup.Initialize( "strCfgDrCYGroup", typeof(ECYGroup));\r
+                       eDark.Initialize( "strCfgSysDark", typeof(EDark));\r
+                       eFTGroup.Initialize( "strCfgDrFTGroup", typeof(EFTGroup));\r
+                       eHHGroup.Initialize( "strCfgDrHHGroup", typeof(EHHGroup));\r
+                       eBDGroup.Initialize( "strCfgDrBDGroup", typeof(EBDGroup));\r
                        Backup1BDHHGroup.Initialize("", "", typeof(EHHGroup));\r
                        Backup1BDPriotiry.Initialize("", "", typeof(EHitSoundPriority));\r
-                       eHitSoundPriorityCY.Initialize( cr.Label("strCfgDrCYPriority"), cr.Explanation("strCfgDrCYPriority"), typeof(EHitSoundPriority));\r
-                       eHitSoundPriorityFT.Initialize( cr.Label("strCfgDrFTPriority"), cr.Explanation("strCfgDrFTPriority"), typeof(EHitSoundPriority));\r
-                       eHitSoundPriorityHH.Initialize( cr.Label("strCfgDrHHPriority"), cr.Explanation("strCfgDrHHPriority"), typeof(EHitSoundPriority));\r
+                       eHitSoundPriorityCY.Initialize( "strCfgDrCYPriority", typeof(EHitSoundPriority));\r
+                       eHitSoundPriorityFT.Initialize( "strCfgDrFTPriority", typeof(EHitSoundPriority));\r
+                       eHitSoundPriorityHH.Initialize( "strCfgDrHHPriority", typeof(EHitSoundPriority));\r
 //                     eJudgePriority.Initialize("Judge Priority", Properties.Resources.strCfgSysJudgePriority, typeof(EJudgeDisplayPriority));\r
-                       eActiveInst.Initialize( cr.Label("strCfgSysPlayMode"), cr.Explanation("strCfgSysPlayMode"), typeof(EActiveInstrument));\r
-                       nShowLagType.Initialize( cr.Label("strCfgSysShowLagType"), cr.Explanation("strCfgSysShowLagType"), typeof(EShowLagType));\r
+                       eActiveInst.Initialize( "strCfgSysPlayMode", typeof(EActiveInstrument));\r
+                       nShowLagType.Initialize( "strCfgSysShowLagType", typeof(EShowLagType));\r
 \r
                        // integer\r
                        nSleepPerFrameMs.Initialize("", "");\r
                        nSleepUnfocusMs.Initialize("", "");\r
-                       nBGAlpha.Initialize( cr.Label("strCfgSysBGAAlpha"), cr.Explanation("strCfgSysBGAAlpha"), 0, 255);\r
-                       nPreSoundWeightMs.Initialize( cr.Label("strCfgSysPreSoundWait"), cr.Explanation("strCfgSysPreSoundWait"), 0, 10001);\r
-                       nPreImageWeightMs.Initialize( cr.Label("strCfgSysPreImageWait"), cr.Explanation("strCfgSysPreImageWait"), 0, 10001);\r
+                       nBGAlpha.Initialize( "strCfgSysBGAAlpha", 0, 255);\r
+                       nPreSoundWeightMs.Initialize( "strCfgSysPreSoundWait", 0, 10001);\r
+                       nPreImageWeightMs.Initialize( "strCfgSysPreImageWait", 0, 10001);\r
                        nFontSizeDotSongSelect.Initialize("", "", 5);\r
-                       nAutoVolume.Initialize( cr.Label("strCfgSysAutoVolume"), cr.Explanation("strCfgSysAutoVolume"), 0, 101);\r
-                       nChipVolume.Initialize( cr.Label("strCfgSysChipVolume"), cr.Explanation("strCfgSysChipVolume"), 0, 101);\r
-                       nPlaySpeed.Initialize( cr.Label("strCfgSysPlaySpeed"), cr.Explanation("strCfgSysPlaySpeed"), 5, 41);\r
+                       nAutoVolume.Initialize( "strCfgSysAutoVolume", 0, 101);\r
+                       nChipVolume.Initialize( "strCfgSysChipVolume", 0, 101);\r
+                       nPlaySpeed.Initialize( "strCfgSysPlaySpeed", 5, 41);\r
                        nPlaySpeed.ValueFormatter = (x) =>\r
                        {\r
                                return "x" + (x / 20f).ToString("0.000");\r
                        };\r
-                       nHitRange.Perfect.Initialize("", "", 0);\r
-                       nHitRange.Great.Initialize("", "", 0);\r
-                       nHitRange.Good.Initialize("", "", 0);\r
-                       nHitRange.Poor.Initialize("", "", 0);\r
-                       nVelocityMin.LC.Initialize("", "", 0, 128);\r
-                       nVelocityMin.HH.Initialize("", "", 0, 128);\r
-                       nVelocityMin.SD.Initialize("", "", 0, 128);\r
-                       nVelocityMin.BD.Initialize("", "", 0, 128);\r
-                       nVelocityMin.HT.Initialize("", "", 0, 128);\r
-                       nVelocityMin.LT.Initialize("", "", 0, 128);\r
-                       nVelocityMin.FT.Initialize("", "", 0, 128);\r
-                       nVelocityMin.CY.Initialize("", "", 0, 128);\r
-                       nVelocityMin.RD.Initialize("", "", 0, 128);\r
-                       nRisky.Initialize( cr.Label("strCfgSysRisky"), cr.Explanation("strCfgSysRisky"), 0, 31);\r
-                       nWASAPIBufferSizeMs.Initialize( cr.Label("strCfgSysWASAPIBufSize"), cr.Explanation("strCfgSysWASAPIBufSize"), 0, 100001);\r
+                       nHitRange.Perfect.Initialize( "strCfgRangePerfect", 0 );\r
+                       nHitRange.Great.Initialize( "strCfgRangeGreat", 0 );\r
+                       nHitRange.Good.Initialize( "strCfgRangeGood", 0 );\r
+                       nHitRange.Poor.Initialize( "strCfgRangePoor", 0 );\r
+                       nVelocityMin.LC.Initialize( "strCfgDrLCVelocityMin", 0, 128 );\r
+                       nVelocityMin.HH.Initialize( "strCfgDrHHVelocityMin", 0, 128 );\r
+                       nVelocityMin.SD.Initialize( "strCfgDrSDVelocityMin", 0, 128 );\r
+                       nVelocityMin.BD.Initialize( "strCfgDrBDVelocityMin", 0, 128 );\r
+                       nVelocityMin.HT.Initialize( "strCfgDrHTVelocityMin", 0, 128 );\r
+                       nVelocityMin.LT.Initialize( "strCfgDrLTVelocityMin", 0, 128 );\r
+                       nVelocityMin.FT.Initialize( "strCfgDrFTVelocityMin", 0, 128 );\r
+                       nVelocityMin.CY.Initialize( "strCfgDrCYVelocityMin", 0, 128 );\r
+                       nVelocityMin.RD.Initialize( "strCfgDrRDVelocityMin", 0, 128 );\r
+                       nRisky.Initialize( "strCfgSysRisky", 0, 31 );\r
+                       nWASAPIBufferSizeMs.Initialize( "strCfgSysWASAPIBufSize", 0, 100001);\r
                        nChipDisplayTimeMs.Initialize("", "", 0);\r
                        nChipFadeoutTimeMs.Initialize("", "", 0);\r
 \r
-                       nMasterVolume.Initialize( cr.Label("strCfgSysMasterVolume"), cr.Explanation("strCfgSysMasterVolume"), 0, 101);\r
+                       nMasterVolume.Initialize( "strCfgSysMasterVolume", 0, 101);\r
                        nPoliphonicSounds.Initialize("", "", 1, 11);\r
 \r
                        // dgb\r
                        for (EPart i = EPart.Drums; i <= EPart.Unknown; i++)\r
                        {\r
-                               bEmphasizePlaySound[i].Initialize( cr.Label("strCfgDgbChipSoundMonitor"), cr.Explanation("strCfgDgbChipSoundMonitor") );\r
-                               bReverse[i].Initialize( cr.Label("strCfgDgbReverse"), cr.Explanation("strCfgDgbReverse") );\r
-                               eRandom[i].Initialize( cr.Label("strCfgDgbRandom"), cr.Explanation("strCfgDgbRandom"), typeof(ERandom));\r
-                               bLight[i].Initialize( cr.Label("strCfgDgbLight"), cr.Explanation("strCfgDgbLight") );\r
-                               bDisplayCombo[i].Initialize( cr.Label("strCfgDgbDisplayCombo"), cr.Explanation("strCfgDgbDisplayCombo") );\r
-                               bDisplayJudge[i].Initialize( cr.Label("strCfgDgbDisplayJudge"), cr.Explanation("strCfgDgbDisplayJudge") );\r
-                               bGraph[i].Initialize( cr.Label("strCfgDgbDisplayGraph"), cr.Explanation("strCfgDgbDisplayGraph") );\r
-                               nScrollSpeed[i].Initialize( cr.Label("strCfgDgbScrollSpeed"), cr.Explanation("strCfgDgbScrollSpeed"), 1, 101);\r
+                               bEmphasizePlaySound[i].Initialize( "strCfgDgbChipSoundMonitor" );\r
+                               bReverse[i].Initialize( "strCfgDgbReverse" );\r
+                               eRandom[i].Initialize( "strCfgDgbRandom", typeof(ERandom) );\r
+                               bLight[i].Initialize( "strCfgDgbLight" );\r
+                               bDisplayCombo[i].Initialize( "strCfgDgbDisplayCombo" );\r
+                               bDisplayJudge[i].Initialize( "strCfgDgbDisplayJudge" );\r
+                               bGraph[i].Initialize( "strCfgDgbDisplayGraph" );\r
+                               nScrollSpeed[i].Initialize( "strCfgDgbScrollSpeed", 1, 101);\r
                                nScrollSpeed[i].ValueFormatter = (x) =>\r
                                        {\r
                                                return "x" + (x * 0.5f).ToString("0.0");\r
                                        };\r
-                               nInputAdjustTimeMs[i].Initialize( cr.Label("strCfgDgbInputAdjust"), cr.Explanation("strCfgDgbInputAdjust"), -99, 100);\r
+                               nInputAdjustTimeMs[i].Initialize( "strCfgDgbInputAdjust", -99, 100);\r
                                nJudgeLinePosOffset[i].Initialize("", "", -SampleFramework.GameWindowSize.Height, SampleFramework.GameWindowSize.Height + 1);\r
                                nViewerScrollSpeed[i].Initialize("", "", 1, 101);\r
-                               nMinComboDisp[i].Initialize( cr.Label("strCfgDgbMinComboDisp"), cr.Explanation("strCfgDgbMinComboDisp"), 2, 100001);\r
-                               nSuddenFrom[i].Initialize( cr.Label("strCfgDgbSuddenFrom"), cr.Explanation("strCfgDgbSuddenFrom"), 0, SampleFramework.GameWindowSize.Height + 1);\r
-                               nHiddenFrom[i].Initialize( cr.Label("strCfgDgbHiddenFrom"), cr.Explanation("strCfgDgbHiddenFrom"), 0, SampleFramework.GameWindowSize.Height + 1);\r
-                               eAutoGhost[i].Initialize( cr.Label("strCfgDgbAutoGhost"), cr.Explanation("strCfgDgbAutoGhost"), typeof(EAutoGhostData));\r
-                               eTargetGhost[i].Initialize( cr.Label("strCfgDgbTargetGhost"), cr.Explanation("strCfgDgbTargetGhost"), typeof(ETargetGhostData));\r
-                               eSudHidInv[i].Initialize( cr.Label("strCfgDgbSudHidInv"), cr.Explanation("strCfgDgbSudHidInv"), typeof(ESudHidInv));\r
+                               nMinComboDisp[i].Initialize( "strCfgDgbMinComboDisp", 2, 100001);\r
+                               nSuddenFrom[i].Initialize( "strCfgDgbSuddenFrom", 0, SampleFramework.GameWindowSize.Height + 1);\r
+                               nHiddenFrom[i].Initialize( "strCfgDgbHiddenFrom", 0, SampleFramework.GameWindowSize.Height + 1);\r
+                               eAutoGhost[i].Initialize( "strCfgDgbAutoGhost", typeof(EAutoGhostData));\r
+                               eTargetGhost[i].Initialize( "strCfgDgbTargetGhost", typeof(ETargetGhostData));\r
+                               eSudHidInv[i].Initialize( "strCfgDgbSudHidInv", typeof(ESudHidInv));\r
 \r
                                fJudgeLinePosOffsetBase[i].Initialize("", "");\r
                        }\r
 \r
                        string[] asiodevs = CEnumerateAllAsioDevices.GetAllASIODevices();\r
-                       strASIODevice.Initialize( cr.Label("strCfgSysASIODevice"), cr.Explanation("strCfgSysASIODevice"), asiodevs);\r
+                       strASIODevice.Initialize( "strCfgSysASIODevice", asiodevs);\r
 \r
                        int crdStep = 10;\r
                        cdInstX.Drums.Both.Initialize("DrumsX(Both)", Properties.Resources.strCfgDispDrumsXBoth, 0, 1 + SampleFramework.GameWindowSize.Width, crdStep);\r
index b0a6b1f..8fe5551 100644 (file)
@@ -21,15 +21,60 @@ namespace DTXMania
        public abstract class COptionBase\r
        {\r
                public EOptionType type;\r
+\r
+               private string _label;\r
                /// <summary>\r
                /// コンフィグ画面におけるこの項目を表す文字列。\r
+               /// nullの場合は、代わりにstrnameで名づけられたリソースから文字列を取得します。\r
                /// </summary>\r
-               public string label;\r
+               public string label\r
+               {\r
+                       get\r
+                       {\r
+                               return (_label == null)? CDTXMania.Instance.Resources.Label(_strname ) : _label;\r
+                       }\r
+                       set\r
+                       {\r
+                               _label = value;\r
+                               _strname = null;\r
+                       }\r
+               }\r
 \r
+               private string _explanation;\r
                /// <summary>\r
-               /// 説明。Properties.Resources から取得してください。\r
+               /// 説明。\r
+               /// nullの場合は、代わりにstrnameで名づけられたリソースから文字列を取得します。\r
                /// </summary>\r
-               public string explanation;\r
+               public string explanation\r
+               {\r
+                       get\r
+                       {\r
+                               return ( _explanation == null ) ? CDTXMania.Instance.Resources.Explanation( _strname ) : _explanation;\r
+                       }\r
+                       set\r
+                       {\r
+                               _explanation = value;\r
+                               _strname = null;\r
+                       }\r
+               }\r
+\r
+               private string _strname;\r
+               /// <summary>\r
+               /// 文字列の名前。リソースから文字列を取得する場合のkey文字列として使用。\r
+               /// これがnullの場合は、labelとexplanationに設定された文字列を直接使います。\r
+               /// </summary>\r
+               public string strname\r
+               {\r
+                       get\r
+                       {\r
+                               return _strname;\r
+                       }\r
+                       set\r
+                       {\r
+                               _strname = value;\r
+                       }\r
+               \r
+               }\r
 \r
                /// <summary>\r
                /// OnEnter で用いる動作。たとえば、この値によってほかのオプションに制約を与える場合などに\r
@@ -143,6 +188,14 @@ namespace DTXMania
                {\r
                        label = lbl;\r
                        explanation = expl;\r
+                       strname = null;\r
+               }\r
+\r
+               public void Initialize( string strname_ )\r
+               {\r
+                       label = null;\r
+                       explanation = null;\r
+                       strname = strname_;\r
                }\r
        }\r
 \r
@@ -234,6 +287,16 @@ namespace DTXMania
                        nMin = min;\r
                        nMax = max;\r
                        nStep = step;\r
+                       strname = null;\r
+               }\r
+               public void Initialize( string _strname, int min = int.MinValue, int max = int.MaxValue, int step = 1 )\r
+               {\r
+                       label = null;\r
+                       explanation = null;\r
+                       nMin = min;\r
+                       nMax = max;\r
+                       nStep = step;\r
+                       strname = _strname;\r
                }\r
        }\r
 \r
@@ -347,7 +410,18 @@ namespace DTXMania
                {\r
                        label = lbl;\r
                        explanation = expl;\r
-\r
+                       strname = null;\r
+                       InitialieMain( type );\r
+               }\r
+               public void Initialize( string _strname, Type type )\r
+               {\r
+                       label = null;\r
+                       explanation = null;\r
+                       strname = _strname;\r
+                       InitialieMain( type );\r
+               }\r
+               private void InitialieMain( Type type )\r
+               {\r
                        Length = type.GetEnumValues().Length;\r
                        vals = new E[Length];\r
                        int initptr = -1;\r
@@ -391,6 +465,13 @@ namespace DTXMania
                {\r
                        label = lbl;\r
                        explanation = expl;\r
+                       strname = null;\r
+               }\r
+               public void Initialize( string _strname )\r
+               {\r
+                       label = null;\r
+                       explanation = null;\r
+                       strname = _strname;\r
                }\r
 \r
                public override string ToString()\r
@@ -411,7 +492,18 @@ namespace DTXMania
                {\r
                        label = lbl;\r
                        explanation = expl;\r
-\r
+                       strname = null;\r
+                       InitializeMain( initvals );\r
+               }\r
+               public void Initialize( string _strname, string[] initvals )\r
+               {\r
+                       label = null;\r
+                       explanation = null;\r
+                       strname = _strname;\r
+                       InitializeMain( initvals );\r
+               }\r
+               public void InitializeMain( string[] initvals )\r
+               {\r
                        Length = initvals.Length;\r
                        vals = new string[Length];\r
                        int initptr = -1;\r
@@ -451,10 +543,17 @@ namespace DTXMania
                        val = init;\r
                }\r
 \r
-               public void Initialize(string lbl, string expl)\r
+               public void Initialize( string lbl, string expl )\r
                {\r
                        label = lbl;\r
                        explanation = expl;\r
+                       strname = null;\r
+               }\r
+               public void Initialize( string _strname )\r
+               {\r
+                       label = null;\r
+                       explanation = null;\r
+                       strname = _strname;\r
                }\r
 \r
                public override string ToString()\r
@@ -471,6 +570,15 @@ namespace DTXMania
                        type = EOptionType.Other;\r
                        label = lbl;\r
                        explanation = expl;\r
+                       strname = null;\r
+               }\r
+               public COptionLabel( string _strname )\r
+                       : base( "" )\r
+               {\r
+                       type = EOptionType.Other;\r
+                       label = null;\r
+                       explanation = null;\r
+                       strname = _strname;\r
                }\r
        }\r
 \r
index 7c13892..480c0f2 100644 (file)
@@ -13,19 +13,18 @@ namespace DTXMania
 \r
                        string[] items = new string[] { "Z,Y,X,...", "A,B,C,..." };\r
                        COptionStringList title = new COptionStringList(items[0]);\r
-                       title.Initialize("", "", items);\r
-                       title.label = "Title";\r
+                       title.Initialize( "strSortByTitle", items);\r
                        title.OnEnterDelegate = () =>\r
                        {\r
                                this.act曲リスト.t曲リストのソート(CDTXMania.Instance.Songs管理.t曲リストのソート2_タイトル順, eInst,\r
                                                title.Index == 0 ? -1 : 1);\r
                                this.act曲リスト.t選択曲が変更された(true);\r
                        };\r
+                       lci.Add( title );\r
 \r
                        items = new string[] { "99,98,97,...", "1,2,3,..." };\r
                        COptionStringList level = new COptionStringList(items[0]);\r
-                       level.Initialize("", "", items);\r
-                       level.label = "Level";\r
+                       level.Initialize( "strSortByLevel", items);\r
                        level.OnEnterDelegate = () =>\r
                        {\r
                                this.act曲リスト.t曲リストのソート(\r
@@ -34,11 +33,11 @@ namespace DTXMania
                                                                this.act曲リスト.n現在のアンカ難易度レベル);\r
                                this.act曲リスト.t選択曲が変更された(true);\r
                        };\r
+                       lci.Add( level );\r
 \r
                        items = new string[] { "E,D,C,...", "SS,S,A,..." };\r
                        COptionStringList bestrank = new COptionStringList(items[0]);\r
-                       bestrank.Initialize("", "", items);\r
-                       bestrank.label = "Best Rank";\r
+                       bestrank.Initialize( "strSortByBestRank", items);\r
                        bestrank.OnEnterDelegate = () =>\r
                        {\r
                                this.act曲リスト.t曲リストのソート(\r
@@ -47,11 +46,11 @@ namespace DTXMania
                                                                this.act曲リスト.n現在のアンカ難易度レベル\r
                                                );\r
                        };\r
+                       lci.Add( bestrank );\r
 \r
                        items = new string[] { "10,9,8,...", "1,2,3,..." };\r
                        COptionStringList playcount = new COptionStringList(items[0]);\r
-                       playcount.Initialize("", "", items);\r
-                       playcount.label = "Play Count";\r
+                       playcount.Initialize( "strSortByPlayCount", items);\r
                        playcount.OnEnterDelegate = () =>\r
                        {\r
                                this.act曲リスト.t曲リストのソート(\r
@@ -61,11 +60,11 @@ namespace DTXMania
                                );\r
                                this.act曲リスト.t選択曲が変更された(true);\r
                        };\r
+                       lci.Add( playcount );\r
 \r
                        items = new string[] { "Z,Y,X,...", "A,B,C,..." };\r
                        COptionStringList author = new COptionStringList(items[0]);\r
-                       author.Initialize("", "", items);\r
-                       author.label = "Author";\r
+                       author.Initialize( "strSortByAuthor", items);\r
                        author.OnEnterDelegate = () =>\r
                        {\r
                                this.act曲リスト.t曲リストのソート(\r
@@ -75,11 +74,11 @@ namespace DTXMania
                                                );\r
                                this.act曲リスト.t選択曲が変更された(true);\r
                        };\r
+                       lci.Add( author );\r
 \r
                        items = new string[] { "100,99,98,...", "1,2,3,..." };\r
                        COptionStringList skillpoint = new COptionStringList(items[0]);\r
-                       skillpoint.Initialize("", "", items);\r
-                       skillpoint.label = "Skill Point";\r
+                       skillpoint.Initialize( "strSortBySkillPoint", items);\r
                        skillpoint.OnEnterDelegate = () =>\r
                        {\r
                                this.act曲リスト.t曲リストのソート(\r
@@ -89,11 +88,11 @@ namespace DTXMania
                                                );\r
                                this.act曲リスト.t選択曲が変更された(true);\r
                        };\r
-\r
+                       lci.Add( skillpoint );\r
+                       \r
                        items = new string[] { "Dec.31,30,...", "Jan.1,2,..." };\r
                        COptionStringList date = new COptionStringList(items[0]);\r
-                       date.Initialize("", "", items);\r
-                       date.label = "Date";\r
+                       date.Initialize( "strSortByDate", items);\r
                        date.OnEnterDelegate = () =>\r
                        {\r
                                this.act曲リスト.t曲リストのソート(\r
@@ -103,16 +102,18 @@ namespace DTXMania
                                                                );\r
                                this.act曲リスト.t選択曲が変更された(true);\r
                        };\r
+                       lci.Add( date );\r
 \r
 \r
                        COptionString ret = new COptionString("Return");\r
-                       ret.Initialize("Return", "");\r
+                       ret.Initialize( "strSortReturn");\r
                        ret.OnEnterDelegate = () =>\r
                        {\r
                                this.tDeativatePopupMenu();\r
                        };\r
+                       lci.Add( ret );\r
 \r
-                       base.Initialize(lci, false, "SORT MENU");\r
+                       base.Initialize(lci, false, CDTXMania.Instance.Resources.Label("strSortMenu"));\r
                }\r
 \r
 \r
index 181d4d0..612eca4 100644 (file)
@@ -373,13 +373,6 @@ namespace DTXMania
                                }\r
 \r
                                cInvisibleChip.Reset();\r
-                               string strLabel = CDTXMania.Instance.stage選曲.r確定された曲.ar難易度ラベル[CDTXMania.Instance.stage選曲.n確定された曲の難易度];\r
-                               string strPanel = CDTXMania.Instance.DTX.TITLE;\r
-                               if (!string.IsNullOrWhiteSpace(strLabel))\r
-                               {\r
-                                       strPanel += "(" + strLabel + ")";\r
-                               }\r
-                               this.actPanel.SetPanelString(strPanel);\r
                                actGauge.Init(CDTXMania.Instance.ConfigIni.nRisky);\r
                                // 効果音のストリームをミキサーから解除しておく\r
                                CDTXMania.Instance.Skin.tRemoveMixerAll();\r
@@ -479,6 +472,19 @@ namespace DTXMania
                                }\r
 \r
                                base.On活性化();\r
+\r
+                               // PANELの設定は、base.On活性化()の後に(actPanelの活性化の後)行うこと。\r
+                               // さもないと、actPanelが活性化されていないため、パネル文字列の設定が機能しなくなる。\r
+                               string strLabel = CDTXMania.Instance.stage選曲.r確定された曲.ar難易度ラベル[ CDTXMania.Instance.stage選曲.n確定された曲の難易度 ];\r
+                               string strPanel = CDTXMania.Instance.DTX.TITLE;\r
+                               //string strSETDEFlabel = CDTXMania.Instance.stage選曲.r確定された曲.strタイトル;\r
+                               if ( !string.IsNullOrWhiteSpace( strLabel ) && !strPanel.Contains(strLabel)\r
+                               //      && (strPanel == strSETDEFlabel)\r
+                               )\r
+                               {\r
+                                       strPanel += " (" + strLabel + ")";\r
+                               }\r
+                               this.actPanel.SetPanelString( strPanel );\r
                        }\r
                }\r
                public override void On非活性化()\r
index beb7d8c..418b8c0 100644 (file)
@@ -23,7 +23,7 @@ namespace DTXMania
        {\r
                // プロパティ\r
                #region [ properties ]\r
-               public static readonly string VERSION = "105(160214)";\r
+               public static readonly string VERSION = "105(160801)";\r
                public static readonly string SLIMDXDLL = "c_net20x86_Jun2010";\r
                public static readonly string D3DXDLL = "d3dx9_43.dll";     // June 2010\r
                                                                                                                                                                                                                                                                //public static readonly string D3DXDLL = "d3dx9_42.dll";       // February 2010\r
@@ -255,8 +255,9 @@ namespace DTXMania
                        #endregion\r
 \r
                        #region [ 言語の設定 ]\r
-                       Debug.WriteLine( "language=" + Resources.Language );\r
-                       Debug.WriteLine( "settings=" + instance.ConfigIni.strLanguage );\r
+                       Trace.TraceInformation( "言語情報の読み込みを開始します。" );\r
+                       //Debug.WriteLine( "language=" + Resources.Language );\r
+                       //Debug.WriteLine( "settings=" + instance.ConfigIni.strLanguage );\r
                        Resources.Language = instance.ConfigIni.strLanguage;\r
                        Trace.TraceInformation( "言語を{0}に設定しました。", Resources.Language );\r
 \r
@@ -2013,6 +2014,8 @@ namespace DTXMania
                        relPath = relPath.Replace( '/', System.IO.Path.DirectorySeparatorChar );        // 区切り文字が\ではなく/なので置換する\r
                        ConfigIni.strSystemSkinSubfolderPath.Value = relPath;\r
                        #endregion\r
+                       ConfigIni.strDTXManiaVersion.Value = CDTXMania.VERSION;\r
+\r
                        CDTXMania.SerializeXML( strEXEのあるフォルダ + "Config.xml", ConfigIni );\r
 \r
                        // 元の絶対パスに戻す\r
index 52b2bd5..e82ed04 100644 (file)
@@ -9,16 +9,19 @@ using System.Diagnostics;
 \r
 namespace DTXMania\r
 {\r
+       /// <summary>\r
+       /// 多言語メッセージ情報を扱います。\r
+       /// </summary>\r
        public class CResources\r
        {\r
-               private string csvFileName = "resources.csv";\r
+               private const string csvFileName = @"System\resources.csv";\r
 \r
                private string[] csvHeader = null;\r
                private Dictionary<string, string> dict = new Dictionary<string, string>();\r
 \r
-               private string[] langcodelist = null, langlist = null;\r
+               private string[] langcodelist = null, langdisplist = null;\r
 \r
-               public string strLanguageCode;\r
+               private string strLanguageCode;\r
 \r
 \r
                /// <summary>\r
@@ -41,7 +44,7 @@ namespace DTXMania
                                        }\r
 \r
                                }\r
-Debug.WriteLine( "Get: strLanguageCode: " + strLanguageCode );\r
+//Debug.WriteLine( "Get: strLanguageCode: " + strLanguageCode );\r
                                return strLanguageCode;\r
                        }\r
                        set\r
@@ -72,22 +75,32 @@ Debug.WriteLine( "Get: strLanguageCode: " + strLanguageCode );
                                if ( CDTXMania.Instance.ConfigIni != null )\r
                                {\r
                                        CDTXMania.Instance.ConfigIni.strLanguage.Value = strLanguageCode;\r
-Debug.WriteLine( "strLang.Value=" + CDTXMania.Instance.ConfigIni.strLanguage.Value );\r
+//Debug.WriteLine( "strLang.Value=" + CDTXMania.Instance.ConfigIni.strLanguage.Value );\r
                                }\r
-Debug.WriteLine( "Set: strLanguageCode: " + strLanguageCode );\r
+//Debug.WriteLine( "Set: strLanguageCode: " + strLanguageCode );\r
                        }\r
                }\r
 \r
                /// <summary>\r
-               /// 使用可能な\r
+               /// 使用可能な言語(表示名)のリストを返す\r
                /// </summary>\r
-               public string[] LanguageList\r
+               /// <remarks>\r
+               /// listの格納順は、LanguageCodeListと一致する。\r
+               /// </remarks>\r
+               public string[] LanguageDispList\r
                {\r
                        get\r
                        {\r
-                               return langlist;\r
+                               return langdisplist;\r
                        }\r
                }\r
+\r
+               /// <summary>\r
+               /// 使用可能な言語(ja-JPなどの言語コード)のリストを返す\r
+               /// </summary>\r
+               /// <remarks>\r
+               /// listの格納順は、LanguageDispListと一致する。\r
+               /// </remarks>\r
                public string[] LanguageCodeList\r
                {\r
                        get\r
@@ -95,6 +108,10 @@ Debug.WriteLine( "Set: strLanguageCode: " + strLanguageCode );
                                return langcodelist;\r
                        }\r
                }\r
+               /// <summary>\r
+               /// 現在設定されている言語のindex順を返す\r
+               /// LanguageDispListやLanguageCodeListのindexに相当する\r
+               /// </summary>\r
                public int LanguageCodeIndex\r
                {\r
                        get\r
@@ -105,6 +122,11 @@ Debug.WriteLine( "Set: strLanguageCode: " + strLanguageCode );
                        }\r
                }\r
                \r
+               /// <summary>\r
+               /// key名に相当するlabel(表示名)を返す\r
+               /// </summary>\r
+               /// <param name="key"></param>\r
+               /// <returns></returns>\r
                public string Label( string key )\r
                {\r
                        return Resource( key, "title", strLanguageCode );\r
@@ -113,16 +135,27 @@ Debug.WriteLine( "Set: strLanguageCode: " + strLanguageCode );
                {\r
                        return Resource( key, "title", strLang );\r
                }\r
+               /// <summary>\r
+               /// key名に相当するExplanation(説明文)を返す\r
+               /// </summary>\r
+               /// <param name="key"></param>\r
+               /// <returns></returns>\r
                public string Explanation( string key )\r
                {\r
                        return Resource( key, "value", strLanguageCode );\r
                }\r
+               /// <summary>\r
+               /// key名に相当するitem(コンマ区切りの選択肢)を返す\r
+               /// ただし現在は未使用\r
+               /// /// </summary>\r
+               /// <param name="key"></param>\r
+               /// <returns></returns>\r
                public string Items( string key )\r
                {\r
                        return Resource( key, "items", strLanguageCode );\r
                }\r
 \r
-               public string Resource(string key, string strType)\r
+               private string Resource(string key, string strType)\r
                {\r
                        return Resource( key, strType, strLanguageCode );\r
                }\r
@@ -162,12 +195,19 @@ Debug.WriteLine( "Set: strLanguageCode: " + strLanguageCode );
                        return value;\r
                }\r
 \r
+               /// <summary>\r
+               /// コンストラクタ\r
+               /// </summary>\r
                public CResources()\r
                {\r
 //            this.csvPath = excelPath;\r
         }\r
  \r
-        // language="ja-JP"とか。\r
+               /// <summary>\r
+               /// csvファイルを読み込んで、言語リソースを初期化する。\r
+               /// languageで指定した言語リソースがない場合は、default(=en-US)にフォールバックする。\r
+               /// </summary>\r
+               /// <param name="language">"ja-JP"などの言語情報。""の場合は、default(=en-US)が用いられる。</param>\r
         public void LoadResources(string language = "")\r
         {\r
                        // 参考: http://dobon.net/vb/dotnet/file/readcsvfile.html\r
@@ -226,15 +266,10 @@ Debug.WriteLine( "Set: strLanguageCode: " + strLanguageCode );
                        //後始末\r
                        tfp.Close();\r
 \r
-                       //foreach ( string key in dict.Keys )\r
-                       //{\r
-                       //      Console.WriteLine( "{0} : {1}", key, dict[ key ] );\r
-                       //}\r
-\r
 \r
                        #region [ langcodelist, langlist 生成 ]\r
                        List<string> lstLangCodeList = new List<string>();\r
-                       List<string> lstLangList = new List<string>();\r
+                       List<string> lstLangDispList = new List<string>();\r
 \r
                        for ( int i = 1; i < csvHeader.Length; i++ )            // 0から開始、ではない (0は名称定義)\r
                        {\r
@@ -242,14 +277,13 @@ Debug.WriteLine( "Set: strLanguageCode: " + strLanguageCode );
                                if ( !lstLangCodeList.Contains( s ) )\r
                                {\r
                                        lstLangCodeList.Add( s );\r
-                                       lstLangList.Add( Label("strCfgLanguageName", s ) );\r
+                                       lstLangDispList.Add( Label("strCfgLanguageName", s ) );\r
                                }\r
                        }\r
                        langcodelist = lstLangCodeList.ToArray();\r
-                       langlist = lstLangList.ToArray();\r
+                       langdisplist = lstLangDispList.ToArray();\r
                        #endregion\r
 \r
-\r
                        Language = language;\r
         }\r
 \r
@@ -267,7 +301,7 @@ Debug.WriteLine( "Set: strLanguageCode: " + strLanguageCode );
                        dict = null;\r
                        csvHeader = null;\r
                        langcodelist = null;\r
-                       langlist = null;\r
+                       langdisplist = null;\r
                }\r
                ~CResources()\r
                {\r
index 19caf6f..c4abb0d 100644 (file)
@@ -59,15 +59,15 @@ namespace FDK
                        );\r
                        if ( retval == 0 )\r
                        {\r
-                               Debug.WriteLine( "SYSTEM_POWER_CAPABILITIES.AOAC: " + cap.AoAc );\r
+                               //Debug.WriteLine( "SYSTEM_POWER_CAPABILITIES.AOAC: " + cap.AoAc );\r
                                if ( cap.AoAc )\r
                                {\r
-                                       Debug.WriteLine( "Connected Standby is enabled." );\r
+                                       //Debug.WriteLine( "Connected Standby is enabled." );\r
                                        return true;\r
                                }\r
                                else\r
                                {\r
-                                       Debug.WriteLine( "Connected Standby is NOT enabled." );\r
+                                       //Debug.WriteLine( "Connected Standby is NOT enabled." );\r
                                        return false;\r
                                }\r
                        }\r
index 13bb646..cb8c1d2 100644 (file)
Binary files a/実行時フォルダ(DTXCreator)/dll/FDK.dll and b/実行時フォルダ(DTXCreator)/dll/FDK.dll differ
index 0301635..02bad72 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ
similarity index 85%
rename from 実行時フォルダ/resources.csv
rename to 実行時フォルダ/System/resources.csv
index e3f32e9..049ed8f 100644 (file)
Binary files a/実行時フォルダ/resources.csv and b/実行時フォルダ/System/resources.csv differ
diff --git a/実行時フォルダ/System/resources.xlsx b/実行時フォルダ/System/resources.xlsx
new file mode 100644 (file)
index 0000000..92d513d
Binary files /dev/null and b/実行時フォルダ/System/resources.xlsx differ
index 13bb646..cb8c1d2 100644 (file)
Binary files a/実行時フォルダ/dll/FDK.dll and b/実行時フォルダ/dll/FDK.dll differ
diff --git a/実行時フォルダ/resources.xlsx b/実行時フォルダ/resources.xlsx
deleted file mode 100644 (file)
index 5848b39..0000000
Binary files a/実行時フォルダ/resources.xlsx and /dev/null differ