@ -2245,6 +2245,150 @@ namespace TJAPlayer3
|
||||
SongSelect_Explicit[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_FloorNum_Show")
|
||||
{
|
||||
SongSelect_FloorNum_Show = C変換.bONorOFF(strParam[0]);
|
||||
}
|
||||
else if (strCommand == "SongSelect_FloorNum_X")
|
||||
{
|
||||
SongSelect_FloorNum_X = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "SongSelect_FloorNum_Y")
|
||||
{
|
||||
SongSelect_FloorNum_Y = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "SongSelect_FloorNum_Interval")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
SongSelect_FloorNum_Interval[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Show")
|
||||
{
|
||||
SongSelect_DanInfo_Show = C変換.bONorOFF(strParam[0]);
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Icon_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
SongSelect_DanInfo_Icon_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Icon_Y")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
SongSelect_DanInfo_Icon_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Icon_Scale")
|
||||
{
|
||||
SongSelect_DanInfo_Icon_Scale = float.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Difficulty_Cymbol_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
SongSelect_DanInfo_Difficulty_Cymbol_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Difficulty_Cymbol_Y")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
SongSelect_DanInfo_Difficulty_Cymbol_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Difficulty_Cymbol_Scale")
|
||||
{
|
||||
SongSelect_DanInfo_Difficulty_Cymbol_Scale = float.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Level_Number_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
SongSelect_DanInfo_Level_Number_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Level_Number_Y")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
SongSelect_DanInfo_Level_Number_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Level_Number_Scale")
|
||||
{
|
||||
SongSelect_DanInfo_Level_Number_Scale = float.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Title_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
SongSelect_DanInfo_Title_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Title_Y")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
SongSelect_DanInfo_Title_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Title_Size")
|
||||
{
|
||||
SongSelect_DanInfo_Title_Size = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Exam_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
SongSelect_DanInfo_Exam_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Exam_Y")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
SongSelect_DanInfo_Exam_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Exam_Size")
|
||||
{
|
||||
SongSelect_DanInfo_Exam_Size = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Exam_Value_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
SongSelect_DanInfo_Exam_Value_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Exam_Value_Y")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
SongSelect_DanInfo_Exam_Value_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanInfo_Exam_Value_Scale")
|
||||
{
|
||||
SongSelect_DanInfo_Exam_Value_Scale = float.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "SongSelect_Table_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
@ -7430,6 +7574,65 @@ namespace TJAPlayer3
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TowerSelect
|
||||
else if (strCommand == "TowerSelect_Title_Size")
|
||||
{
|
||||
TowerSelect_Title_Size = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "TowerSelect_Title_MaxWidth")
|
||||
{
|
||||
TowerSelect_Title_MaxWidth = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "TowerSelect_Title_Offset")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
TowerSelect_Title_Offset[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "TowerSelect_SubTitle_Size")
|
||||
{
|
||||
TowerSelect_SubTitle_Size = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "TowerSelect_SubTitle_MaxWidth")
|
||||
{
|
||||
TowerSelect_SubTitle_MaxWidth = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "TowerSelect_SubTitle_Offset")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
TowerSelect_SubTitle_Offset[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "TowerSelect_Bar_Count")
|
||||
{
|
||||
TowerSelect_Bar_Count = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "TowerSelect_Bar_X")
|
||||
{
|
||||
TowerSelect_Bar_X = new int[TowerSelect_Bar_Count];
|
||||
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < TowerSelect_Bar_Count; i++)
|
||||
{
|
||||
TowerSelect_Bar_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "TowerSelect_Bar_Y")
|
||||
{
|
||||
TowerSelect_Bar_Y = new int[TowerSelect_Bar_Count];
|
||||
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < TowerSelect_Bar_Count; i++)
|
||||
{
|
||||
TowerSelect_Bar_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region OpenEncyclopedia
|
||||
else if (strCommand == "OpenEncyclopedia_Context_Item2")
|
||||
{
|
||||
@ -8258,6 +8461,31 @@ namespace TJAPlayer3
|
||||
public int[] SongSelect_Bpm_Y = new int[] { 20, 66, 112 };
|
||||
public int[] SongSelect_Bpm_Interval = new int[] { 22, 0 };
|
||||
|
||||
public bool SongSelect_FloorNum_Show = false;
|
||||
public int SongSelect_FloorNum_X = 1200;
|
||||
public int SongSelect_FloorNum_Y = 205;
|
||||
public int[] SongSelect_FloorNum_Interval = new int[] { 30, 0 };
|
||||
|
||||
public bool SongSelect_DanInfo_Show = false;
|
||||
public int[] SongSelect_DanInfo_Icon_X = new int[] { 1001, 1001, 1001 };
|
||||
public int[] SongSelect_DanInfo_Icon_Y = new int[] { 269, 309, 349 };
|
||||
public float SongSelect_DanInfo_Icon_Scale = 0.5f;
|
||||
public int[] SongSelect_DanInfo_Difficulty_Cymbol_X = new int[] { 1028, 1028, 1028 };
|
||||
public int[] SongSelect_DanInfo_Difficulty_Cymbol_Y = new int[] { 263, 303, 343 };
|
||||
public float SongSelect_DanInfo_Difficulty_Cymbol_Scale = 0.5f;
|
||||
public int[] SongSelect_DanInfo_Level_Number_X = new int[] { 1040, 1040, 1040 };
|
||||
public int[] SongSelect_DanInfo_Level_Number_Y = new int[] { 267, 307, 347 };
|
||||
public float SongSelect_DanInfo_Level_Number_Scale = 0.5f;
|
||||
public int[] SongSelect_DanInfo_Title_X = new int[] { 1032, 1032, 1032 };
|
||||
public int[] SongSelect_DanInfo_Title_Y = new int[] { 258, 298, 338 };
|
||||
public int SongSelect_DanInfo_Title_Size = 12;
|
||||
public int[] SongSelect_DanInfo_Exam_X = new int[] { 1030, 1030, 1030, 1030, 1030, 1030 };
|
||||
public int[] SongSelect_DanInfo_Exam_Y = new int[] { 398, 426, 454, 482, 510, 538 };
|
||||
public int SongSelect_DanInfo_Exam_Size = 10;
|
||||
public int[] SongSelect_DanInfo_Exam_Value_X = new int[] { 1097, 1162, 1227 };
|
||||
public int[] SongSelect_DanInfo_Exam_Value_Y = new int[] { 388, 416, 444, 472, 500, 528 };
|
||||
public float SongSelect_DanInfo_Exam_Value_Scale = 0.5f;
|
||||
|
||||
public int[] SongSelect_Table_X = new int[] { 0, 1034, 180, 854, 360 };
|
||||
public int[] SongSelect_Table_Y = new int[] { 0, 0, -204, -204, 0 };
|
||||
|
||||
@ -9372,6 +9600,20 @@ namespace TJAPlayer3
|
||||
|
||||
#endregion
|
||||
|
||||
#region TowerSelect
|
||||
|
||||
public int TowerSelect_Title_Size = 30;
|
||||
public int TowerSelect_Title_MaxWidth = 230;
|
||||
public int[] TowerSelect_Title_Offset = new int[] { 0, -30 };
|
||||
public int TowerSelect_SubTitle_Size = 30;
|
||||
public int TowerSelect_SubTitle_MaxWidth = 230;
|
||||
public int[] TowerSelect_SubTitle_Offset = new int[] { 0, 10 };
|
||||
public int TowerSelect_Bar_Count = 7;
|
||||
public int[] TowerSelect_Bar_X = new int[] { -260, 40, 340, 640, 940, 1240, 1540 };
|
||||
public int[] TowerSelect_Bar_Y = new int[] { 420, 400, 380, 360, 380, 400, 420 };
|
||||
|
||||
#endregion
|
||||
|
||||
#region OpenEncyclopedia
|
||||
|
||||
public int[] OpenEncyclopedia_Context_Item2 = new int[] { 960, 180 };
|
||||
|
@ -388,6 +388,12 @@ namespace TJAPlayer3
|
||||
private set;
|
||||
}
|
||||
|
||||
public static CStageTowerSelect stageTowerSelect
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
|
||||
public static COpenEncyclopedia stageOpenEncyclopedia
|
||||
{
|
||||
get;
|
||||
@ -977,6 +983,19 @@ namespace TJAPlayer3
|
||||
#endregion
|
||||
break;
|
||||
|
||||
case (int)CStageタイトル.E戻り値.TAIKOTOWERSSTART:
|
||||
#region [Online Lounge]
|
||||
//-----------------------------
|
||||
r現在のステージ.On非活性化();
|
||||
Trace.TraceInformation("----------------------");
|
||||
Trace.TraceInformation("■ Online Lounge");
|
||||
stageTowerSelect.On活性化();
|
||||
r直前のステージ = r現在のステージ;
|
||||
r現在のステージ = stageTowerSelect;
|
||||
//-----------------------------
|
||||
#endregion
|
||||
break;
|
||||
|
||||
case (int)CStageタイトル.E戻り値.HEYA:
|
||||
#region [Heya menu]
|
||||
//-----------------------------
|
||||
@ -1302,6 +1321,7 @@ namespace TJAPlayer3
|
||||
case (int)CStage選曲.E戻り値.選曲した:
|
||||
#region [ *** ]
|
||||
//-----------------------------
|
||||
|
||||
r現在のステージ.On非活性化();
|
||||
Trace.TraceInformation("----------------------");
|
||||
Trace.TraceInformation("■ 曲読み込み");
|
||||
@ -1803,6 +1823,66 @@ for (int i = 0; i < 3; i++) {
|
||||
#endregion
|
||||
break;
|
||||
|
||||
|
||||
case CStage.Eステージ.TaikoTowers:
|
||||
#region [ *** ]
|
||||
switch (this.n進行描画の戻り値)
|
||||
{
|
||||
case (int)EReturnValue.ReturnToTitle:
|
||||
#region [ *** ]
|
||||
//-----------------------------
|
||||
r現在のステージ.On非活性化();
|
||||
Trace.TraceInformation("----------------------");
|
||||
Trace.TraceInformation("■ タイトル");
|
||||
stageタイトル.On活性化();
|
||||
r直前のステージ = r現在のステージ;
|
||||
r現在のステージ = stageタイトル;
|
||||
|
||||
/*
|
||||
Skin.bgm選曲画面イン.t停止する();
|
||||
Skin.bgm選曲画面.t停止する();
|
||||
*/
|
||||
CSongSelectSongManager.stopSong();
|
||||
CSongSelectSongManager.enable();
|
||||
|
||||
foreach (STPlugin pg in this.listプラグイン)
|
||||
{
|
||||
Directory.SetCurrentDirectory(pg.strプラグインフォルダ);
|
||||
pg.plugin.Onステージ変更();
|
||||
Directory.SetCurrentDirectory(TJAPlayer3.strEXEのあるフォルダ);
|
||||
}
|
||||
|
||||
this.tガベージコレクションを実行する();
|
||||
break;
|
||||
//-----------------------------
|
||||
#endregion
|
||||
|
||||
case (int)EReturnValue.SongChoosen:
|
||||
#region [ *** ]
|
||||
//-----------------------------
|
||||
latestSongSelect = stageTowerSelect;
|
||||
r現在のステージ.On非活性化();
|
||||
Trace.TraceInformation("----------------------");
|
||||
Trace.TraceInformation("■ 曲読み込み");
|
||||
stage曲読み込み.On活性化();
|
||||
r直前のステージ = r現在のステージ;
|
||||
r現在のステージ = stage曲読み込み;
|
||||
|
||||
foreach (STPlugin pg in this.listプラグイン)
|
||||
{
|
||||
Directory.SetCurrentDirectory(pg.strプラグインフォルダ);
|
||||
pg.plugin.Onステージ変更();
|
||||
Directory.SetCurrentDirectory(TJAPlayer3.strEXEのあるフォルダ);
|
||||
}
|
||||
|
||||
this.tガベージコレクションを実行する();
|
||||
break;
|
||||
//-----------------------------
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
break;
|
||||
|
||||
case CStage.Eステージ.ChangeSkin:
|
||||
#region [ *** ]
|
||||
//-----------------------------
|
||||
@ -2651,6 +2731,7 @@ for (int i = 0; i < 3; i++) {
|
||||
stage段位選択 = new CStage段位選択();
|
||||
stageHeya = new CStageHeya();
|
||||
stageOnlineLounge = new CStageOnlineLounge();
|
||||
stageTowerSelect = new CStageTowerSelect();
|
||||
stageOpenEncyclopedia = new COpenEncyclopedia();
|
||||
stage曲読み込み = new CStage曲読み込み();
|
||||
stage演奏ドラム画面 = new CStage演奏ドラム画面();
|
||||
@ -2669,7 +2750,8 @@ for (int i = 0; i < 3; i++) {
|
||||
this.listトップレベルActivities.Add( stage選曲 );
|
||||
this.listトップレベルActivities.Add( stage段位選択 );
|
||||
this.listトップレベルActivities.Add( stageHeya );
|
||||
this.listトップレベルActivities.Add( stageOnlineLounge );
|
||||
this.listトップレベルActivities.Add(stageOnlineLounge);
|
||||
this.listトップレベルActivities.Add(stageTowerSelect);
|
||||
this.listトップレベルActivities.Add( stageOpenEncyclopedia );
|
||||
this.listトップレベルActivities.Add( stage曲読み込み );
|
||||
this.listトップレベルActivities.Add( stage演奏ドラム画面 );
|
||||
|
@ -52,6 +52,7 @@ namespace TJAPlayer3
|
||||
public List<Cスコア> listSongsDB;*/ // songs.dbから構築されるlist
|
||||
public List<C曲リストノード> list曲ルート; // 起動時にフォルダ検索して構築されるlist
|
||||
public List<C曲リストノード> list曲ルート_Dan = new List<C曲リストノード>(); // 起動時にフォルダ検索して構築されるlist
|
||||
public List<C曲リストノード> list曲ルート_Tower = new List<C曲リストノード>(); // 起動時にフォルダ検索して構築されるlist
|
||||
public static List<FDK.CTexture> listCustomBGs = new List<FDK.CTexture>();
|
||||
public bool bIsSuspending // 外部スレッドから、内部スレッドのsuspendを指示する時にtrueにする
|
||||
{ // 再開時は、これをfalseにしてから、次のautoReset.Set()を実行する
|
||||
@ -957,13 +958,14 @@ namespace TJAPlayer3
|
||||
{
|
||||
if (c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.BOX)
|
||||
{
|
||||
|
||||
if (c曲リストノード.strジャンル == "段位道場")
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.bDanTowerHide)
|
||||
list曲ルート.Remove(c曲リストノード);
|
||||
|
||||
// Add to dojo
|
||||
list曲ルート_Dan = c曲リストノード.list子リスト;
|
||||
/*
|
||||
for (int i = 0; i < c曲リストノード.list子リスト.Count; i++)
|
||||
{
|
||||
if(c曲リストノード.list子リスト[i].eノード種別 == C曲リストノード.Eノード種別.SCORE)
|
||||
@ -972,6 +974,14 @@ namespace TJAPlayer3
|
||||
continue;
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
else if (c曲リストノード.strジャンル == "太鼓タワー")
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.bDanTowerHide)
|
||||
list曲ルート.Remove(c曲リストノード);
|
||||
|
||||
list曲ルート_Tower = c曲リストノード.list子リスト;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -981,6 +991,15 @@ namespace TJAPlayer3
|
||||
{
|
||||
list曲ルート_Dan.Add(c曲リストノード.list子リスト[i]);
|
||||
|
||||
if (TJAPlayer3.ConfigIni.bDanTowerHide)
|
||||
c曲リストノード.list子リスト.Remove(c曲リストノード.list子リスト[i]);
|
||||
|
||||
continue;
|
||||
}
|
||||
if (c曲リストノード.list子リスト[i].arスコア[5] != null)
|
||||
{
|
||||
list曲ルート_Tower.Add(c曲リストノード.list子リスト[i]);
|
||||
|
||||
if (TJAPlayer3.ConfigIni.bDanTowerHide)
|
||||
c曲リストノード.list子リスト.Remove(c曲リストノード.list子リスト[i]);
|
||||
|
||||
|
@ -32,7 +32,7 @@ namespace TJAPlayer3
|
||||
|
||||
const string MODALS = @"11_Modals\";
|
||||
public const string ONLINELOUNGE = @"12_OnlineLounge\";
|
||||
const string TOWERSELECT = @"13_TowerSelect\";
|
||||
public const string TOWERSELECT = @"13_TowerSelect\";
|
||||
public const string OPENENCYCLOPEDIA = @"15_OpenEncyclopedia\";
|
||||
|
||||
// InGame
|
||||
@ -239,6 +239,7 @@ namespace TJAPlayer3
|
||||
SongSelect_Level_Number_Big_Icon = TxC(SONGSELECT + @"Level_Number_Big_Icon.png");
|
||||
SongSelect_Level_Number_Icon = TxC(SONGSELECT + @"Level_Number_Icon.png");
|
||||
SongSelect_Bpm_Number = TxC(SONGSELECT + @"Bpm_Number.png");
|
||||
SongSelect_Floor_Number = TxC(SONGSELECT + @"Floor_Number.png");
|
||||
SongSelect_Credit = TxC(SONGSELECT + @"Credit.png");
|
||||
SongSelect_Timer = TxC(SONGSELECT + @"Timer.png");
|
||||
SongSelect_Explicit = TxC(SONGSELECT + @"Explicit.png");
|
||||
@ -1282,6 +1283,8 @@ namespace TJAPlayer3
|
||||
|
||||
#region [13_TowerSelect]
|
||||
|
||||
TowerSelect_Tower = TxC(TOWERSELECT + @"Tower.png");
|
||||
|
||||
#endregion
|
||||
|
||||
#region [15_OpenEncyclopedia]
|
||||
@ -2102,6 +2105,7 @@ namespace TJAPlayer3
|
||||
SongSelect_Level_Number_Big_Colored,
|
||||
SongSelect_Level_Number_Big_Icon,
|
||||
SongSelect_Bpm_Number,
|
||||
SongSelect_Floor_Number,
|
||||
SongSelect_Bar_Select,
|
||||
SongSelect_Bar_Genre_Overlay,
|
||||
SongSelect_Credit,
|
||||
@ -2565,6 +2569,9 @@ Result_Mountain = new CTexture[4]*/;
|
||||
|
||||
#region [13_TowerSelect]
|
||||
|
||||
public CTexture
|
||||
TowerSelect_Tower;
|
||||
|
||||
#endregion
|
||||
|
||||
#region [15_OpenEncyclopedia]
|
||||
|
@ -121,7 +121,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
true,
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
|
@ -350,7 +350,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
bool operationSucceded = false;
|
||||
|
||||
if (CMainMenuTab.__Menus[usedMenus[this.n現在の選択行モード選択]].rp == E戻り値.DANGAMESTART)
|
||||
if (CMainMenuTab.__Menus[usedMenus[this.n現在の選択行モード選択]].rp == E戻り値.DANGAMESTART || CMainMenuTab.__Menus[usedMenus[this.n現在の選択行モード選択]].rp == E戻り値.TAIKOTOWERSSTART)
|
||||
{
|
||||
if (TJAPlayer3.Songs管理.list曲ルート_Dan.Count > 0 && TJAPlayer3.ConfigIni.nPlayerCount == 1)
|
||||
operationSucceded = true;
|
||||
|
@ -50,8 +50,6 @@ namespace TJAPlayer3
|
||||
|
||||
ctExamConditionsAnim = new CCounter(0, 4000, 1, TJAPlayer3.Timer);
|
||||
|
||||
stバー情報 = new STバー情報[TJAPlayer3.Songs管理.list曲ルート_Dan.Count];
|
||||
|
||||
if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName))
|
||||
pfDanSong = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), TJAPlayer3.Skin.DaniSelect_Font_DanSong_Size);
|
||||
else
|
||||
@ -68,10 +66,8 @@ namespace TJAPlayer3
|
||||
this.ttkExams[i] = new TitleTextureKey(CLangManager.LangInstance.GetString(1010 + i), this.pfExamFont, Color.White, Color.SaddleBrown, 1000);
|
||||
}
|
||||
|
||||
|
||||
//一応チェックしておく。
|
||||
if (TJAPlayer3.Songs管理.list曲ルート_Dan.Count > 0)
|
||||
this.tバーの初期化();
|
||||
listSongs = TJAPlayer3.Songs管理.list曲ルート_Dan;
|
||||
tUpdateSongs();
|
||||
|
||||
base.On活性化();
|
||||
}
|
||||
@ -253,6 +249,7 @@ namespace TJAPlayer3
|
||||
private CStage選曲.STNumber[] stSoulNumber = new CStage選曲.STNumber[10];
|
||||
private CStage選曲.STNumber[] stExamNumber = new CStage選曲.STNumber[10];
|
||||
|
||||
public List<C曲リストノード> listSongs;
|
||||
public STバー情報[] stバー情報;
|
||||
|
||||
public struct STバー情報
|
||||
@ -260,6 +257,7 @@ namespace TJAPlayer3
|
||||
public TitleTextureKey[] ttkタイトル;
|
||||
public int[] n曲難易度;
|
||||
public int[] n曲レベル;
|
||||
public C曲リストノード.Eノード種別 eノード種別;
|
||||
public List<CDTX.DanSongs> List_DanSongs;
|
||||
public CTexture txBarCenter;
|
||||
public CTexture txDanPlate;
|
||||
@ -270,9 +268,19 @@ namespace TJAPlayer3
|
||||
public Color cDanTickColor;
|
||||
}
|
||||
|
||||
public C曲リストノード currentBar
|
||||
{
|
||||
get
|
||||
{
|
||||
return listSongs[n現在の選択行];
|
||||
}
|
||||
}
|
||||
|
||||
static CPrivateFastFont pfDanPlateTitle = null;
|
||||
static CPrivateFastFont pfDanIconTitle = null;
|
||||
|
||||
private Dictionary<string, CTexture> BarTexCache = new Dictionary<string, CTexture>();
|
||||
|
||||
public static void RefleshSkin()
|
||||
{
|
||||
TJAPlayer3.t安全にDisposeする(ref pfDanPlateTitle);
|
||||
@ -388,6 +396,10 @@ namespace TJAPlayer3
|
||||
int currentSong = n現在の選択行 + modifier;
|
||||
bool over4 = false;
|
||||
|
||||
switch(stバー情報[currentSong].eノード種別)
|
||||
{
|
||||
case C曲リストノード.Eノード種別.SCORE:
|
||||
{
|
||||
#region [Center bar and Dan plate]
|
||||
|
||||
int danTick = stバー情報[currentSong].nDanTick;
|
||||
@ -599,7 +611,8 @@ namespace TJAPlayer3
|
||||
{
|
||||
TJAPlayer3.Tx.Dani_Exam_Number.Opacity = opacity;
|
||||
|
||||
if (stバー情報[currentSong].List_DanSongs[stバー情報[currentSong].List_DanSongs.Count - 1].Dan_C[j] != null) {
|
||||
if (stバー情報[currentSong].List_DanSongs[stバー情報[currentSong].List_DanSongs.Count - 1].Dan_C[j] != null)
|
||||
{
|
||||
//個別の条件がありますよー
|
||||
|
||||
int moveX = TJAPlayer3.Skin.DaniSelect_Exam_Interval[0];
|
||||
@ -685,19 +698,46 @@ namespace TJAPlayer3
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void tOpenFolder(C曲リストノード song)
|
||||
{
|
||||
listSongs = song.list子リスト;
|
||||
n現在の選択行 = 0;
|
||||
tUpdateSongs();
|
||||
}
|
||||
|
||||
public void tCloseFolder(C曲リストノード song)
|
||||
{
|
||||
listSongs = song.r親ノード.r親ノード.list子リスト;
|
||||
n現在の選択行 = 0;
|
||||
tUpdateSongs();
|
||||
}
|
||||
|
||||
private void tUpdateSongs()
|
||||
{
|
||||
stバー情報 = new STバー情報[listSongs.Count];
|
||||
this.tバーの初期化();
|
||||
}
|
||||
|
||||
private void tバーの初期化()
|
||||
{
|
||||
for (int i = 0; i < stバー情報.Length; i++)
|
||||
{
|
||||
var song = TJAPlayer3.Songs管理.list曲ルート_Dan[i];
|
||||
var song = listSongs[i];
|
||||
|
||||
stバー情報[i].ttkタイトル = new TitleTextureKey[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count + 1];
|
||||
stバー情報[i].n曲難易度 = new int[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count];
|
||||
stバー情報[i].n曲レベル = new int[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count];
|
||||
for (int j = 0; j < TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count; j++)
|
||||
stバー情報[i].eノード種別 = song.eノード種別;
|
||||
switch (song.eノード種別)
|
||||
{
|
||||
case C曲リストノード.Eノード種別.SCORE:
|
||||
{
|
||||
stバー情報[i].ttkタイトル = new TitleTextureKey[listSongs[i].DanSongs.Count + 1];
|
||||
stバー情報[i].n曲難易度 = new int[listSongs[i].DanSongs.Count];
|
||||
stバー情報[i].n曲レベル = new int[listSongs[i].DanSongs.Count];
|
||||
for (int j = 0; j < listSongs[i].DanSongs.Count; j++)
|
||||
{
|
||||
stバー情報[i].ttkタイトル[j] = new TitleTextureKey(song.DanSongs[j].bTitleShow ? "???" : song.DanSongs[j].Title, pfDanSong, Color.White, Color.Black, 700);
|
||||
stバー情報[i].n曲難易度[j] = song.DanSongs[j].Difficulty;
|
||||
@ -708,7 +748,7 @@ namespace TJAPlayer3
|
||||
// Two char header, will be used for grade unlocking too
|
||||
string tmp = song.strタイトル.Substring(0, 2);
|
||||
|
||||
stバー情報[i].ttkタイトル[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count] = new TitleTextureKey(tmp, pfDanSong, Color.Black, Color.Transparent, 700);
|
||||
stバー情報[i].ttkタイトル[listSongs[i].DanSongs.Count] = new TitleTextureKey(tmp, pfDanSong, Color.Black, Color.Transparent, 700);
|
||||
|
||||
stバー情報[i].nDanTick = song.arスコア[6].譜面情報.nDanTick;
|
||||
stバー情報[i].cDanTickColor = song.arスコア[6].譜面情報.cDanTickColor;
|
||||
@ -716,8 +756,52 @@ namespace TJAPlayer3
|
||||
//stバー情報[i].clearGrade = song.arスコア[6].譜面情報.nクリア[0];
|
||||
stバー情報[i].clearGrade = song.arスコア[6].GPInfo[TJAPlayer3.SaveFile].nClear[0];
|
||||
|
||||
stバー情報[i].txBarCenter = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(song.arスコア[6].ファイル情報.ファイルの絶対パス) + @"\Bar_Center.png");
|
||||
stバー情報[i].txDanPlate = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(song.arスコア[6].ファイル情報.ファイルの絶対パス) + @"\Dan_Plate.png");
|
||||
string barCenter = Path.GetDirectoryName(song.arスコア[6].ファイル情報.ファイルの絶対パス) + @"\Bar_Center.png";
|
||||
if (BarTexCache.TryGetValue(barCenter, out CTexture texture1))
|
||||
{
|
||||
stバー情報[i].txBarCenter = texture1;
|
||||
}
|
||||
else
|
||||
{
|
||||
stバー情報[i].txBarCenter = TJAPlayer3.tテクスチャの生成(barCenter);
|
||||
BarTexCache.Add(barCenter, stバー情報[i].txBarCenter);
|
||||
}
|
||||
|
||||
string danPlate = Path.GetDirectoryName(song.arスコア[6].ファイル情報.ファイルの絶対パス) + @"\Dan_Plate.png";
|
||||
if (BarTexCache.TryGetValue(danPlate, out CTexture texture2))
|
||||
{
|
||||
stバー情報[i].txDanPlate = texture2;
|
||||
}
|
||||
else
|
||||
{
|
||||
stバー情報[i].txDanPlate = TJAPlayer3.tテクスチャの生成(danPlate);
|
||||
BarTexCache.Add(danPlate, stバー情報[i].txDanPlate);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case C曲リストノード.Eノード種別.BOX:
|
||||
{
|
||||
stバー情報[i].ttkタイトル = new TitleTextureKey[1];
|
||||
stバー情報[i].ttkタイトル[0] = new TitleTextureKey(song.strタイトル, pfDanSong, Color.White, Color.Black, 700);
|
||||
stバー情報[i].cDanTickColor = song.BoxColor;
|
||||
}
|
||||
break;
|
||||
case C曲リストノード.Eノード種別.BACKBOX:
|
||||
{
|
||||
stバー情報[i].ttkタイトル = new TitleTextureKey[1];
|
||||
stバー情報[i].ttkタイトル[0] = new TitleTextureKey(CLangManager.LangInstance.GetString(200), pfDanSong, Color.White, Color.Black, 700);
|
||||
stバー情報[i].cDanTickColor = Color.FromArgb(180, 150, 70);
|
||||
}
|
||||
break;
|
||||
case C曲リストノード.Eノード種別.RANDOM:
|
||||
{
|
||||
stバー情報[i].ttkタイトル = new TitleTextureKey[1];
|
||||
stバー情報[i].ttkタイトル[0] = new TitleTextureKey(CLangManager.LangInstance.GetString(203), pfDanSong, Color.White, Color.Black, 700);
|
||||
stバー情報[i].cDanTickColor = Color.FromArgb(150, 250, 255);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -741,7 +825,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
}
|
||||
|
||||
public void tLevelNumberDraw(float x, float y, int num)
|
||||
public void tLevelNumberDraw(float x, float y, int num, float scale = 1.0f)
|
||||
{
|
||||
/*
|
||||
for (int j = 0; j < str.Length; j++)
|
||||
@ -764,11 +848,15 @@ namespace TJAPlayer3
|
||||
{
|
||||
float offset = j;
|
||||
|
||||
float _x = x - (TJAPlayer3.Skin.DaniSelect_Level_Number_Interval[0] * offset) + (width / 2);
|
||||
float _y = y - (TJAPlayer3.Skin.DaniSelect_Level_Number_Interval[1] * offset) - (width / 2);
|
||||
float _x = x - (((TJAPlayer3.Skin.DaniSelect_Level_Number_Interval[0] * offset) + (width / 2)) * scale);
|
||||
float _y = y - (((TJAPlayer3.Skin.DaniSelect_Level_Number_Interval[1] * offset) - (width / 2)) * scale);
|
||||
|
||||
TJAPlayer3.Tx.Dani_Level_Number.vc拡大縮小倍率.X = scale;
|
||||
TJAPlayer3.Tx.Dani_Level_Number.vc拡大縮小倍率.Y = scale;
|
||||
TJAPlayer3.Tx.Dani_Level_Number.t2D描画(TJAPlayer3.app.Device, _x, _y,
|
||||
new RectangleF(width * nums[j], 0, width, height));
|
||||
TJAPlayer3.Tx.Dani_Level_Number.vc拡大縮小倍率.X = 1;
|
||||
TJAPlayer3.Tx.Dani_Level_Number.vc拡大縮小倍率.Y = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -812,7 +900,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
}
|
||||
|
||||
public void tExamDraw(float x, float y, int num, Exam.Range Range)
|
||||
public void tExamDraw(float x, float y, int num, Exam.Range Range, float scale = 1.0f)
|
||||
{
|
||||
/*
|
||||
TJAPlayer3.Tx.Dani_Exam_Number.t2D描画(TJAPlayer3.app.Device, x + 19 * str.Length, y - 24 / 2, new RectangleF(45 * (int)Range, 24, 45, 24));
|
||||
@ -838,16 +926,20 @@ namespace TJAPlayer3
|
||||
|
||||
float text_width = TJAPlayer3.Skin.DaniSelect_Exam_Number_Text_Width;
|
||||
|
||||
TJAPlayer3.Tx.Dani_Exam_Number.t2D描画(TJAPlayer3.app.Device, x + TJAPlayer3.Skin.DaniSelect_Exam_Number_Interval[0] + (width / 2),
|
||||
y + TJAPlayer3.Skin.DaniSelect_Exam_Number_Interval[1] - (height / 2),
|
||||
TJAPlayer3.Tx.Dani_Exam_Number.vc拡大縮小倍率.X = scale;
|
||||
TJAPlayer3.Tx.Dani_Exam_Number.vc拡大縮小倍率.Y = scale;
|
||||
|
||||
TJAPlayer3.Tx.Dani_Exam_Number.t2D描画(TJAPlayer3.app.Device,
|
||||
x + ((TJAPlayer3.Skin.DaniSelect_Exam_Number_Interval[0] + (width / 2)) * scale),
|
||||
y + ((TJAPlayer3.Skin.DaniSelect_Exam_Number_Interval[1] - (height / 2)) * scale),
|
||||
new RectangleF(text_width * (int)Range, height, text_width, height));
|
||||
|
||||
for (int j = 0; j < nums.Length; j++)
|
||||
{
|
||||
float offset = j;
|
||||
|
||||
float _x = x - (TJAPlayer3.Skin.DaniSelect_Exam_Number_Interval[0] * offset) + (width / 2);
|
||||
float _y = y - (TJAPlayer3.Skin.DaniSelect_Exam_Number_Interval[1] * offset) - (height / 2);
|
||||
float _x = x - (((TJAPlayer3.Skin.DaniSelect_Exam_Number_Interval[0] * offset) + (width / 2)) * scale);
|
||||
float _y = y - (((TJAPlayer3.Skin.DaniSelect_Exam_Number_Interval[1] * offset) - (height / 2)) * scale);
|
||||
|
||||
TJAPlayer3.Tx.Dani_Exam_Number.t2D描画(TJAPlayer3.app.Device, _x, _y,
|
||||
new RectangleF(width * nums[j], 0, width, height));
|
||||
|
@ -6,6 +6,7 @@ using System.Threading.Tasks;
|
||||
using System.Drawing;
|
||||
using FDK;
|
||||
using static TJAPlayer3.CActSelect曲リスト;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
@ -178,6 +179,16 @@ namespace TJAPlayer3
|
||||
|
||||
if (!this.段位リスト.bスクロール中 && !b選択した && !bDifficultyIn)
|
||||
{
|
||||
int returnTitle()
|
||||
{
|
||||
TJAPlayer3.Skin.soundDanSelectBGM.t停止する();
|
||||
TJAPlayer3.Skin.sound取消音.t再生する();
|
||||
this.eフェードアウト完了時の戻り値 = E戻り値.タイトルに戻る;
|
||||
this.actFOtoTitle.tフェードアウト開始();
|
||||
base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.RightArrow) ||
|
||||
TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange))
|
||||
{
|
||||
@ -192,6 +203,11 @@ namespace TJAPlayer3
|
||||
|
||||
if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return) ||
|
||||
TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.Decide))
|
||||
{
|
||||
switch(段位リスト.currentBar.eノード種別)
|
||||
{
|
||||
case C曲リストノード.Eノード種別.SCORE:
|
||||
case C曲リストノード.Eノード種別.RANDOM:
|
||||
{
|
||||
//this.t段位を選択する();
|
||||
//TJAPlayer3.Skin.soundDanSongSelectCheck.t再生する();
|
||||
@ -199,16 +215,33 @@ namespace TJAPlayer3
|
||||
this.bDifficultyIn = true;
|
||||
this.段位挑戦選択画面.ctBarIn.t開始(0, 255, 1, TJAPlayer3.Timer);
|
||||
}
|
||||
break;
|
||||
case C曲リストノード.Eノード種別.BOX:
|
||||
{
|
||||
TJAPlayer3.Skin.sound決定音.t再生する();
|
||||
段位リスト.tOpenFolder(段位リスト.currentBar);
|
||||
}
|
||||
break;
|
||||
case C曲リストノード.Eノード種別.BACKBOX:
|
||||
{
|
||||
if (TJAPlayer3.Songs管理.list曲ルート.Contains(段位リスト.currentBar.r親ノード) && 段位リスト.currentBar.r親ノード.strジャンル == "段位道場")
|
||||
{
|
||||
return returnTitle();
|
||||
}
|
||||
else
|
||||
{
|
||||
TJAPlayer3.Skin.sound決定音.t再生する();
|
||||
段位リスト.tCloseFolder(段位リスト.currentBar);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape) ||
|
||||
TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.Cancel))
|
||||
{
|
||||
TJAPlayer3.Skin.soundDanSelectBGM.t停止する();
|
||||
TJAPlayer3.Skin.sound取消音.t再生する();
|
||||
this.eフェードアウト完了時の戻り値 = E戻り値.タイトルに戻る;
|
||||
this.actFOtoTitle.tフェードアウト開始();
|
||||
base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
|
||||
return 0;
|
||||
return returnTitle();
|
||||
}
|
||||
}
|
||||
|
||||
@ -256,8 +289,20 @@ namespace TJAPlayer3
|
||||
if (段位挑戦選択画面.bOption) actPlayOption.On進行描画(0);
|
||||
|
||||
if (ct待機.n現在の値 >= 3000)
|
||||
{
|
||||
if (段位リスト.currentBar.eノード種別 == C曲リストノード.Eノード種別.RANDOM)
|
||||
{
|
||||
if (!tSelectSongRandomly())
|
||||
{
|
||||
bDifficultyIn = false;
|
||||
b選択した = false;
|
||||
TJAPlayer3.Skin.soundError.t再生する();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
TJAPlayer3.stage段位選択.t段位を選択する();
|
||||
}
|
||||
ct待機.n現在の値 = 0;
|
||||
ct待機.t停止();
|
||||
}
|
||||
@ -293,10 +338,10 @@ namespace TJAPlayer3
|
||||
public void t段位を選択する()
|
||||
{
|
||||
this.b選択した = true;
|
||||
TJAPlayer3.stage選曲.r確定された曲 = TJAPlayer3.Songs管理.list曲ルート_Dan[段位リスト.n現在の選択行];
|
||||
TJAPlayer3.stage選曲.r確定されたスコア = TJAPlayer3.Songs管理.list曲ルート_Dan[段位リスト.n現在の選択行].arスコア[(int)Difficulty.Dan];
|
||||
TJAPlayer3.stage選曲.r確定された曲 = 段位リスト.listSongs[段位リスト.n現在の選択行];
|
||||
TJAPlayer3.stage選曲.r確定されたスコア = 段位リスト.listSongs[段位リスト.n現在の選択行].arスコア[(int)Difficulty.Dan];
|
||||
TJAPlayer3.stage選曲.n確定された曲の難易度[0] = (int)Difficulty.Dan;
|
||||
TJAPlayer3.stage選曲.str確定された曲のジャンル = TJAPlayer3.Songs管理.list曲ルート_Dan[段位リスト.n現在の選択行].strジャンル;
|
||||
TJAPlayer3.stage選曲.str確定された曲のジャンル = 段位リスト.listSongs[段位リスト.n現在の選択行].strジャンル;
|
||||
if ((TJAPlayer3.stage選曲.r確定された曲 != null) && (TJAPlayer3.stage選曲.r確定されたスコア != null))
|
||||
{
|
||||
this.eフェードアウト完了時の戻り値 = E戻り値.選曲した;
|
||||
@ -307,6 +352,99 @@ namespace TJAPlayer3
|
||||
CSongSelectSongManager.stopSong();
|
||||
}
|
||||
|
||||
private bool tSelectSongRandomly()
|
||||
{
|
||||
this.b選択した = true;
|
||||
var mandatoryDiffs = new List<int>();
|
||||
C曲リストノード song = 段位リスト.currentBar;
|
||||
|
||||
song.stackランダム演奏番号.Clear();
|
||||
song.listランダム用ノードリスト = null;
|
||||
|
||||
if ((song.stackランダム演奏番号.Count == 0) || (song.listランダム用ノードリスト == null))
|
||||
{
|
||||
if (song.listランダム用ノードリスト == null)
|
||||
{
|
||||
List<C曲リストノード> songs = new List<C曲リストノード>();
|
||||
TJAPlayer3.stage選曲.t指定された曲の子リストの曲を列挙する_孫リスト含む(song.r親ノード, ref songs, ref mandatoryDiffs, true);
|
||||
song.listランダム用ノードリスト = songs;
|
||||
}
|
||||
int count = song.listランダム用ノードリスト.Count;
|
||||
if (count == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
int[] numArray = new int[count];
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
numArray[i] = i;
|
||||
}
|
||||
for (int j = 0; j < (count * 1.5); j++)
|
||||
{
|
||||
int index = TJAPlayer3.Random.Next(count);
|
||||
int num5 = TJAPlayer3.Random.Next(count);
|
||||
int num6 = numArray[num5];
|
||||
numArray[num5] = numArray[index];
|
||||
numArray[index] = num6;
|
||||
}
|
||||
for (int k = 0; k < count; k++)
|
||||
{
|
||||
song.stackランダム演奏番号.Push(numArray[k]);
|
||||
}
|
||||
|
||||
if (TJAPlayer3.ConfigIni.bLogDTX詳細ログ出力)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder(0x400);
|
||||
builder.Append(string.Format("ランダムインデックスリストを作成しました: {0}曲: ", song.stackランダム演奏番号.Count));
|
||||
for (int m = 0; m < count; m++)
|
||||
{
|
||||
builder.Append(string.Format("{0} ", numArray[m]));
|
||||
}
|
||||
Trace.TraceInformation(builder.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
// Third assignment
|
||||
TJAPlayer3.stage選曲.r確定された曲 = song.listランダム用ノードリスト[song.stackランダム演奏番号.Pop()];
|
||||
TJAPlayer3.stage選曲.n確定された曲の難易度[0] = (int)Difficulty.Dan;
|
||||
|
||||
TJAPlayer3.stage選曲.r確定されたスコア = TJAPlayer3.stage選曲.r確定された曲.arスコア[TJAPlayer3.stage選曲.act曲リスト.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(TJAPlayer3.stage選曲.r確定された曲)];
|
||||
TJAPlayer3.stage選曲.str確定された曲のジャンル = TJAPlayer3.stage選曲.r確定された曲.strジャンル;
|
||||
|
||||
//TJAPlayer3.Skin.sound曲決定音.t再生する();
|
||||
|
||||
this.eフェードアウト完了時の戻り値 = E戻り値.選曲した;
|
||||
this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略
|
||||
base.eフェーズID = CStage.Eフェーズ.選曲_NowLoading画面へのフェードアウト;
|
||||
|
||||
#region [Log]
|
||||
|
||||
if (TJAPlayer3.ConfigIni.bLogDTX詳細ログ出力)
|
||||
{
|
||||
int[] numArray2 = song.stackランダム演奏番号.ToArray();
|
||||
StringBuilder builder2 = new StringBuilder(0x400);
|
||||
builder2.Append("ランダムインデックスリスト残り: ");
|
||||
if (numArray2.Length > 0)
|
||||
{
|
||||
for (int n = 0; n < numArray2.Length; n++)
|
||||
{
|
||||
builder2.Append(string.Format("{0} ", numArray2[n]));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
builder2.Append("(なし)");
|
||||
}
|
||||
Trace.TraceInformation(builder2.ToString());
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
CSongSelectSongManager.stopSong();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private ScriptBG Background;
|
||||
|
||||
public CCounter ct待機;
|
||||
|
217
TJAPlayer3/Stages/05.SongSelect/CActSelectDanInfo.cs
Normal file
@ -0,0 +1,217 @@
|
||||
using FDK;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
// Minimalist menu class to use for custom menus
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
class CActSelectDanInfo : CStage
|
||||
{
|
||||
public CActSelectDanInfo()
|
||||
{
|
||||
base.b活性化してない = true;
|
||||
}
|
||||
|
||||
public override void On活性化()
|
||||
{
|
||||
// On activation
|
||||
|
||||
if (base.b活性化してる)
|
||||
return;
|
||||
|
||||
ctStep = new CCounter(0, 1000, 2, TJAPlayer3.Timer);
|
||||
ctStepFade = new CCounter(0, 255, 0.5, TJAPlayer3.Timer);
|
||||
|
||||
base.On活性化();
|
||||
}
|
||||
|
||||
public override void On非活性化()
|
||||
{
|
||||
// On de-activation
|
||||
|
||||
base.On非活性化();
|
||||
}
|
||||
|
||||
public override void OnManagedリソースの作成()
|
||||
{
|
||||
// Ressource allocation
|
||||
|
||||
if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName))
|
||||
pfTitleFont = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), TJAPlayer3.Skin.SongSelect_DanInfo_Title_Size);
|
||||
else
|
||||
pfTitleFont = new CPrivateFastFont(new FontFamily("MS UI Gothic"), TJAPlayer3.Skin.SongSelect_DanInfo_Title_Size);
|
||||
|
||||
if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName))
|
||||
pfExamFont = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), TJAPlayer3.Skin.SongSelect_DanInfo_Exam_Size);
|
||||
else
|
||||
pfExamFont = new CPrivateFastFont(new FontFamily("MS UI Gothic"), TJAPlayer3.Skin.SongSelect_DanInfo_Exam_Size);
|
||||
|
||||
ttkExams = new CActSelect曲リスト.TitleTextureKey[(int)Exam.Type.Total];
|
||||
for (int i = 0; i < ttkExams.Length; i++)
|
||||
{
|
||||
ttkExams[i] = new CActSelect曲リスト.TitleTextureKey(CLangManager.LangInstance.GetString(1010 + i), pfExamFont, Color.Black, Color.Transparent, 700);
|
||||
}
|
||||
|
||||
base.OnManagedリソースの作成();
|
||||
}
|
||||
|
||||
public override void OnManagedリソースの解放()
|
||||
{
|
||||
// Ressource freeing
|
||||
|
||||
TJAPlayer3.t安全にDisposeする(ref pfTitleFont);
|
||||
TJAPlayer3.t安全にDisposeする(ref pfExamFont);
|
||||
|
||||
base.OnManagedリソースの解放();
|
||||
}
|
||||
|
||||
public override int On進行描画()
|
||||
{
|
||||
ctStep.t進行();
|
||||
ctStepFade.t進行();
|
||||
if (ctStep.n現在の値 == ctStep.n終了値)
|
||||
{
|
||||
ctStep = new CCounter(0, 1000, 2, TJAPlayer3.Timer);
|
||||
tNextStep();
|
||||
}
|
||||
|
||||
if (TJAPlayer3.Skin.SongSelect_DanInfo_Show)
|
||||
{
|
||||
for(int i = 0; i < TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs.Count; i++)
|
||||
{
|
||||
var dan = TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs[i];
|
||||
int songIndex = i / 3;
|
||||
int opacity = 255;
|
||||
if (TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs.Count > 3)
|
||||
{
|
||||
if (nNowSongIndex == songIndex)
|
||||
{
|
||||
opacity = ctStepFade.n現在の値;
|
||||
}
|
||||
else if (nPrevSongIndex == songIndex)
|
||||
{
|
||||
opacity = 255 - ctStepFade.n現在の値;
|
||||
}
|
||||
else
|
||||
{
|
||||
opacity = 0;
|
||||
}
|
||||
}
|
||||
|
||||
int pos = i % 3;
|
||||
CActSelect段位リスト.tDisplayDanIcon(i + 1, TJAPlayer3.Skin.SongSelect_DanInfo_Icon_X[pos], TJAPlayer3.Skin.SongSelect_DanInfo_Icon_Y[pos], opacity, TJAPlayer3.Skin.SongSelect_DanInfo_Icon_Scale, false);
|
||||
|
||||
int difficulty_cymbol_width = TJAPlayer3.Tx.Dani_Difficulty_Cymbol.szテクスチャサイズ.Width / 5;
|
||||
int difficulty_cymbol_height = TJAPlayer3.Tx.Dani_Difficulty_Cymbol.szテクスチャサイズ.Height;
|
||||
|
||||
TJAPlayer3.Tx.Dani_Difficulty_Cymbol.Opacity = opacity;
|
||||
TJAPlayer3.Tx.Dani_Difficulty_Cymbol.vc拡大縮小倍率.X = TJAPlayer3.Skin.SongSelect_DanInfo_Difficulty_Cymbol_Scale;
|
||||
TJAPlayer3.Tx.Dani_Difficulty_Cymbol.vc拡大縮小倍率.Y = TJAPlayer3.Skin.SongSelect_DanInfo_Difficulty_Cymbol_Scale;
|
||||
TJAPlayer3.Tx.Dani_Difficulty_Cymbol.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_DanInfo_Difficulty_Cymbol_X[pos], TJAPlayer3.Skin.SongSelect_DanInfo_Difficulty_Cymbol_Y[pos], new Rectangle(dan.Difficulty * difficulty_cymbol_width, 0, difficulty_cymbol_width, difficulty_cymbol_height));
|
||||
TJAPlayer3.Tx.Dani_Difficulty_Cymbol.Opacity = 255;
|
||||
TJAPlayer3.Tx.Dani_Difficulty_Cymbol.vc拡大縮小倍率.X = 1;
|
||||
TJAPlayer3.Tx.Dani_Difficulty_Cymbol.vc拡大縮小倍率.Y = 1;
|
||||
|
||||
TJAPlayer3.Tx.Dani_Level_Number.Opacity = opacity;
|
||||
TJAPlayer3.stage段位選択.段位リスト.tLevelNumberDraw(TJAPlayer3.Skin.SongSelect_DanInfo_Level_Number_X[pos], TJAPlayer3.Skin.SongSelect_DanInfo_Level_Number_Y[pos], dan.Level, TJAPlayer3.Skin.SongSelect_DanInfo_Level_Number_Scale);
|
||||
TJAPlayer3.Tx.Dani_Level_Number.Opacity = 255;
|
||||
|
||||
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkTitles[i]).Opacity = opacity;
|
||||
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkTitles[i]).t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_DanInfo_Title_X[pos], TJAPlayer3.Skin.SongSelect_DanInfo_Title_Y[pos]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
for (int j = 0; j < CExamInfo.cMaxExam; j++)
|
||||
{
|
||||
int index = j;
|
||||
Dan_C danc0 = TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs[0].Dan_C[j];
|
||||
|
||||
if (danc0 != null)
|
||||
{
|
||||
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(this.ttkExams[(int)danc0.GetExamType()]).t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_DanInfo_Exam_X[index], TJAPlayer3.Skin.SongSelect_DanInfo_Exam_Y[index]);
|
||||
}
|
||||
|
||||
if (TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs[TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs.Count - 1].Dan_C[j] == null)
|
||||
{
|
||||
Dan_C danc = TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs[0].Dan_C[j];
|
||||
if (danc != null)
|
||||
{
|
||||
TJAPlayer3.stage段位選択.段位リスト.tExamDraw(TJAPlayer3.Skin.SongSelect_DanInfo_Exam_Value_X[0], TJAPlayer3.Skin.SongSelect_DanInfo_Exam_Value_Y[index], danc.Value[0], danc.GetExamRange(), TJAPlayer3.Skin.SongSelect_DanInfo_Exam_Value_Scale);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs.Count; i++)
|
||||
{
|
||||
Dan_C danc = TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs[i].Dan_C[j];
|
||||
if (danc != null)
|
||||
{
|
||||
int opacity = 255;
|
||||
if (TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs.Count > 3)
|
||||
{
|
||||
if (nNowSongIndex == i / 3)
|
||||
{
|
||||
opacity = ctStepFade.n現在の値;
|
||||
}
|
||||
else if (nPrevSongIndex == i / 3)
|
||||
{
|
||||
opacity = 255 - ctStepFade.n現在の値;
|
||||
}
|
||||
else
|
||||
{
|
||||
opacity = 0;
|
||||
}
|
||||
}
|
||||
|
||||
TJAPlayer3.Tx.Dani_Exam_Number.Opacity = opacity;
|
||||
TJAPlayer3.stage段位選択.段位リスト.tExamDraw(TJAPlayer3.Skin.SongSelect_DanInfo_Exam_Value_X[i % 3], TJAPlayer3.Skin.SongSelect_DanInfo_Exam_Value_Y[index], danc.Value[0], danc.GetExamRange(), TJAPlayer3.Skin.SongSelect_DanInfo_Exam_Value_Scale);
|
||||
TJAPlayer3.Tx.Dani_Exam_Number.Opacity = 255;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void UpdateSong()
|
||||
{
|
||||
if (TJAPlayer3.stage選曲.r現在選択中の曲 == null || TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs == null) return;
|
||||
|
||||
ttkTitles = new CActSelect曲リスト.TitleTextureKey[TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs.Count];
|
||||
for (int i = 0; i < TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs.Count; i++)
|
||||
{
|
||||
var dan = TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs[i];
|
||||
ttkTitles[i] = new CActSelect曲リスト.TitleTextureKey(dan.Title, pfTitleFont, Color.Black, Color.Transparent, 700);
|
||||
}
|
||||
}
|
||||
|
||||
#region [Private]
|
||||
|
||||
private CActSelect曲リスト.TitleTextureKey[] ttkTitles;
|
||||
private CActSelect曲リスト.TitleTextureKey[] ttkExams;
|
||||
private CPrivateFastFont pfTitleFont;
|
||||
private CPrivateFastFont pfExamFont;
|
||||
|
||||
private CCounter ctStep;
|
||||
private CCounter ctStepFade;
|
||||
|
||||
private int nPrevSongIndex;
|
||||
private int nNowSongIndex;
|
||||
|
||||
private void tNextStep()
|
||||
{
|
||||
nPrevSongIndex = nNowSongIndex;
|
||||
nNowSongIndex = (nNowSongIndex + 1) % (int)Math.Ceiling(TJAPlayer3.stage選曲.r現在選択中の曲.DanSongs.Count / 3.0);
|
||||
ctStepFade = new CCounter(0, 255, 1, TJAPlayer3.Timer);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
106
TJAPlayer3/Stages/05.SongSelect/CActSelectSongInfo.cs
Normal file
@ -0,0 +1,106 @@
|
||||
using FDK;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
// Minimalist menu class to use for custom menus
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
class CActSelectSongInfo : CStage
|
||||
{
|
||||
public CActSelectSongInfo()
|
||||
{
|
||||
base.b活性化してない = true;
|
||||
}
|
||||
|
||||
public override void On活性化()
|
||||
{
|
||||
// On activation
|
||||
|
||||
if (base.b活性化してる)
|
||||
return;
|
||||
|
||||
|
||||
|
||||
base.On活性化();
|
||||
}
|
||||
|
||||
public override void On非活性化()
|
||||
{
|
||||
// On de-activation
|
||||
|
||||
base.On非活性化();
|
||||
}
|
||||
|
||||
public override void OnManagedリソースの作成()
|
||||
{
|
||||
// Ressource allocation
|
||||
|
||||
base.OnManagedリソースの作成();
|
||||
}
|
||||
|
||||
public override void OnManagedリソースの解放()
|
||||
{
|
||||
// Ressource freeing
|
||||
|
||||
base.OnManagedリソースの解放();
|
||||
}
|
||||
|
||||
public override int On進行描画()
|
||||
{
|
||||
if (TJAPlayer3.stage選曲.r現在選択中の曲 != null && TJAPlayer3.stage選曲.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE)
|
||||
{
|
||||
int[] bpms = new int[3] {
|
||||
(int)TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[TJAPlayer3.stage選曲.act曲リスト.tFetchDifficulty(TJAPlayer3.stage選曲.r現在選択中の曲)].譜面情報.BaseBpm,
|
||||
(int)TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[TJAPlayer3.stage選曲.act曲リスト.tFetchDifficulty(TJAPlayer3.stage選曲.r現在選択中の曲)].譜面情報.MinBpm,
|
||||
(int)TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[TJAPlayer3.stage選曲.act曲リスト.tFetchDifficulty(TJAPlayer3.stage選曲.r現在選択中の曲)].譜面情報.MaxBpm
|
||||
};
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
tBPMNumberDraw(TJAPlayer3.Skin.SongSelect_Bpm_X[i], TJAPlayer3.Skin.SongSelect_Bpm_Y[i], bpms[i]);
|
||||
}
|
||||
|
||||
if (TJAPlayer3.stage選曲.act曲リスト.ttkSelectedSongMaker != null && TJAPlayer3.Skin.SongSelect_Maker_Show)
|
||||
{
|
||||
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(TJAPlayer3.stage選曲.act曲リスト.ttkSelectedSongMaker).t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Left, TJAPlayer3.Skin.SongSelect_Maker[0], TJAPlayer3.Skin.SongSelect_Maker[1]);
|
||||
}
|
||||
if (TJAPlayer3.stage選曲.act曲リスト.ttkSelectedSongBPM != null && TJAPlayer3.Skin.SongSelect_BPM_Text_Show)
|
||||
{
|
||||
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(TJAPlayer3.stage選曲.act曲リスト.ttkSelectedSongBPM).t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Left, TJAPlayer3.Skin.SongSelect_BPM_Text[0], TJAPlayer3.Skin.SongSelect_BPM_Text[1]);
|
||||
}
|
||||
if (TJAPlayer3.stage選曲.r現在選択中の曲.bExplicit == true)
|
||||
TJAPlayer3.Tx.SongSelect_Explicit?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_Explicit[0], TJAPlayer3.Skin.SongSelect_Explicit[1]);
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#region [Private]
|
||||
|
||||
private void tBPMNumberDraw(float originx, float originy, int num)
|
||||
{
|
||||
int[] nums = C変換.SeparateDigits(num);
|
||||
|
||||
for (int j = 0; j < nums.Length; j++)
|
||||
{
|
||||
if (TJAPlayer3.Skin.SongSelect_Bpm_Show && TJAPlayer3.Tx.SongSelect_Bpm_Number != null)
|
||||
{
|
||||
float offset = j;
|
||||
float x = originx - (TJAPlayer3.Skin.SongSelect_Bpm_Interval[0] * offset);
|
||||
float y = originy - (TJAPlayer3.Skin.SongSelect_Bpm_Interval[1] * offset);
|
||||
|
||||
float width = TJAPlayer3.Tx.SongSelect_Bpm_Number.sz画像サイズ.Width / 10.0f;
|
||||
float height = TJAPlayer3.Tx.SongSelect_Bpm_Number.sz画像サイズ.Height;
|
||||
|
||||
TJAPlayer3.Tx.SongSelect_Bpm_Number.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(width * nums[j], 0, width, height));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
83
TJAPlayer3/Stages/05.SongSelect/CActSelectTowerInfo.cs
Normal file
@ -0,0 +1,83 @@
|
||||
using FDK;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
// Minimalist menu class to use for custom menus
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
class CActSelectTowerInfo : CStage
|
||||
{
|
||||
public CActSelectTowerInfo()
|
||||
{
|
||||
base.b活性化してない = true;
|
||||
}
|
||||
|
||||
public override void On活性化()
|
||||
{
|
||||
// On activation
|
||||
|
||||
if (base.b活性化してる)
|
||||
return;
|
||||
|
||||
|
||||
|
||||
base.On活性化();
|
||||
}
|
||||
|
||||
public override void On非活性化()
|
||||
{
|
||||
// On de-activation
|
||||
|
||||
base.On非活性化();
|
||||
}
|
||||
|
||||
public override void OnManagedリソースの作成()
|
||||
{
|
||||
// Ressource allocation
|
||||
|
||||
base.OnManagedリソースの作成();
|
||||
}
|
||||
|
||||
public override void OnManagedリソースの解放()
|
||||
{
|
||||
// Ressource freeing
|
||||
|
||||
base.OnManagedリソースの解放();
|
||||
}
|
||||
|
||||
public override int On進行描画()
|
||||
{
|
||||
tFloorNumberDraw(TJAPlayer3.Skin.SongSelect_FloorNum_X, TJAPlayer3.Skin.SongSelect_FloorNum_Y, TJAPlayer3.stage選曲.r現在選択中の曲.nTotalFloor);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#region [Private]
|
||||
|
||||
private void tFloorNumberDraw(float originx, float originy, int num)
|
||||
{
|
||||
int[] nums = C変換.SeparateDigits(num);
|
||||
|
||||
for (int j = 0; j < nums.Length; j++)
|
||||
{
|
||||
if (TJAPlayer3.Skin.SongSelect_FloorNum_Show && TJAPlayer3.Tx.SongSelect_Floor_Number != null)
|
||||
{
|
||||
float offset = j;
|
||||
float x = originx - (TJAPlayer3.Skin.SongSelect_FloorNum_Interval[0] * offset);
|
||||
float y = originy - (TJAPlayer3.Skin.SongSelect_FloorNum_Interval[1] * offset);
|
||||
|
||||
float width = TJAPlayer3.Tx.SongSelect_Floor_Number.sz画像サイズ.Width / 10.0f;
|
||||
float height = TJAPlayer3.Tx.SongSelect_Floor_Number.sz画像サイズ.Height;
|
||||
|
||||
TJAPlayer3.Tx.SongSelect_Floor_Number.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(width * nums[j], 0, width, height));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -1877,14 +1877,18 @@ namespace TJAPlayer3
|
||||
|
||||
#region [Displayables]
|
||||
|
||||
TJAPlayer3.Tx.SongSelect_Frame_Score[1]?.t2D描画(TJAPlayer3.app.Device, 0, 0);
|
||||
int displayingDiff = diff == 5 ? 0 : 2;
|
||||
int width = TJAPlayer3.Tx.SongSelect_Frame_Score[0].sz画像サイズ.Width / 5;
|
||||
int height = TJAPlayer3.Tx.SongSelect_Frame_Score[0].sz画像サイズ.Height;
|
||||
|
||||
TJAPlayer3.Tx.SongSelect_Frame_Score[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_Frame_Score_X[displayingDiff], TJAPlayer3.Skin.SongSelect_Frame_Score_Y[displayingDiff], new Rectangle(width * displayingDiff, 0, width, height));
|
||||
|
||||
var _level_number = (diff == 5) ? TJAPlayer3.Skin.SongSelect_Level_Number_Tower : TJAPlayer3.Skin.SongSelect_Level_Number_Tower;
|
||||
|
||||
|
||||
if (avaliable)
|
||||
{
|
||||
t小文字表示(_level_number[0], _level_number[1],
|
||||
t小文字表示(TJAPlayer3.Skin.SongSelect_Level_Number_X[displayingDiff], TJAPlayer3.Skin.SongSelect_Level_Number_Y[displayingDiff],
|
||||
TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[diff],
|
||||
diff,
|
||||
TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nLevelIcon[diff]
|
||||
@ -1913,8 +1917,8 @@ namespace TJAPlayer3
|
||||
for (int i2 = 0; i2 < TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[diff]; i2++)
|
||||
{
|
||||
TJAPlayer3.Tx.SongSelect_Level?.t2D描画(TJAPlayer3.app.Device,
|
||||
TJAPlayer3.Skin.SongSelect_Level_X[(diff - 5)] + (TJAPlayer3.Skin.SongSelect_Level_Move[0] * i2),
|
||||
TJAPlayer3.Skin.SongSelect_Level_Y[(diff - 5)] + (TJAPlayer3.Skin.SongSelect_Level_Move[1] * i2),
|
||||
TJAPlayer3.Skin.SongSelect_Level_X[displayingDiff] + (TJAPlayer3.Skin.SongSelect_Level_Move[0] * i2),
|
||||
TJAPlayer3.Skin.SongSelect_Level_Y[displayingDiff] + (TJAPlayer3.Skin.SongSelect_Level_Move[1] * i2),
|
||||
new RectangleF(level_width * diff, 0, level_width, level_height));
|
||||
|
||||
}
|
||||
|
@ -198,6 +198,9 @@ namespace TJAPlayer3
|
||||
//base.list子Activities.Add( this.actFOtoNowLoading = new CActFIFOBlack() );
|
||||
base.list子Activities.Add(this.actFOtoNowLoading = new CActFIFOStart());
|
||||
base.list子Activities.Add(this.act曲リスト = new CActSelect曲リスト());
|
||||
base.list子Activities.Add(this.actSongInfo = new CActSelectSongInfo());
|
||||
base.list子Activities.Add(this.actDanInfo = new CActSelectDanInfo());
|
||||
base.list子Activities.Add(this.actTowerInfo = new CActSelectTowerInfo());
|
||||
base.list子Activities.Add(this.actステータスパネル = new CActSelectステータスパネル());
|
||||
base.list子Activities.Add(this.act演奏履歴パネル = new CActSelect演奏履歴パネル());
|
||||
base.list子Activities.Add(this.actPreimageパネル = new CActSelectPreimageパネル());
|
||||
@ -270,6 +273,7 @@ namespace TJAPlayer3
|
||||
this.act演奏履歴パネル.t選択曲が変更された();
|
||||
this.actステータスパネル.t選択曲が変更された();
|
||||
this.actArtistComment.t選択曲が変更された();
|
||||
actDanInfo.UpdateSong();
|
||||
|
||||
#region [ プラグインにも通知する(BOX, RANDOM, BACK なら通知しない)]
|
||||
//---------------------
|
||||
@ -540,28 +544,28 @@ namespace TJAPlayer3
|
||||
|
||||
tTimerDraw(100 - ctTimer.n現在の値);
|
||||
|
||||
if (this.r現在選択中の曲 != null && this.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE)
|
||||
{
|
||||
int[] bpms = new int[3] {
|
||||
(int)r現在選択中の曲.arスコア[act曲リスト.tFetchDifficulty(r現在選択中の曲)].譜面情報.BaseBpm,
|
||||
(int)r現在選択中の曲.arスコア[act曲リスト.tFetchDifficulty(r現在選択中の曲)].譜面情報.MinBpm,
|
||||
(int)r現在選択中の曲.arスコア[act曲リスト.tFetchDifficulty(r現在選択中の曲)].譜面情報.MaxBpm
|
||||
};
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
tBPMNumberDraw(TJAPlayer3.Skin.SongSelect_Bpm_X[i], TJAPlayer3.Skin.SongSelect_Bpm_Y[i], bpms[i]);
|
||||
}
|
||||
|
||||
if (act曲リスト.ttkSelectedSongMaker != null && TJAPlayer3.Skin.SongSelect_Maker_Show)
|
||||
if (this.r現在選択中の曲 != null)
|
||||
{
|
||||
act曲リスト.ResolveTitleTexture(act曲リスト.ttkSelectedSongMaker).t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Left, TJAPlayer3.Skin.SongSelect_Maker[0], TJAPlayer3.Skin.SongSelect_Maker[1]);
|
||||
}
|
||||
if (act曲リスト.ttkSelectedSongBPM != null && TJAPlayer3.Skin.SongSelect_BPM_Text_Show)
|
||||
if (this.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.BOX)
|
||||
{
|
||||
act曲リスト.ResolveTitleTexture(act曲リスト.ttkSelectedSongBPM).t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Left, TJAPlayer3.Skin.SongSelect_BPM_Text[0], TJAPlayer3.Skin.SongSelect_BPM_Text[1]);
|
||||
}
|
||||
if (r現在選択中の曲.bExplicit == true)
|
||||
TJAPlayer3.Tx.SongSelect_Explicit?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_Explicit[0], TJAPlayer3.Skin.SongSelect_Explicit[1]);
|
||||
else if (this.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE)
|
||||
{
|
||||
actSongInfo.On進行描画();
|
||||
|
||||
if (TJAPlayer3.stage選曲.n現在選択中の曲の難易度 == (int)Difficulty.Dan)
|
||||
{
|
||||
actDanInfo.On進行描画();
|
||||
}
|
||||
else if (TJAPlayer3.stage選曲.n現在選択中の曲の難易度 == (int)Difficulty.Tower)
|
||||
{
|
||||
actTowerInfo.On進行描画();
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tSongNumberDraw(TJAPlayer3.Skin.SongSelect_SongNumber_X[0], TJAPlayer3.Skin.SongSelect_SongNumber_Y[0], NowSong);
|
||||
@ -1384,6 +1388,9 @@ namespace TJAPlayer3
|
||||
private CActSelectステータスパネル actステータスパネル;
|
||||
public CActSelect演奏履歴パネル act演奏履歴パネル;
|
||||
public CActSelect曲リスト act曲リスト;
|
||||
public CActSelectSongInfo actSongInfo;
|
||||
public CActSelectDanInfo actDanInfo;
|
||||
public CActSelectTowerInfo actTowerInfo;
|
||||
private CActSelectShowCurrentPosition actShowCurrentPosition;
|
||||
public CActSelect難易度選択画面 act難易度選択画面;
|
||||
public CActPlayOption actPlayOption;
|
||||
@ -1526,28 +1533,6 @@ namespace TJAPlayer3
|
||||
}
|
||||
}
|
||||
|
||||
private void tBPMNumberDraw(float originx, float originy, int num)
|
||||
{
|
||||
//int x = 1171, y = 57;
|
||||
|
||||
int[] nums = C変換.SeparateDigits(num);
|
||||
|
||||
for (int j = 0; j < nums.Length; j++)
|
||||
{
|
||||
if (TJAPlayer3.Skin.SongSelect_Bpm_Show && TJAPlayer3.Tx.SongSelect_Bpm_Number != null)
|
||||
{
|
||||
float offset = j;
|
||||
float x = originx - (TJAPlayer3.Skin.SongSelect_Bpm_Interval[0] * offset);
|
||||
float y = originy - (TJAPlayer3.Skin.SongSelect_Bpm_Interval[1] * offset);
|
||||
|
||||
float width = TJAPlayer3.Tx.SongSelect_Bpm_Number.sz画像サイズ.Width / 10.0f;
|
||||
float height = TJAPlayer3.Tx.SongSelect_Bpm_Number.sz画像サイズ.Height;
|
||||
|
||||
TJAPlayer3.Tx.SongSelect_Bpm_Number.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(width * nums[j], 0, width, height));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private class CCommandHistory // #24063 2011.1.16 yyagi コマンド入力履歴を保持_確認するクラス
|
||||
@ -2017,7 +2002,7 @@ namespace TJAPlayer3
|
||||
return list;
|
||||
}
|
||||
|
||||
private void t指定された曲の子リストの曲を列挙する_孫リスト含む(C曲リストノード r親, ref List<C曲リストノード> list, ref List<int> mandatory)
|
||||
public void t指定された曲の子リストの曲を列挙する_孫リスト含む(C曲リストノード r親, ref List<C曲リストノード> list, ref List<int> mandatory, bool dan = false, Difficulty difficulty = Difficulty.Dan)
|
||||
{
|
||||
if ((r親 != null) && (r親.list子リスト != null))
|
||||
{
|
||||
@ -2028,7 +2013,7 @@ namespace TJAPlayer3
|
||||
// Don't add Dan/Tower charts for Random
|
||||
int diff = this.act曲リスト.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(c曲リストノード);
|
||||
|
||||
if (diff < (int)Difficulty.Tower)
|
||||
if (dan ? diff == (int)difficulty : diff < (int)Difficulty.Tower)
|
||||
{
|
||||
// Check if mandatory diffs are present
|
||||
var score = c曲リストノード.arスコア[diff];
|
||||
@ -2051,7 +2036,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
if ((c曲リストノード.list子リスト != null) && TJAPlayer3.ConfigIni.bランダムセレクトで子BOXを検索対象とする)
|
||||
{
|
||||
this.t指定された曲の子リストの曲を列挙する_孫リスト含む(c曲リストノード, ref list, ref mandatory);
|
||||
this.t指定された曲の子リストの曲を列挙する_孫リスト含む(c曲リストノード, ref list, ref mandatory, dan, difficulty);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -39,6 +39,9 @@ namespace TJAPlayer3
|
||||
// Additional
|
||||
public APICharterInfo charter;
|
||||
public APIGenreInfo Genre;
|
||||
|
||||
[JsonIgnore]
|
||||
public bool DownloadNow;
|
||||
}
|
||||
|
||||
#region [ContractResolver override for properties]
|
||||
|
@ -343,7 +343,7 @@ namespace TJAPlayer3
|
||||
|
||||
#region [Input]
|
||||
|
||||
if (!IsDownloading)
|
||||
//if (!IsDownloading)
|
||||
{
|
||||
if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow) ||
|
||||
TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange))
|
||||
@ -407,6 +407,8 @@ namespace TJAPlayer3
|
||||
#region [Decide]
|
||||
|
||||
if (currentMenu == ECurrentMenu.MAIN)
|
||||
{
|
||||
if (mainMenu[mainMenuIndex] == ECurrentMenu.CDN_SELECT || !IsDownloading)
|
||||
{
|
||||
// Base menu
|
||||
currentMenu = mainMenu[mainMenuIndex];
|
||||
@ -424,6 +426,11 @@ namespace TJAPlayer3
|
||||
TJAPlayer3.Skin.sound決定音.t再生する();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
TJAPlayer3.Skin.soundError.t再生する();
|
||||
}
|
||||
}
|
||||
else if (currentMenu == ECurrentMenu.CDN_SELECT)
|
||||
{
|
||||
// CDN Select Menu
|
||||
@ -495,7 +502,7 @@ namespace TJAPlayer3
|
||||
//var zipPath = $@"Cache\{song.Md5}.zip";
|
||||
var downloadLink = GetDownloadLink(song);
|
||||
|
||||
if (CSongDict.tContainsSongUrl(downloadLink))
|
||||
if (CSongDict.tContainsSongUrl(downloadLink) || song.DownloadNow)
|
||||
{
|
||||
TJAPlayer3.Skin.soundError.t再生する();
|
||||
}
|
||||
@ -599,6 +606,7 @@ namespace TJAPlayer3
|
||||
|
||||
|
||||
var song = apiMethods.FetchedSongsList[this.cdnSongListIndex - 1];
|
||||
song.DownloadNow = true;
|
||||
var zipName = ReplaceInvalidChars($@"{TruncateString(song.SongTitle, 16)}-{TruncateString(song.Md5, 10)}");
|
||||
var zipPath = $@"Cache\{zipName}.zip";
|
||||
var downloadLink = GetDownloadLink(song);
|
||||
@ -711,6 +719,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
|
||||
|
||||
song.DownloadNow = false;
|
||||
IsDownloading = false;
|
||||
}
|
||||
|
||||
|
410
TJAPlayer3/Stages/13.TowerSelect/CStageTowerSelect.cs
Normal file
@ -0,0 +1,410 @@
|
||||
using FDK;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
// Minimalist menu class to use for custom menus
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
class CStageTowerSelect : CStage
|
||||
{
|
||||
public CStageTowerSelect()
|
||||
{
|
||||
base.eステージID = Eステージ.TaikoTowers;
|
||||
base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
|
||||
|
||||
// Load CActivity objects here
|
||||
// base.list子Activities.Add(this.act = new CAct());
|
||||
|
||||
base.list子Activities.Add(this.actFOtoNowLoading = new CActFIFOStart());
|
||||
base.list子Activities.Add(this.actFOtoTitle = new CActFIFOBlack());
|
||||
|
||||
}
|
||||
|
||||
public override void On活性化()
|
||||
{
|
||||
// On activation
|
||||
|
||||
if (base.b活性化してる)
|
||||
return;
|
||||
|
||||
base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
|
||||
this.eフェードアウト完了時の戻り値 = EReturnValue.Continuation;
|
||||
|
||||
if (listSongs == null)
|
||||
listSongs = TJAPlayer3.Songs管理.list曲ルート_Tower;
|
||||
|
||||
|
||||
base.On活性化();
|
||||
}
|
||||
|
||||
public override void On非活性化()
|
||||
{
|
||||
// On de-activation
|
||||
|
||||
base.On非活性化();
|
||||
}
|
||||
|
||||
public override void OnManagedリソースの作成()
|
||||
{
|
||||
// Ressource allocation
|
||||
|
||||
Background = new ScriptBG(CSkin.Path($"{TextureLoader.BASE}{TextureLoader.TOWERSELECT}Script.lua"));
|
||||
Background.Init();
|
||||
|
||||
if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName))
|
||||
pfTitleFont = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), TJAPlayer3.Skin.TowerSelect_Title_Size);
|
||||
else
|
||||
pfTitleFont = new CPrivateFastFont(new FontFamily("MS UI Gothic"), TJAPlayer3.Skin.TowerSelect_Title_Size);
|
||||
|
||||
if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName))
|
||||
pfSubTitleFont = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), TJAPlayer3.Skin.TowerSelect_SubTitle_Size);
|
||||
else
|
||||
pfSubTitleFont = new CPrivateFastFont(new FontFamily("MS UI Gothic"), TJAPlayer3.Skin.TowerSelect_SubTitle_Size);
|
||||
tUpdateBarInfos();
|
||||
|
||||
base.OnManagedリソースの作成();
|
||||
}
|
||||
|
||||
public override void OnManagedリソースの解放()
|
||||
{
|
||||
// Ressource freeing
|
||||
|
||||
TJAPlayer3.t安全にDisposeする(ref Background);
|
||||
|
||||
pfTitleFont.Dispose();
|
||||
pfSubTitleFont.Dispose();
|
||||
|
||||
base.OnManagedリソースの解放();
|
||||
}
|
||||
|
||||
public override int On進行描画()
|
||||
{
|
||||
Background.Update();
|
||||
Background.Draw();
|
||||
|
||||
for(int i = 0; i < TJAPlayer3.Skin.TowerSelect_Bar_Count; i++)
|
||||
{
|
||||
int currentSong = nCurrentSongIndex + i - ((TJAPlayer3.Skin.TowerSelect_Bar_Count - 1) / 2);
|
||||
if (currentSong < 0 || currentSong >= BarInfos.Length || currentSong >= TJAPlayer3.Skin.TowerSelect_Bar_Count) continue;
|
||||
var bar = BarInfos[currentSong];
|
||||
|
||||
int x = TJAPlayer3.Skin.TowerSelect_Bar_X[i];
|
||||
int y = TJAPlayer3.Skin.TowerSelect_Bar_Y[i];
|
||||
tDrawTower(x, y, bar);
|
||||
}
|
||||
|
||||
#region [Input]
|
||||
|
||||
if (this.eフェードアウト完了時の戻り値 == EReturnValue.Continuation)
|
||||
{
|
||||
int returnTitle()
|
||||
{
|
||||
TJAPlayer3.Skin.sound取消音.t再生する();
|
||||
this.eフェードアウト完了時の戻り値 = EReturnValue.ReturnToTitle;
|
||||
this.actFOtoTitle.tフェードアウト開始();
|
||||
base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow) ||
|
||||
TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange))
|
||||
{
|
||||
TJAPlayer3.Skin.sound変更音.t再生する();
|
||||
|
||||
if (nCurrentSongIndex < BarInfos.Length - 1)
|
||||
{
|
||||
nCurrentSongIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
else if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow) ||
|
||||
TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LeftChange))
|
||||
{
|
||||
TJAPlayer3.Skin.sound変更音.t再生する();
|
||||
|
||||
if (nCurrentSongIndex > 0)
|
||||
{
|
||||
nCurrentSongIndex--;
|
||||
}
|
||||
}
|
||||
|
||||
else if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape) ||
|
||||
TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.Cancel))
|
||||
{
|
||||
|
||||
#region [Fast return (Escape)]
|
||||
|
||||
TJAPlayer3.Skin.sound取消音.t再生する();
|
||||
returnTitle();
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
else if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return) ||
|
||||
TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.Decide))
|
||||
{
|
||||
#region [Decide]
|
||||
|
||||
TJAPlayer3.Skin.sound決定音.t再生する();
|
||||
|
||||
switch(currentSong.eノード種別)
|
||||
{
|
||||
case C曲リストノード.Eノード種別.SCORE:
|
||||
tSelectSong();
|
||||
break;
|
||||
case C曲リストノード.Eノード種別.RANDOM:
|
||||
tSelectSongRandomly();
|
||||
break;
|
||||
case C曲リストノード.Eノード種別.BOX:
|
||||
tOpenFolder(currentSong);
|
||||
break;
|
||||
case C曲リストノード.Eノード種別.BACKBOX:
|
||||
{
|
||||
if (TJAPlayer3.Songs管理.list曲ルート.Contains(currentSong.r親ノード) && currentSong.r親ノード.strジャンル == "太鼓タワー")
|
||||
{
|
||||
returnTitle();
|
||||
}
|
||||
else
|
||||
{
|
||||
tCloseFolder(currentSong);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
// Menu exit fade out transition
|
||||
switch (base.eフェーズID)
|
||||
{
|
||||
case CStage.Eフェーズ.選曲_NowLoading画面へのフェードアウト:
|
||||
if (this.actFOtoNowLoading.On進行描画() == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
return (int)this.eフェードアウト完了時の戻り値;
|
||||
case CStage.Eフェーズ.共通_フェードアウト:
|
||||
if (this.actFOtoTitle.On進行描画() == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
return (int)this.eフェードアウト完了時の戻り値;
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#region [Private]
|
||||
|
||||
private class BarInfo
|
||||
{
|
||||
public string strTitle;
|
||||
public string strSubTitle;
|
||||
public C曲リストノード.Eノード種別 eノード種別;
|
||||
public CActSelect曲リスト.TitleTextureKey ttkTitle;
|
||||
public CActSelect曲リスト.TitleTextureKey ttkSubTitle;
|
||||
}
|
||||
|
||||
public void tSelectSong()
|
||||
{
|
||||
TJAPlayer3.stage選曲.r確定された曲 = listSongs[nCurrentSongIndex];
|
||||
TJAPlayer3.stage選曲.r確定されたスコア = listSongs[nCurrentSongIndex].arスコア[(int)Difficulty.Tower];
|
||||
TJAPlayer3.stage選曲.n確定された曲の難易度[0] = (int)Difficulty.Tower;
|
||||
TJAPlayer3.stage選曲.str確定された曲のジャンル = listSongs[nCurrentSongIndex].strジャンル;
|
||||
if ((TJAPlayer3.stage選曲.r確定された曲 != null) && (TJAPlayer3.stage選曲.r確定されたスコア != null))
|
||||
{
|
||||
this.eフェードアウト完了時の戻り値 = EReturnValue.SongChoosen;
|
||||
this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略
|
||||
base.eフェーズID = CStage.Eフェーズ.選曲_NowLoading画面へのフェードアウト;
|
||||
}
|
||||
// TJAPlayer3.Skin.bgm選曲画面.t停止する();
|
||||
CSongSelectSongManager.stopSong();
|
||||
}
|
||||
|
||||
private bool tSelectSongRandomly()
|
||||
{
|
||||
var mandatoryDiffs = new List<int>();
|
||||
C曲リストノード song = currentSong;
|
||||
|
||||
song.stackランダム演奏番号.Clear();
|
||||
song.listランダム用ノードリスト = null;
|
||||
|
||||
if ((song.stackランダム演奏番号.Count == 0) || (song.listランダム用ノードリスト == null))
|
||||
{
|
||||
if (song.listランダム用ノードリスト == null)
|
||||
{
|
||||
List<C曲リストノード> songs = new List<C曲リストノード>();
|
||||
TJAPlayer3.stage選曲.t指定された曲の子リストの曲を列挙する_孫リスト含む(song.r親ノード, ref songs, ref mandatoryDiffs, true, Difficulty.Tower);
|
||||
song.listランダム用ノードリスト = songs;
|
||||
}
|
||||
int count = song.listランダム用ノードリスト.Count;
|
||||
if (count == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
int[] numArray = new int[count];
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
numArray[i] = i;
|
||||
}
|
||||
for (int j = 0; j < (count * 1.5); j++)
|
||||
{
|
||||
int index = TJAPlayer3.Random.Next(count);
|
||||
int num5 = TJAPlayer3.Random.Next(count);
|
||||
int num6 = numArray[num5];
|
||||
numArray[num5] = numArray[index];
|
||||
numArray[index] = num6;
|
||||
}
|
||||
for (int k = 0; k < count; k++)
|
||||
{
|
||||
song.stackランダム演奏番号.Push(numArray[k]);
|
||||
}
|
||||
|
||||
if (TJAPlayer3.ConfigIni.bLogDTX詳細ログ出力)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder(0x400);
|
||||
builder.Append(string.Format("ランダムインデックスリストを作成しました: {0}曲: ", song.stackランダム演奏番号.Count));
|
||||
for (int m = 0; m < count; m++)
|
||||
{
|
||||
builder.Append(string.Format("{0} ", numArray[m]));
|
||||
}
|
||||
Trace.TraceInformation(builder.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
// Third assignment
|
||||
TJAPlayer3.stage選曲.r確定された曲 = song.listランダム用ノードリスト[song.stackランダム演奏番号.Pop()];
|
||||
TJAPlayer3.stage選曲.n確定された曲の難易度[0] = (int)Difficulty.Tower;
|
||||
|
||||
TJAPlayer3.stage選曲.r確定されたスコア = TJAPlayer3.stage選曲.r確定された曲.arスコア[TJAPlayer3.stage選曲.act曲リスト.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(TJAPlayer3.stage選曲.r確定された曲)];
|
||||
TJAPlayer3.stage選曲.str確定された曲のジャンル = TJAPlayer3.stage選曲.r確定された曲.strジャンル;
|
||||
|
||||
//TJAPlayer3.Skin.sound曲決定音.t再生する();
|
||||
|
||||
this.eフェードアウト完了時の戻り値 = EReturnValue.SongChoosen;
|
||||
this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略
|
||||
base.eフェーズID = CStage.Eフェーズ.選曲_NowLoading画面へのフェードアウト;
|
||||
|
||||
#region [Log]
|
||||
|
||||
if (TJAPlayer3.ConfigIni.bLogDTX詳細ログ出力)
|
||||
{
|
||||
int[] numArray2 = song.stackランダム演奏番号.ToArray();
|
||||
StringBuilder builder2 = new StringBuilder(0x400);
|
||||
builder2.Append("ランダムインデックスリスト残り: ");
|
||||
if (numArray2.Length > 0)
|
||||
{
|
||||
for (int n = 0; n < numArray2.Length; n++)
|
||||
{
|
||||
builder2.Append(string.Format("{0} ", numArray2[n]));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
builder2.Append("(なし)");
|
||||
}
|
||||
Trace.TraceInformation(builder2.ToString());
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
CSongSelectSongManager.stopSong();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void tDrawTower(int x, int y, BarInfo barInfo)
|
||||
{
|
||||
switch(barInfo.eノード種別)
|
||||
{
|
||||
case C曲リストノード.Eノード種別.SCORE:
|
||||
TJAPlayer3.Tx.TowerSelect_Tower.t2D中心基準描画(TJAPlayer3.app.Device, x, y);
|
||||
break;
|
||||
case C曲リストノード.Eノード種別.RANDOM:
|
||||
TJAPlayer3.Tx.TowerSelect_Tower.t2D中心基準描画(TJAPlayer3.app.Device, x, y);
|
||||
break;
|
||||
case C曲リストノード.Eノード種別.BOX:
|
||||
TJAPlayer3.Tx.TowerSelect_Tower.t2D中心基準描画(TJAPlayer3.app.Device, x, y);
|
||||
break;
|
||||
case C曲リストノード.Eノード種別.BACKBOX:
|
||||
TJAPlayer3.Tx.TowerSelect_Tower.t2D中心基準描画(TJAPlayer3.app.Device, x, y);
|
||||
break;
|
||||
}
|
||||
|
||||
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(barInfo.ttkTitle).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + TJAPlayer3.Skin.TowerSelect_Title_Offset[0], y + TJAPlayer3.Skin.TowerSelect_Title_Offset[1]);
|
||||
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(barInfo.ttkSubTitle).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + TJAPlayer3.Skin.TowerSelect_SubTitle_Offset[0], y + TJAPlayer3.Skin.TowerSelect_SubTitle_Offset[1]);
|
||||
}
|
||||
|
||||
private void tUpdateBarInfos()
|
||||
{
|
||||
BarInfos = new BarInfo[listSongs.Count];
|
||||
tSetBarInfos();
|
||||
}
|
||||
|
||||
private void tOpenFolder(C曲リストノード song)
|
||||
{
|
||||
nCurrentSongIndex = 0;
|
||||
listSongs = song.list子リスト;
|
||||
tUpdateBarInfos();
|
||||
}
|
||||
|
||||
private void tCloseFolder(C曲リストノード song)
|
||||
{
|
||||
nCurrentSongIndex = 0;
|
||||
listSongs = song.r親ノード.r親ノード.list子リスト;
|
||||
tUpdateBarInfos();
|
||||
}
|
||||
|
||||
private void tSetBarInfos()
|
||||
{
|
||||
for(int i = 0; i < BarInfos.Length; i++)
|
||||
{
|
||||
BarInfos[i] = new BarInfo();
|
||||
BarInfo bar = BarInfos[i];
|
||||
C曲リストノード song = listSongs[i];
|
||||
|
||||
bar.strTitle = song.strタイトル;
|
||||
bar.strSubTitle = song.strサブタイトル;
|
||||
bar.eノード種別 = song.eノード種別;
|
||||
|
||||
bar.ttkTitle = new CActSelect曲リスト.TitleTextureKey(bar.strTitle, pfTitleFont, Color.Black, Color.Transparent, TJAPlayer3.Skin.TowerSelect_Title_MaxWidth);
|
||||
bar.ttkSubTitle = new CActSelect曲リスト.TitleTextureKey(bar.strSubTitle, pfTitleFont, Color.Black, Color.Transparent, TJAPlayer3.Skin.TowerSelect_SubTitle_MaxWidth);
|
||||
}
|
||||
}
|
||||
|
||||
private BarInfo[] BarInfos;
|
||||
private List<C曲リストノード> listSongs;
|
||||
|
||||
private ScriptBG Background;
|
||||
|
||||
private CPrivateFastFont pfTitleFont;
|
||||
private CPrivateFastFont pfSubTitleFont;
|
||||
|
||||
public EReturnValue eフェードアウト完了時の戻り値;
|
||||
public CActFIFOStart actFOtoNowLoading;
|
||||
public CActFIFOBlack actFOtoTitle;
|
||||
|
||||
private int nCurrentSongIndex;
|
||||
private C曲リストノード currentSong
|
||||
{
|
||||
get
|
||||
{
|
||||
return listSongs[nCurrentSongIndex];
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -164,13 +164,17 @@
|
||||
<Compile Include="Stages\01.StartUp\CCharacter.cs" />
|
||||
<Compile Include="Stages\01.StartUp\CPuchichara.cs" />
|
||||
<Compile Include="Stages\05.SongSelect\AnimeBG.cs" />
|
||||
<Compile Include="Stages\05.SongSelect\CActSelectDanInfo.cs" />
|
||||
<Compile Include="Stages\05.SongSelect\CActSelectExExtraTransAnime.cs" />
|
||||
<Compile Include="Stages\05.SongSelect\CActSelectSongInfo.cs" />
|
||||
<Compile Include="Stages\05.SongSelect\CActSelectTowerInfo.cs" />
|
||||
<Compile Include="Stages\07.Game\Taiko\AIBattle.cs" />
|
||||
<Compile Include="Stages\07.Game\Taiko\CAct演奏DrumsRunner.cs" />
|
||||
<Compile Include="Stages\07.Game\Taiko\EndAnimeScript.cs" />
|
||||
<Compile Include="Stages\07.Game\Taiko\NotesManager.cs" />
|
||||
<Compile Include="Stages\07.Game\Taiko\ScriptBG.cs" />
|
||||
<Compile Include="Stages\08.Result\ResultBG.cs" />
|
||||
<Compile Include="Stages\13.TowerSelect\CStageTowerSelect.cs" />
|
||||
<Compile Include="Stages\15.OpenEncyclopedia\CEncyclopediaControler.cs" />
|
||||
<Compile Include="Stages\15.OpenEncyclopedia\COpenEncyclopedia.cs" />
|
||||
<Compile Include="Stages\XX.Templates\CStageTemplate.cs" />
|
||||
|
After Width: | Height: | Size: 1.1 MiB |
@ -0,0 +1,28 @@
|
||||
--func:DrawText(x, y, text)
|
||||
--func:DrawNum(x, y, num)
|
||||
--func:AddGraph("filename")
|
||||
--func:DrawGraph(x, y, filename)
|
||||
--func:DrawRectGraph(x, y, rect_x, rect_y, rect_width, rect_height, filename)
|
||||
--func:DrawGraphCenter(x, y, filename)
|
||||
--func:DrawGraphRectCenter(x, y, rect_x, rect_y, rect_width, rect_height, filename)
|
||||
--func:SetOpacity(opacity, "filename")
|
||||
--func:SetRotation(angle, "fileName")
|
||||
--func:SetScale(xscale, yscale, "filename")
|
||||
--func:SetColor(r, g, b, "filename")
|
||||
|
||||
function clearIn(player)
|
||||
end
|
||||
|
||||
function clearOut(player)
|
||||
end
|
||||
|
||||
function init()
|
||||
func:AddGraph("Background.png")
|
||||
end
|
||||
|
||||
function update()
|
||||
end
|
||||
|
||||
function draw()
|
||||
func:DrawGraph(0, 0, "Background.png")
|
||||
end
|
After Width: | Height: | Size: 270 KiB |
After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 206 KiB |
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 110 KiB |
@ -23,6 +23,7 @@ Resolution=1920,1080
|
||||
#include TowerResultConfig.ini
|
||||
#include HeyaConfig.ini
|
||||
#include OnlineLoungeConfig.ini
|
||||
#include TowerSelectConfig.ini
|
||||
#include OpenEncyclopediaConfig.ini
|
||||
#include NamePlateConfig.ini
|
||||
#include ModalConfig.ini
|
||||
|
@ -138,6 +138,36 @@ SongSelect_Maker_Size=34
|
||||
SongSelect_Maker_MaxSize=270
|
||||
|
||||
|
||||
SongSelect_FloorNum_Show=1
|
||||
|
||||
SongSelect_FloorNum_X=1800
|
||||
|
||||
SongSelect_FloorNum_Y=307
|
||||
|
||||
SongSelect_FloorNum_Interval=45,0
|
||||
|
||||
|
||||
SongSelect_DanInfo_Show=1
|
||||
SongSelect_DanInfo_Icon_X=1501,1501,1501
|
||||
SongSelect_DanInfo_Icon_Y=403,463,523
|
||||
SongSelect_DanInfo_Icon_Scale=0.5
|
||||
SongSelect_DanInfo_Difficulty_Cymbol_X=1542,1542,1542
|
||||
SongSelect_DanInfo_Difficulty_Cymbol_Y=394,454,514
|
||||
SongSelect_DanInfo_Difficulty_Cymbol_Scale=0.5
|
||||
SongSelect_DanInfo_Level_Number_X=1560,1560,1560
|
||||
SongSelect_DanInfo_Level_Number_Y=400,460,520
|
||||
SongSelect_DanInfo_Level_Number_Scale=0.5
|
||||
SongSelect_DanInfo_Title_X=1548,1548,1548
|
||||
SongSelect_DanInfo_Title_Y=387,447,507
|
||||
SongSelect_DanInfo_Title_Size=18
|
||||
SongSelect_DanInfo_Exam_X=1545,1545,1545,1545,1545,1545
|
||||
SongSelect_DanInfo_Exam_Y=597,639,681,723,765,807
|
||||
SongSelect_DanInfo_Exam_Size=15
|
||||
SongSelect_DanInfo_Exam_Value_X=1645,1743,1840
|
||||
SongSelect_DanInfo_Exam_Value_Y=582,624,666,708,750,792
|
||||
SongSelect_DanInfo_Exam_Value_Scale=0.5
|
||||
|
||||
|
||||
SongSelect_Table_X=0,1551,270,1281,540
|
||||
|
||||
SongSelect_Table_Y=0,0,-306,-306,0
|
||||
|
13
Test/System/SimpleStyle (1080p)/TowerSelectConfig.ini
Normal file
@ -0,0 +1,13 @@
|
||||
;Included file
|
||||
;あとは通常通り設定できます
|
||||
|
||||
|
||||
TowerSelect_Title_Size=45
|
||||
TowerSelect_Title_MaxWidth=345
|
||||
TowerSelect_Title_Offset=0,-45
|
||||
TowerSelect_SubTitle_Size=45
|
||||
TowerSelect_SubTitle_MaxWidth=345
|
||||
TowerSelect_SubTitle_Offset=0,15
|
||||
TowerSelect_Bar_Count=7
|
||||
TowerSelect_Bar_X=-390,60,510,960,1410,1860,2310
|
||||
TowerSelect_Bar_Y=630,600,570,540,570,600,630
|
BIN
Test/System/SimpleStyle/Graphics/13_TowerSelect/Background.png
Normal file
After Width: | Height: | Size: 415 KiB |
28
Test/System/SimpleStyle/Graphics/13_TowerSelect/Script.lua
Normal file
@ -0,0 +1,28 @@
|
||||
--func:DrawText(x, y, text)
|
||||
--func:DrawNum(x, y, num)
|
||||
--func:AddGraph("filename")
|
||||
--func:DrawGraph(x, y, filename)
|
||||
--func:DrawRectGraph(x, y, rect_x, rect_y, rect_width, rect_height, filename)
|
||||
--func:DrawGraphCenter(x, y, filename)
|
||||
--func:DrawGraphRectCenter(x, y, rect_x, rect_y, rect_width, rect_height, filename)
|
||||
--func:SetOpacity(opacity, "filename")
|
||||
--func:SetRotation(angle, "fileName")
|
||||
--func:SetScale(xscale, yscale, "filename")
|
||||
--func:SetColor(r, g, b, "filename")
|
||||
|
||||
function clearIn(player)
|
||||
end
|
||||
|
||||
function clearOut(player)
|
||||
end
|
||||
|
||||
function init()
|
||||
func:AddGraph("Background.png")
|
||||
end
|
||||
|
||||
function update()
|
||||
end
|
||||
|
||||
function draw()
|
||||
func:DrawGraph(0, 0, "Background.png")
|
||||
end
|
BIN
Test/System/SimpleStyle/Graphics/13_TowerSelect/Tower.png
Normal file
After Width: | Height: | Size: 67 KiB |
BIN
Test/System/SimpleStyle/Graphics/3_SongSelect/Floor_Number.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 52 KiB |
@ -23,6 +23,7 @@ Resolution=1280,720
|
||||
#include TowerResultConfig.ini
|
||||
#include HeyaConfig.ini
|
||||
#include OnlineLoungeConfig.ini
|
||||
#include TowerSelectConfig.ini
|
||||
#include OpenEncyclopediaConfig.ini
|
||||
#include NamePlateConfig.ini
|
||||
#include ModalConfig.ini
|
||||
|
@ -152,6 +152,36 @@ SongSelect_Maker_Size=23
|
||||
SongSelect_Maker_MaxSize=180
|
||||
|
||||
|
||||
SongSelect_FloorNum_Show=1
|
||||
|
||||
SongSelect_FloorNum_X=1200
|
||||
|
||||
SongSelect_FloorNum_Y=205
|
||||
|
||||
SongSelect_FloorNum_Interval=30,0
|
||||
|
||||
|
||||
SongSelect_DanInfo_Show=1
|
||||
SongSelect_DanInfo_Icon_X=1001,1001,1001
|
||||
SongSelect_DanInfo_Icon_Y=269,309,349
|
||||
SongSelect_DanInfo_Icon_Scale= 0.5
|
||||
SongSelect_DanInfo_Difficulty_Cymbol_X=1028,1028,1028
|
||||
SongSelect_DanInfo_Difficulty_Cymbol_Y=263,303,343
|
||||
SongSelect_DanInfo_Difficulty_Cymbol_Scale= 0.5
|
||||
SongSelect_DanInfo_Level_Number_X=1040,1040,1040
|
||||
SongSelect_DanInfo_Level_Number_Y=267,307,347
|
||||
SongSelect_DanInfo_Level_Number_Scale=0.5
|
||||
SongSelect_DanInfo_Title_X=1032,1032,1032
|
||||
SongSelect_DanInfo_Title_Y=258,298,338
|
||||
SongSelect_DanInfo_Title_Size=12
|
||||
SongSelect_DanInfo_Exam_X=1030,1030,1030,1030,1030,1030
|
||||
SongSelect_DanInfo_Exam_Y=398,426,454,482,510,538
|
||||
SongSelect_DanInfo_Exam_Size=10
|
||||
SongSelect_DanInfo_Exam_Value_X=1097,1162,1227
|
||||
SongSelect_DanInfo_Exam_Value_Y=388,416,444,472,500,528
|
||||
SongSelect_DanInfo_Exam_Value_Scale=0.5
|
||||
|
||||
|
||||
SongSelect_Table_X=0,1034,180,854,360
|
||||
|
||||
SongSelect_Table_Y=0,0,-204,-204,0
|
||||
|
13
Test/System/SimpleStyle/TowerSelectConfig.ini
Normal file
@ -0,0 +1,13 @@
|
||||
;Included file
|
||||
;あとは通常通り設定できます
|
||||
|
||||
|
||||
TowerSelect_Title_Size=30
|
||||
TowerSelect_Title_MaxWidth=230
|
||||
TowerSelect_Title_Offset=0,-30
|
||||
TowerSelect_SubTitle_Size=30
|
||||
TowerSelect_SubTitle_MaxWidth=230
|
||||
TowerSelect_SubTitle_Offset=0,10
|
||||
TowerSelect_Bar_Count=7
|
||||
TowerSelect_Bar_X=-260,40,340,640,940,1240,1540
|
||||
TowerSelect_Bar_Y=420,400,380,360,380,400,420
|