Add Sort by subtitle and Sort by displayed level sort options
This commit is contained in:
parent
c25c744cf1
commit
0e6870b955
@ -374,6 +374,12 @@ namespace TJAPlayer3
|
|||||||
[9100] = "Search (Difficulty)",
|
[9100] = "Search (Difficulty)",
|
||||||
[9101] = "Difficulty",
|
[9101] = "Difficulty",
|
||||||
[9102] = "Level",
|
[9102] = "Level",
|
||||||
|
|
||||||
|
[9200] = "Return",
|
||||||
|
[9201] = "Path",
|
||||||
|
[9202] = "Title",
|
||||||
|
[9203] = "Subtitle",
|
||||||
|
[9204] = "Displayed Level",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -365,6 +365,12 @@ namespace TJAPlayer3
|
|||||||
[9100] = "Rechercher (Difficulté)",
|
[9100] = "Rechercher (Difficulté)",
|
||||||
[9101] = "Difficulté",
|
[9101] = "Difficulté",
|
||||||
[9102] = "Niveau",
|
[9102] = "Niveau",
|
||||||
|
|
||||||
|
[9200] = "Retour",
|
||||||
|
[9201] = "Chemin",
|
||||||
|
[9202] = "Titre",
|
||||||
|
[9203] = "Sous-titre",
|
||||||
|
[9204] = "Niveau",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -428,6 +428,12 @@ namespace TJAPlayer3
|
|||||||
[9100] = "検索 (難易度)",
|
[9100] = "検索 (難易度)",
|
||||||
[9101] = "難易度",
|
[9101] = "難易度",
|
||||||
[9102] = "レベル",
|
[9102] = "レベル",
|
||||||
};
|
|
||||||
|
[9200] = "戻る",
|
||||||
|
[9201] = "絶対パス",
|
||||||
|
[9202] = "曲名",
|
||||||
|
[9203] = "作者名",
|
||||||
|
[9204] = "表示レベル",
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1389,7 +1389,8 @@ namespace TJAPlayer3
|
|||||||
var comparer = new ComparerChain<C曲リストノード>(
|
var comparer = new ComparerChain<C曲リストノード>(
|
||||||
new C曲リストノードComparerノード種別(),
|
new C曲リストノードComparerノード種別(),
|
||||||
new C曲リストノードComparer絶対パス(order),
|
new C曲リストノードComparer絶対パス(order),
|
||||||
new C曲リストノードComparerタイトル(order));
|
new C曲リストノードComparerタイトル(order),
|
||||||
|
new C曲リストノードComparerSubtitle(order));
|
||||||
|
|
||||||
ノードリスト.Sort( comparer );
|
ノードリスト.Sort( comparer );
|
||||||
}
|
}
|
||||||
@ -1399,18 +1400,42 @@ namespace TJAPlayer3
|
|||||||
var comparer = new ComparerChain<C曲リストノード>(
|
var comparer = new ComparerChain<C曲リストノード>(
|
||||||
new C曲リストノードComparerノード種別(),
|
new C曲リストノードComparerノード種別(),
|
||||||
new C曲リストノードComparerタイトル(order),
|
new C曲リストノードComparerタイトル(order),
|
||||||
new C曲リストノードComparer絶対パス(order));
|
new C曲リストノードComparerSubtitle(order),
|
||||||
|
new C曲リストノードComparer絶対パス(order));
|
||||||
|
|
||||||
ノードリスト.Sort( comparer );
|
ノードリスト.Sort( comparer );
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
public static void tSongListSortBySubtitle(List<C曲リストノード> ノードリスト, E楽器パート part, int order, params object[] p)
|
||||||
///
|
{
|
||||||
/// </summary>
|
var comparer = new ComparerChain<C曲リストノード>(
|
||||||
/// <param name="ノードリスト"></param>
|
new C曲リストノードComparerノード種別(),
|
||||||
/// <param name="part"></param>
|
new C曲リストノードComparerSubtitle(order),
|
||||||
/// <param name="order">1=Ascend -1=Descend</param>
|
new C曲リストノードComparerタイトル(order),
|
||||||
public static void t曲リストのソート3_演奏回数の多い順( List<C曲リストノード> ノードリスト, E楽器パート part, int order, params object[] p )
|
new C曲リストノードComparer絶対パス(order));
|
||||||
|
|
||||||
|
ノードリスト.Sort(comparer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void tSongListSortByLevel(List<C曲リストノード> ノードリスト, E楽器パート part, int order, params object[] p)
|
||||||
|
{
|
||||||
|
var comparer = new ComparerChain<C曲リストノード>(
|
||||||
|
new C曲リストノードComparerノード種別(),
|
||||||
|
new C曲リストノードComparerLevel(order),
|
||||||
|
new C曲リストノードComparerタイトル(order),
|
||||||
|
new C曲リストノードComparerSubtitle(order),
|
||||||
|
new C曲リストノードComparer絶対パス(order));
|
||||||
|
|
||||||
|
ノードリスト.Sort(comparer);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ノードリスト"></param>
|
||||||
|
/// <param name="part"></param>
|
||||||
|
/// <param name="order">1=Ascend -1=Descend</param>
|
||||||
|
public static void t曲リストのソート3_演奏回数の多い順( List<C曲リストノード> ノードリスト, E楽器パート part, int order, params object[] p )
|
||||||
{
|
{
|
||||||
order = -order;
|
order = -order;
|
||||||
int nL12345 = (int) p[ 0 ];
|
int nL12345 = (int) p[ 0 ];
|
||||||
|
32
TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerLevel.cs
Normal file
32
TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerLevel.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace TJAPlayer3.C曲リストノードComparers
|
||||||
|
{
|
||||||
|
internal sealed class C曲リストノードComparerLevel : IComparer<C曲リストノード>
|
||||||
|
{
|
||||||
|
private readonly int _order;
|
||||||
|
|
||||||
|
public C曲リストノードComparerLevel(int order)
|
||||||
|
{
|
||||||
|
this._order = order;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Compare(C曲リストノード n1, C曲リストノード n2)
|
||||||
|
{
|
||||||
|
int _n1s = (n1.eノード種別 != C曲リストノード.Eノード種別.SCORE) ? 0 : 1;
|
||||||
|
int _n2s = (n2.eノード種別 != C曲リストノード.Eノード種別.SCORE) ? 0 : 1;
|
||||||
|
|
||||||
|
|
||||||
|
if (_n1s == 0 || _n2s == 0)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return _order * _diffOf(n1).CompareTo(_diffOf(n2));
|
||||||
|
}
|
||||||
|
|
||||||
|
private int _diffOf(C曲リストノード n1)
|
||||||
|
{
|
||||||
|
return n1.nLevel[TJAPlayer3.stage選曲.act曲リスト.tFetchDifficulty(n1)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace TJAPlayer3.C曲リストノードComparers
|
||||||
|
{
|
||||||
|
internal sealed class C曲リストノードComparerSubtitle : IComparer<C曲リストノード>
|
||||||
|
{
|
||||||
|
private readonly int _order;
|
||||||
|
|
||||||
|
public C曲リストノードComparerSubtitle(int order)
|
||||||
|
{
|
||||||
|
this._order = order;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Compare(C曲リストノード n1, C曲リストノード n2)
|
||||||
|
{
|
||||||
|
return _order * n1.strサブタイトル.CompareTo(n2.strサブタイトル);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -22,9 +22,9 @@ namespace TJAPlayer3.C曲リストノードComparers
|
|||||||
case C曲リストノード.Eノード種別.UNKNOWN:
|
case C曲リストノード.Eノード種別.UNKNOWN:
|
||||||
return 2;
|
return 2;
|
||||||
case C曲リストノード.Eノード種別.RANDOM:
|
case C曲リストノード.Eノード種別.RANDOM:
|
||||||
return 3;
|
|
||||||
case C曲リストノード.Eノード種別.BACKBOX:
|
|
||||||
return 4;
|
return 4;
|
||||||
|
case C曲リストノード.Eノード種別.BACKBOX:
|
||||||
|
return 3;
|
||||||
default:
|
default:
|
||||||
throw new ArgumentOutOfRangeException();
|
throw new ArgumentOutOfRangeException();
|
||||||
}
|
}
|
||||||
|
@ -3092,7 +3092,7 @@ namespace TJAPlayer3
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int tFetchDifficulty(C曲リストノード song)
|
public int tFetchDifficulty(C曲リストノード song)
|
||||||
{
|
{
|
||||||
var closest = this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song);
|
var closest = this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song);
|
||||||
int defaultTable = Math.Max(0, Math.Min((int)Difficulty.Edit + 1, TJAPlayer3.ConfigIni.nDefaultCourse));
|
int defaultTable = Math.Max(0, Math.Min((int)Difficulty.Edit + 1, TJAPlayer3.ConfigIni.nDefaultCourse));
|
||||||
|
@ -10,18 +10,19 @@ namespace TJAPlayer3
|
|||||||
public CActSortSongs()
|
public CActSortSongs()
|
||||||
{
|
{
|
||||||
List<CItemBase> lci = new List<CItemBase>();
|
List<CItemBase> lci = new List<CItemBase>();
|
||||||
lci.Add( new CItemList( "絶対パス", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "Z,Y,X,...", "A,B,C,..." } ) );
|
lci.Add( new CItemList( CLangManager.LangInstance.GetString(9201), CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "Z,Y,X,...", "A,B,C,..." } ) );
|
||||||
lci.Add( new CItemList( "曲名", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "Z,Y,X,...", "A,B,C,..." } ) );
|
lci.Add( new CItemList(CLangManager.LangInstance.GetString(9202), CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "Z,Y,X,...", "A,B,C,..." } ) );
|
||||||
//lci.Add( new CItemList( "Level", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "99,98,97,...", "1,2,3,..." } ) );
|
lci.Add(new CItemList(CLangManager.LangInstance.GetString(9203), CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "Z,Y,X,...", "A,B,C,..." }));
|
||||||
|
lci.Add( new CItemList(CLangManager.LangInstance.GetString(9204), CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "13,12,11,...", "1,2,3,..." } ) );
|
||||||
//lci.Add( new CItemList( "Best Rank", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "E,D,C,...", "SS,S,A,..." } ) );
|
//lci.Add( new CItemList( "Best Rank", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "E,D,C,...", "SS,S,A,..." } ) );
|
||||||
//lci.Add( new CItemList( "PlayCount", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "10,9,8,...", "1,2,3,..." } ) );
|
//lci.Add( new CItemList( "PlayCount", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "10,9,8,...", "1,2,3,..." } ) );
|
||||||
//lci.Add( new CItemList( "Author", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "Z,Y,X,...", "A,B,C,..." } ) );
|
|
||||||
//lci.Add( new CItemList( "SkillPoint", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "100,99,98,...", "1,2,3,..." } ) );
|
//lci.Add( new CItemList( "SkillPoint", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "100,99,98,...", "1,2,3,..." } ) );
|
||||||
#if TEST_SORTBGM
|
#if TEST_SORTBGM
|
||||||
lci.Add( new CItemList( "BPM", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "300,200,...", "70,80,90,..." } ) );
|
lci.Add( new CItemList( "BPM", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "300,200,...", "70,80,90,..." } ) );
|
||||||
#endif
|
#endif
|
||||||
lci.Add( new CItemList( "ジャンル", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "AC15", "AC8-14" } ) );
|
//lci.Add( new CItemList( "ジャンル", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "AC15", "AC8-14" } ) );
|
||||||
lci.Add( new CItemList( "戻る", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "", "" } ) );
|
lci.Add( new CItemList(CLangManager.LangInstance.GetString(9200), CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "", "" } ) );
|
||||||
|
|
||||||
base.Initialize( lci, false, "SORT MENU" );
|
base.Initialize( lci, false, "SORT MENU" );
|
||||||
}
|
}
|
||||||
@ -57,41 +58,18 @@ namespace TJAPlayer3
|
|||||||
);
|
);
|
||||||
this.act曲リスト.t選択曲が変更された(true);
|
this.act曲リスト.t選択曲が変更された(true);
|
||||||
break;
|
break;
|
||||||
//case (int) EOrder.Level:
|
case EOrder.Subtitle:
|
||||||
// this.act曲リスト.t曲リストのソート(
|
this.act曲リスト.t曲リストのソート(
|
||||||
// CSongs管理.t曲リストのソート4_LEVEL順, eInst, nSortOrder,
|
CSongs管理.tSongListSortBySubtitle, eInst, nSortOrder
|
||||||
// this.act曲リスト.n現在のアンカ難易度レベル
|
);
|
||||||
// );
|
this.act曲リスト.t選択曲が変更された( true );
|
||||||
// this.act曲リスト.t選択曲が変更された( true );
|
break;
|
||||||
// break;
|
case EOrder.Level:
|
||||||
//case (int) EOrder.BestRank:
|
this.act曲リスト.t曲リストのソート(
|
||||||
// this.act曲リスト.t曲リストのソート(
|
CSongs管理.tSongListSortByLevel, eInst, nSortOrder
|
||||||
// CSongs管理.t曲リストのソート5_BestRank順, eInst, nSortOrder,
|
);
|
||||||
// this.act曲リスト.n現在のアンカ難易度レベル
|
this.act曲リスト.t選択曲が変更された(true);
|
||||||
// );
|
break;
|
||||||
// break;
|
|
||||||
//case (int) EOrder.PlayCount:
|
|
||||||
// // this.act曲リスト.t曲リストのソート3_演奏回数の多い順( eInst, nSortOrder );
|
|
||||||
// this.act曲リスト.t曲リストのソート(
|
|
||||||
// CSongs管理.t曲リストのソート3_演奏回数の多い順, eInst, nSortOrder,
|
|
||||||
// this.act曲リスト.n現在のアンカ難易度レベル
|
|
||||||
// );
|
|
||||||
// this.act曲リスト.t選択曲が変更された( true );
|
|
||||||
// break;
|
|
||||||
//case (int) EOrder.Author:
|
|
||||||
// this.act曲リスト.t曲リストのソート(
|
|
||||||
// CSongs管理.t曲リストのソート8_アーティスト名順, eInst, nSortOrder,
|
|
||||||
// this.act曲リスト.n現在のアンカ難易度レベル
|
|
||||||
// );
|
|
||||||
// this.act曲リスト.t選択曲が変更された( true );
|
|
||||||
// break;
|
|
||||||
//case (int) EOrder.SkillPoint:
|
|
||||||
// this.act曲リスト.t曲リストのソート(
|
|
||||||
// CSongs管理.t曲リストのソート6_SkillPoint順, eInst, nSortOrder,
|
|
||||||
// this.act曲リスト.n現在のアンカ難易度レベル
|
|
||||||
// );
|
|
||||||
// this.act曲リスト.t選択曲が変更された( true );
|
|
||||||
// break;
|
|
||||||
#if TEST_SORTBGM
|
#if TEST_SORTBGM
|
||||||
case (int) ESortItem.BPM:
|
case (int) ESortItem.BPM:
|
||||||
this.act曲リスト.t曲リストのソート(
|
this.act曲リスト.t曲リストのソート(
|
||||||
@ -101,16 +79,7 @@ namespace TJAPlayer3
|
|||||||
this.act曲リスト.t選択曲が変更された(true);
|
this.act曲リスト.t選択曲が変更された(true);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
//ジャンル順
|
case EOrder.Return:
|
||||||
case EOrder.Genre:
|
|
||||||
this.act曲リスト.t曲リストのソート(
|
|
||||||
//CDTXMania.Songs管理.t曲リストのソート7_更新日時順, eInst, nSortOrder,
|
|
||||||
//this.act曲リスト.n現在のアンカ難易度レベル
|
|
||||||
CSongs管理.t曲リストのソート9_ジャンル順, eInst, nSortOrder, 0
|
|
||||||
);
|
|
||||||
this.act曲リスト.t選択曲が変更された( true );
|
|
||||||
break;
|
|
||||||
case EOrder.Return:
|
|
||||||
this.tDeativatePopupMenu();
|
this.tDeativatePopupMenu();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -153,8 +122,9 @@ namespace TJAPlayer3
|
|||||||
{
|
{
|
||||||
Path = 0,
|
Path = 0,
|
||||||
Title = 1,
|
Title = 1,
|
||||||
Genre = 2,
|
Subtitle = 2,
|
||||||
Return = 3
|
Level = 3,
|
||||||
|
Return = 4
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------
|
//-----------------
|
||||||
|
@ -149,6 +149,8 @@
|
|||||||
<Compile Include="I18N\CLang_jp.cs" />
|
<Compile Include="I18N\CLang_jp.cs" />
|
||||||
<Compile Include="I18N\CLang_zh.cs" />
|
<Compile Include="I18N\CLang_zh.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Songs\C曲リストノードComparers\C曲リストノードComparerLevel.cs" />
|
||||||
|
<Compile Include="Songs\C曲リストノードComparers\C曲リストノードComparerSubtitle.cs" />
|
||||||
<Compile Include="Stages\01.StartUp\CCharacter.cs" />
|
<Compile Include="Stages\01.StartUp\CCharacter.cs" />
|
||||||
<Compile Include="Stages\01.StartUp\CPuchichara.cs" />
|
<Compile Include="Stages\01.StartUp\CPuchichara.cs" />
|
||||||
<Compile Include="Stages\07.Game\Taiko\NotesManager.cs" />
|
<Compile Include="Stages\07.Game\Taiko\NotesManager.cs" />
|
||||||
|
@ -335,6 +335,16 @@
|
|||||||
9101 : Difficulty
|
9101 : Difficulty
|
||||||
9102 : Level
|
9102 : Level
|
||||||
|
|
||||||
|
# Sort methods (092XX)
|
||||||
|
|
||||||
|
9200 : Return
|
||||||
|
9201 : Path
|
||||||
|
9202 : Title
|
||||||
|
9203 : Subtitle
|
||||||
|
9204 : Displayed difficulty
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Feature specific errors (9XXXX)
|
# Feature specific errors (9XXXX)
|
||||||
|
|
||||||
90000 : "Invalid condition" error message
|
90000 : "Invalid condition" error message
|
||||||
|
Loading…
Reference in New Issue
Block a user