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)",
|
||||
[9101] = "Difficulty",
|
||||
[9102] = "Level",
|
||||
|
||||
[9200] = "Return",
|
||||
[9201] = "Path",
|
||||
[9202] = "Title",
|
||||
[9203] = "Subtitle",
|
||||
[9204] = "Displayed Level",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -365,6 +365,12 @@ namespace TJAPlayer3
|
||||
[9100] = "Rechercher (Difficulté)",
|
||||
[9101] = "Difficulté",
|
||||
[9102] = "Niveau",
|
||||
|
||||
[9200] = "Retour",
|
||||
[9201] = "Chemin",
|
||||
[9202] = "Titre",
|
||||
[9203] = "Sous-titre",
|
||||
[9204] = "Niveau",
|
||||
};
|
||||
}
|
||||
}
|
@ -428,6 +428,12 @@ namespace TJAPlayer3
|
||||
[9100] = "検索 (難易度)",
|
||||
[9101] = "難易度",
|
||||
[9102] = "レベル",
|
||||
};
|
||||
|
||||
[9200] = "戻る",
|
||||
[9201] = "絶対パス",
|
||||
[9202] = "曲名",
|
||||
[9203] = "作者名",
|
||||
[9204] = "表示レベル",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -1389,7 +1389,8 @@ namespace TJAPlayer3
|
||||
var comparer = new ComparerChain<C曲リストノード>(
|
||||
new C曲リストノードComparerノード種別(),
|
||||
new C曲リストノードComparer絶対パス(order),
|
||||
new C曲リストノードComparerタイトル(order));
|
||||
new C曲リストノードComparerタイトル(order),
|
||||
new C曲リストノードComparerSubtitle(order));
|
||||
|
||||
ノードリスト.Sort( comparer );
|
||||
}
|
||||
@ -1399,18 +1400,42 @@ namespace TJAPlayer3
|
||||
var comparer = new ComparerChain<C曲リストノード>(
|
||||
new C曲リストノードComparerノード種別(),
|
||||
new C曲リストノードComparerタイトル(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 )
|
||||
public static void tSongListSortBySubtitle(List<C曲リストノード> ノードリスト, E楽器パート part, int order, params object[] p)
|
||||
{
|
||||
var comparer = new ComparerChain<C曲リストノード>(
|
||||
new C曲リストノードComparerノード種別(),
|
||||
new C曲リストノードComparerSubtitle(order),
|
||||
new C曲リストノードComparerタイトル(order),
|
||||
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;
|
||||
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:
|
||||
return 2;
|
||||
case C曲リストノード.Eノード種別.RANDOM:
|
||||
return 3;
|
||||
case C曲リストノード.Eノード種別.BACKBOX:
|
||||
return 4;
|
||||
case C曲リストノード.Eノード種別.BACKBOX:
|
||||
return 3;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
@ -3092,7 +3092,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
}
|
||||
|
||||
private int tFetchDifficulty(C曲リストノード song)
|
||||
public int tFetchDifficulty(C曲リストノード song)
|
||||
{
|
||||
var closest = this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song);
|
||||
int defaultTable = Math.Max(0, Math.Min((int)Difficulty.Edit + 1, TJAPlayer3.ConfigIni.nDefaultCourse));
|
||||
|
@ -10,18 +10,19 @@ namespace TJAPlayer3
|
||||
public CActSortSongs()
|
||||
{
|
||||
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( "曲名", 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(9201), 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(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( "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,..." } ) );
|
||||
#if TEST_SORTBGM
|
||||
lci.Add( new CItemList( "BPM", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "300,200,...", "70,80,90,..." } ) );
|
||||
#endif
|
||||
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( "ジャンル", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "AC15", "AC8-14" } ) );
|
||||
lci.Add( new CItemList(CLangManager.LangInstance.GetString(9200), CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "", "" } ) );
|
||||
|
||||
base.Initialize( lci, false, "SORT MENU" );
|
||||
}
|
||||
@ -57,41 +58,18 @@ namespace TJAPlayer3
|
||||
);
|
||||
this.act曲リスト.t選択曲が変更された(true);
|
||||
break;
|
||||
//case (int) EOrder.Level:
|
||||
// this.act曲リスト.t曲リストのソート(
|
||||
// CSongs管理.t曲リストのソート4_LEVEL順, eInst, nSortOrder,
|
||||
// this.act曲リスト.n現在のアンカ難易度レベル
|
||||
// );
|
||||
// this.act曲リスト.t選択曲が変更された( true );
|
||||
// break;
|
||||
//case (int) EOrder.BestRank:
|
||||
// this.act曲リスト.t曲リストのソート(
|
||||
// CSongs管理.t曲リストのソート5_BestRank順, eInst, nSortOrder,
|
||||
// this.act曲リスト.n現在のアンカ難易度レベル
|
||||
// );
|
||||
// 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;
|
||||
case EOrder.Subtitle:
|
||||
this.act曲リスト.t曲リストのソート(
|
||||
CSongs管理.tSongListSortBySubtitle, eInst, nSortOrder
|
||||
);
|
||||
this.act曲リスト.t選択曲が変更された( true );
|
||||
break;
|
||||
case EOrder.Level:
|
||||
this.act曲リスト.t曲リストのソート(
|
||||
CSongs管理.tSongListSortByLevel, eInst, nSortOrder
|
||||
);
|
||||
this.act曲リスト.t選択曲が変更された(true);
|
||||
break;
|
||||
#if TEST_SORTBGM
|
||||
case (int) ESortItem.BPM:
|
||||
this.act曲リスト.t曲リストのソート(
|
||||
@ -101,16 +79,7 @@ namespace TJAPlayer3
|
||||
this.act曲リスト.t選択曲が変更された(true);
|
||||
break;
|
||||
#endif
|
||||
//ジャンル順
|
||||
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:
|
||||
case EOrder.Return:
|
||||
this.tDeativatePopupMenu();
|
||||
break;
|
||||
default:
|
||||
@ -153,8 +122,9 @@ namespace TJAPlayer3
|
||||
{
|
||||
Path = 0,
|
||||
Title = 1,
|
||||
Genre = 2,
|
||||
Return = 3
|
||||
Subtitle = 2,
|
||||
Level = 3,
|
||||
Return = 4
|
||||
}
|
||||
|
||||
//-----------------
|
||||
|
@ -149,6 +149,8 @@
|
||||
<Compile Include="I18N\CLang_jp.cs" />
|
||||
<Compile Include="I18N\CLang_zh.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\CPuchichara.cs" />
|
||||
<Compile Include="Stages\07.Game\Taiko\NotesManager.cs" />
|
||||
|
@ -335,6 +335,16 @@
|
||||
9101 : Difficulty
|
||||
9102 : Level
|
||||
|
||||
# Sort methods (092XX)
|
||||
|
||||
9200 : Return
|
||||
9201 : Path
|
||||
9202 : Title
|
||||
9203 : Subtitle
|
||||
9204 : Displayed difficulty
|
||||
|
||||
|
||||
|
||||
# Feature specific errors (9XXXX)
|
||||
|
||||
90000 : "Invalid condition" error message
|
||||
|
Loading…
Reference in New Issue
Block a user