readonly string QuickCfgTitle = "Quick Config";
COptionStringList QTarget;
COptionStringList QAuto;
+ STDGBSValue<int> QAutoIndex; //QAuto.Indexの保持用
List<COptionBase> lci;
Font ft表示用フォント;
CTexture txパネル本体;
•More...
•EXIT
*/
+ QAuto = new COptionStringList("Custom"); // 以前はMakeListCItemBase()で初期化していたが、QAuto.Indexの保持のため、より上位で初期化するように変更
QTarget = new COptionStringList("Drums");
QTarget.Initialize("Target", "", new string[] { "Drums", "Guitar", "Bass" });
QTarget.OnEnterDelegate = () =>
EPart nCurrentTarget = 0;
if (QTarget.Index == 0)
{
+ QAutoIndex.Bass = QAuto.Index;
+Trace.TraceInformation("QAutoIndex.Bass=" + QAutoIndex.Bass);
+ QAuto.Index = QAutoIndex.Drums;
+Trace.TraceInformation("QAuto,Index=" + QAuto.Index);
nCurrentTarget = EPart.Drums;
}
else if (QTarget.Index == 1)
{
+ QAutoIndex.Drums = QAuto.Index;
+Trace.TraceInformation("QAutoIndex.Drums=" + QAutoIndex.Drums);
+ QAuto.Index = QAutoIndex.Guitar;
+Trace.TraceInformation("QAuto,Index=" + QAuto.Index);
nCurrentTarget = EPart.Guitar;
}
else if (QTarget.Index == 2)
{
+ QAutoIndex.Guitar = QAuto.Index;
+Trace.TraceInformation("QAutoIndex.Guitar=" + QAutoIndex.Guitar);
+ QAuto.Index = QAutoIndex.Bass;
+Trace.TraceInformation("QAuto,Index=" + QAuto.Index);
nCurrentTarget = EPart.Bass;
}
- lci = MakeListCItemBase(nCurrentTarget);
+ lci = MakeListCItemBase(nCurrentTarget, false); // false: QAuto.Indexを初期化しない
+Trace.TraceInformation("AQAuto.Index=" + QAuto.Index);
// eInst = (E楽器パート) nCurrentTarget;
// ここではeInstは変えない。メニューを開いたタイミングでのみeInstを使う
Initialize(lci, true, QuickCfgTitle, n現在の選択行);
+Trace.TraceInformation("BQAuto.Index=" + QAuto.Index);
MakeAutoPanel();
+Trace.TraceInformation("CQAuto.Index=" + QAuto.Index);
};
lci = MakeListCItemBase(EPart.Drums);
// ConfSet=0, nInst=Drums
base.Initialize(lci, true, QuickCfgTitle, 2);
+ QAutoIndex = new STDGBSValue<int>(); // Drums, Guitar, Bass
+ QAutoIndex.Drums = GetAutoIndex(EPart.Drums);
+ QAutoIndex.Guitar = GetAutoIndex(EPart.Guitar);
+ QAutoIndex.Bass = GetAutoIndex(EPart.Bass);
+Trace.TraceInformation($"★ {QAutoIndex.Drums}, {QAutoIndex.Guitar}, {QAutoIndex.Bass}");
}
- private List<COptionBase> MakeListCItemBase(EPart nInst)
+ private List<COptionBase> MakeListCItemBase(EPart nInst, bool bInitQAutoIndex = true)
{
List<COptionBase> ret = new List<COptionBase>();
- QAuto = new COptionStringList("Custom");
+ //QAuto = new COptionStringList("Custom");
if (nInst == EPart.Drums)
{
string[] items_dr = new string[] { "All On", "Auto HH", "Auto BD", "Custom", "All Off" };
- int dr_init_idx = 3;
- if (CDTXMania.Instance.ConfigIni.bAutoPlay.IsAllTrue(EPart.Drums))
- {
- dr_init_idx = 0; // All On
- }
- else if (CDTXMania.Instance.ConfigIni.bAutoPlay.bIsAutoHH)
- {
- dr_init_idx = 1; // Auto HH
- }
- else if (CDTXMania.Instance.ConfigIni.bAutoPlay.bIsAutoBD)
+ //int dr_init_idx = 3;
+ //if (CDTXMania.Instance.ConfigIni.bAutoPlay.IsAllTrue(EPart.Drums))
+ //{
+ // dr_init_idx = 0; // All On
+ //}
+ //else if (CDTXMania.Instance.ConfigIni.bAutoPlay.bIsAutoHH)
+ //{
+ // dr_init_idx = 1; // Auto HH
+ //}
+ //else if (CDTXMania.Instance.ConfigIni.bAutoPlay.bIsAutoBD)
+ //{
+ // dr_init_idx = 2; // Auto BD
+ //}
+ //else if (CDTXMania.Instance.ConfigIni.bAutoPlay.IsAllFalse(EPart.Drums))
+ //{
+ // dr_init_idx = 4; // All Off
+ //}
+Trace.TraceInformation("1QAuto.Index=" + QAuto.Index);
+ QAuto.Initialize("Auto", "", items_dr);
+Trace.TraceInformation("xQAuto.Index=" + QAuto.Index);
+ if (bInitQAutoIndex)
{
- dr_init_idx = 2; // Auto BD
+ QAuto.Index = GetAutoIndex(nInst); //dr_init_idx;
}
- else if (CDTXMania.Instance.ConfigIni.bAutoPlay.IsAllFalse(EPart.Drums))
+ else
{
- dr_init_idx = 4; // All Off
+ QAuto.Index = QAutoIndex.Drums; // QAuto.Initialize()でIndexが初期化されるため、再設定する
}
- QAuto.Initialize("Auto", "", items_dr);
- QAuto.Index = dr_init_idx;
+Trace.TraceInformation("2QAuto.Index=" + QAuto.Index);
QAuto.OnEnterDelegate = () =>
{
//if (QAuto.Value == "All On")
{
string[] items_gt = new string[] { "All On", "Auto Pick", "Auto Neck", "Custom", "All Off" };
// 初期値の決定
- int gt_init_idx = 3;
- if (CDTXMania.Instance.ConfigIni.bAutoPlay.IsAllTrue(nInst))
- {
- gt_init_idx = 0;
- }
- else if (CDTXMania.Instance.ConfigIni.bAutoPlay.bIsAutoPick(nInst))
- {
- gt_init_idx = 1;
- }
- else if (CDTXMania.Instance.ConfigIni.bAutoPlay.bIsAutoNeck(nInst))
+ //int gt_init_idx = 3;
+ //if (CDTXMania.Instance.ConfigIni.bAutoPlay.IsAllTrue(nInst))
+ //{
+ // gt_init_idx = 0;
+ //}
+ //else if (CDTXMania.Instance.ConfigIni.bAutoPlay.bIsAutoPick(nInst))
+ //{
+ // gt_init_idx = 1;
+ //}
+ //else if (CDTXMania.Instance.ConfigIni.bAutoPlay.bIsAutoNeck(nInst))
+ //{
+ // gt_init_idx = 2;
+ //}
+ //else if (CDTXMania.Instance.ConfigIni.bAutoPlay.IsAllFalse(nInst))
+ //{
+ // gt_init_idx = 4;
+ //}
+ QAuto.Initialize("Auto", "", items_gt);
+ if (bInitQAutoIndex)
{
- gt_init_idx = 2;
+ QAuto.Index = GetAutoIndex(nInst); //gt_init_idx;
}
- else if (CDTXMania.Instance.ConfigIni.bAutoPlay.IsAllFalse(nInst))
{
- gt_init_idx = 4;
+ QAuto.Index = QAutoIndex[nInst]; // QAuto.Initialize()でIndexが初期化されるため、再設定する
}
- QAuto.Initialize("Auto", "", items_gt);
- QAuto.Index = gt_init_idx;
QAuto.OnEnterDelegate = () =>
{
//if (QAuto.Value == "All On")
return ret;
}
+ /// <summary>
+ /// 現在のAuto設定状況から、AutoのIndex値を生成する (Auto HH? Auto BD? Auto Pick? ....)
+ /// ただし設定済みのAuto設定状況を使用するので注意。Auto項目をEnterで切り替えるだけではAuto設定は変化しない。
+ /// (Auto=Customの状態保持のために、そうしている)
+ /// </summary>
+ /// <param name="nInst"></param>
+ /// <returns></returns>
+ private int GetAutoIndex(EPart nInst)
+ {
+ int init_idx = 3;
+ if (nInst == EPart.Drums)
+ {
+ // 初期値の決定
+ if (CDTXMania.Instance.ConfigIni.bAutoPlay.IsAllTrue(EPart.Drums))
+ {
+ init_idx = 0; // All On
+ }
+ else if (CDTXMania.Instance.ConfigIni.bAutoPlay.bIsAutoHH)
+ {
+ init_idx = 1; // Auto HH
+ }
+ else if (CDTXMania.Instance.ConfigIni.bAutoPlay.bIsAutoBD)
+ {
+ init_idx = 2; // Auto BD
+ }
+ else if (CDTXMania.Instance.ConfigIni.bAutoPlay.IsAllFalse(EPart.Drums))
+ {
+ init_idx = 4; // All Off
+ }
+Trace.TraceInformation("GetAutoIndex: Drums: " + init_idx);
+ }
+ else if (nInst == EPart.Guitar || nInst == EPart.Bass)
+ {
+ // 初期値の決定
+ if (CDTXMania.Instance.ConfigIni.bAutoPlay.IsAllTrue(nInst))
+ {
+ init_idx = 0; // All On
+ }
+ else if (CDTXMania.Instance.ConfigIni.bAutoPlay.bIsAutoPick(nInst))
+ {
+ init_idx = 1; // Auto Pick
+ }
+ else if (CDTXMania.Instance.ConfigIni.bAutoPlay.bIsAutoNeck(nInst))
+ {
+ init_idx = 2; // Auto Neck
+ }
+ else if (CDTXMania.Instance.ConfigIni.bAutoPlay.IsAllFalse(nInst))
+ {
+ init_idx = 4; // All Off
+ }
+Trace.TraceInformation("GetAutoIndex: GtBs: " + init_idx);
+ }
+ else
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ return init_idx;
+ }
+
+
// メソッド
public override void tActivatePopupMenu(EPart einst)
{
+ // Activateすると、DrumsのAutoIndexだけ化けているので、Instance.Configiniから再取得する
+ //QAutoIndex.Drums = GetAutoIndex(EPart.Drums);
+ //QAutoIndex.Guitar = GetAutoIndex(EPart.Guitar);
+ //QAutoIndex.Bass = GetAutoIndex(EPart.Bass);
+
this.CActSelectQuickConfigMain();
base.tActivatePopupMenu(einst);
}
/// <summary>
/// Auto Modeにフォーカスを合わせているときだけ、AUTOの設定状態を表示する。
- /// 現状はDrumでのみ表示。
/// </summary>
public override void t進行描画sub()
{
{
if (this.tx文字列パネル != null)
{
- this.tx文字列パネル.Dispose();
+ TextureFactory.tテクスチャの解放(ref this.tx文字列パネル);
}
- this.tx文字列パネル = new CTexture(CDTXMania.Instance.Device, image, CDTXMania.Instance.TextureFormat);
+ this.tx文字列パネル = new CTexture(CDTXMania.Instance.Device, image, CDTXMania.Instance.TextureFormat, "AutoStrings");
this.tx文字列パネル.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);
image.Dispose();
}
catch (CTextureCreateFailedException)
{
- Trace.TraceError("演奏履歴文字列テクスチャの作成に失敗しました。");
+ Trace.TraceError("Quick Config: Autoパネルテクスチャの作成に失敗しました。");
this.tx文字列パネル = null;
}
}
/// <summary>
- /// 簡易CONFIG内のAUTO状態を、文字列で返す。
+ /// 簡易CONFIG内のAUTO状態を、文字列で返す。(AAA___など)
/// </summary>
/// <param name="target">対象楽器</param>
/// <returns>AutoならA,さもなくば_。この文字が複数並んだ文字列。</returns>
s = "_AA_______";
break;
case 2: // Auto BD
- s = "___A______";
+ s = "____A_____";
break;
case 3: // Custom
- // 本当は、現在のレーン順に合わせた表示順にしたいが・・・
+ // 本当は、現在のレーン順に合わせた表示順にしたいが・・・
COptionBool[] e = new[] {
CDTXMania.Instance.ConfigIni.bAutoPlay.LC,
CDTXMania.Instance.ConfigIni.bAutoPlay.HH,
return s;
}
+
/// <summary>
/// ConfigIni.bAutoPlayに簡易CONFIGの状態を反映する
/// </summary>
- private void SetAutoParameters()
+ private void SetAutoParameters(EPart nInst)
{
string s;
#region [Drums]
- s = GetAutoParameters(EPart.Drums);
- CDTXMania.Instance.ConfigIni.bAutoPlay.LC.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.HH.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.HHO.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.SD.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.BD.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.HT.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.LT.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.FT.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.CY.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.RD.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ if (nInst == EPart.Drums)
+ {
+ s = GetAutoParameters(EPart.Drums);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.LC.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.HH.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.HHO.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.SD.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.BD.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.HT.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.LT.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.FT.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.CY.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.RD.Value = (s[0] == 'A'); //s = s.Remove(0, 1);
+ }
#endregion
#region [Guitar]
- s = GetAutoParameters(EPart.Guitar);
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtR.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtG.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtB.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtPick.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtWail.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ else if (nInst == EPart.Guitar)
+ {
+ s = GetAutoParameters(EPart.Guitar);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.GtR.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.GtG.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.GtB.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.GtPick.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.GtWail.Value = (s[0] == 'A'); //s = s.Remove(0, 1);
+ }
#endregion
#region [Bass]
- s = GetAutoParameters(EPart.Bass);
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtR.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtG.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtB.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtPick.Value = (s[0] == 'A'); s = s.Remove(0, 1);
- CDTXMania.Instance.ConfigIni.bAutoPlay.GtWail.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ else if (nInst == EPart.Bass)
+ {
+ s = GetAutoParameters(EPart.Bass);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.BsR.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.BsG.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.BsB.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.BsPick.Value = (s[0] == 'A'); s = s.Remove(0, 1);
+ CDTXMania.Instance.ConfigIni.bAutoPlay.BsWail.Value = (s[0] == 'A'); //s = s.Remove(0, 1);
+ }
#endregion
-
+ else
+ {
+ throw new ArgumentOutOfRangeException();
+ }
//for (EPart target = EPart.Guitar; target < EPart.Bass; target++)
//{
// s += GetAutoParameters(target);
// CDTXMania.Instance.ConfigIni.bAutoPlay[i].Value = (s[j++] == 'A') ? true : false;
//}
}
+ private void SetAutoParameters()
+ {
+ QAutoIndex[(EPart)(QTarget.Index)] = QAuto.Index;
+
+ QAuto.Index = QAutoIndex[EPart.Drums];
+ SetAutoParameters(EPart.Drums);
+ QAuto.Index = QAutoIndex[EPart.Guitar];
+ SetAutoParameters(EPart.Guitar);
+ QAuto.Index = QAutoIndex[EPart.Bass];
+ SetAutoParameters(EPart.Bass);
+ }
+
+
// CActivity 実装
string pathパネル本体 = CSkin.Path(@"Graphics\ScreenSelect popup auto settings.png");
if (File.Exists(pathパネル本体))
{
+ if (this.txパネル本体 != null)
+ {
+ this.txパネル本体.Dispose();
+ }
this.txパネル本体 = TextureFactory.tテクスチャの生成(pathパネル本体, true);
}
base.OnManagedリソースの作成();