From cf8e2288711bc57ece0d3e2ec43c9709e9a136d9 Mon Sep 17 00:00:00 2001 From: 0auBSQ <58159635+0auBSQ@users.noreply.github.com> Date: Thu, 24 Oct 2024 05:29:57 +0900 Subject: [PATCH] englishify CSongListNode --- OpenTaiko/src/Common/CSongDict.cs | 24 +- OpenTaiko/src/Common/ImGuiDebugWindow.cs | 2 +- OpenTaiko/src/Common/OpenTaiko.cs | 946 +++++++++--------- OpenTaiko/src/Components/CSongReplay.cs | 2 +- OpenTaiko/src/Databases/DBSaves.cs | 4 +- OpenTaiko/src/Databases/DBSongUnlockables.cs | 2 +- OpenTaiko/src/Helpers/HGaugeMethods.cs | 8 +- OpenTaiko/src/Helpers/HSongTraverse.cs | 8 +- OpenTaiko/src/Songs/{Cスコア.cs => CScore.cs} | 31 +- OpenTaiko/src/Songs/CSongListNode.cs | 107 +- .../CSongListNodeComparerLevel.cs | 4 +- .../CSongListNodeComparerLevelIcon.cs | 4 +- .../CSongListNodeComparerNodeType.cs | 2 +- .../CSongListNodeComparerPath.cs | 8 +- .../CSongListNodeComparerUnlockStatus.cs | 4 +- OpenTaiko/src/Songs/CSong管理.cs | 245 +++-- .../05.DaniSelect/CActSelect段位リスト.cs | 16 +- .../Stages/05.DaniSelect/CStage段位選択.cs | 158 +-- .../05.SongSelect/CActSelectPreimageパネル.cs | 6 +- .../05.SongSelect/CActSelectPresound.cs | 6 +- .../05.SongSelect/CActSelectSongInfo.cs | 8 +- .../05.SongSelect/CActSelectTowerInfo.cs | 4 +- .../05.SongSelect/CActSelect曲リスト.cs | 131 ++- .../05.SongSelect/CActSelect演奏履歴パネル.cs | 4 +- .../05.SongSelect/CActSelect難易度選択画面.cs | 2 +- .../src/Stages/05.SongSelect/CStage選曲.cs | 782 +++++++-------- .../Stages/06.SongLoading/CStage曲読み込み.cs | 4 +- .../src/Stages/07.Game/CStage演奏画面共通.cs | 2 +- .../07.Game/Taiko/CActImplBackground.cs | 6 +- .../Stages/07.Game/Taiko/CActImplScoreRank.cs | 2 +- .../Stages/07.Game/Taiko/EndAnimeScript.cs | 4 +- .../src/Stages/07.Game/Taiko/ScriptBG.cs | 4 +- OpenTaiko/src/Stages/08.Result/CStage結果.cs | 12 +- .../12.OnlineLounge/CStageOnlineLounge.cs | 10 +- .../13.TowerSelect/CStageTowerSelect.cs | 28 +- 35 files changed, 1270 insertions(+), 1320 deletions(-) rename OpenTaiko/src/Songs/{Cスコア.cs => CScore.cs} (98%) diff --git a/OpenTaiko/src/Common/CSongDict.cs b/OpenTaiko/src/Common/CSongDict.cs index 9f587720..08c2f946 100644 --- a/OpenTaiko/src/Common/CSongDict.cs +++ b/OpenTaiko/src/Common/CSongDict.cs @@ -20,7 +20,7 @@ internal class CSongDict { } public static string[] tGetNodesByGenreName(string genreName) { - return nodes.Where(_nd => _nd.Value.strジャンル == genreName).Select(_nd => _nd.Key).ToArray(); + return nodes.Where(_nd => _nd.Value.songGenre == genreName).Select(_nd => _nd.Key).ToArray(); } #region [General song dict methods] @@ -74,7 +74,7 @@ internal class CSongDict { // Generate a back button public static CSongListNode tGenerateBackButton(CSongListNode parent, string path = "/", List listStrBoxDef = null) { CSongListNode itemBack = new CSongListNode(); - itemBack.eノード種別 = CSongListNode.ENodeType.BACKBOX; + itemBack.nodeType = CSongListNode.ENodeType.BACKBOX; // とじる @@ -88,9 +88,9 @@ internal class CSongDict { itemBack.BgType = parent.BgType; itemBack.isChangedBgType = parent.isChangedBgType; - itemBack.strジャンル = parent.strジャンル; + itemBack.songGenre = parent.songGenre; itemBack.strSelectBGPath = parent.strSelectBGPath; - itemBack.nスコア数 = 1; + itemBack.difficultiesCount = 1; itemBack.rParentNode = parent; itemBack.strSkinPath = (parent.rParentNode == null) ? "" : parent.rParentNode.strSkinPath; @@ -103,27 +103,27 @@ internal class CSongDict { itemBack.strBreadcrumbs = (itemBack.rParentNode == null) ? itemBack.ldTitle.GetString("") : itemBack.rParentNode.strBreadcrumbs + " > " + itemBack.ldTitle.GetString(""); - itemBack.arスコア[0] = new Cスコア(); - itemBack.arスコア[0].ファイル情報.フォルダの絶対パス = ""; - itemBack.arスコア[0].譜面情報.タイトル = itemBack.ldTitle.GetString(""); - itemBack.arスコア[0].譜面情報.コメント = ""; + itemBack.score[0] = new CScore(); + itemBack.score[0].ファイル情報.フォルダの絶対パス = ""; + itemBack.score[0].譜面情報.タイトル = itemBack.ldTitle.GetString(""); + itemBack.score[0].譜面情報.コメント = ""; return (itemBack); } public static CSongListNode tGenerateRandomButton(CSongListNode parent, string path = "/") { CSongListNode itemRandom = new CSongListNode(); - itemRandom.eノード種別 = CSongListNode.ENodeType.RANDOM; + itemRandom.nodeType = CSongListNode.ENodeType.RANDOM; itemRandom.ldTitle = CLangManager.GetAllStringsAsLocalizationDataWithArgs("SONGSELECT_RANDOM_PATH", path, path); - itemRandom.nスコア数 = (int)Difficulty.Total; + itemRandom.difficultiesCount = (int)Difficulty.Total; itemRandom.rParentNode = parent; itemRandom.strBreadcrumbs = (itemRandom.rParentNode == null) ? itemRandom.ldTitle.GetString("") : itemRandom.rParentNode.strBreadcrumbs + " > " + itemRandom.ldTitle.GetString(""); - itemRandom.arスコア[0] = new Cスコア(); + itemRandom.score[0] = new CScore(); return itemRandom; } @@ -131,7 +131,7 @@ internal class CSongDict { // Reset the position of all back buttons, also adds a random button at the end public static List tReinsertBackButtons(CSongListNode parent, List songList, string path = "/", List listStrBoxDef = null) { // Remove all the existing back boxes currently existing - songList.RemoveAll(e => e.eノード種別 == CSongListNode.ENodeType.BACKBOX || e.eノード種別 == CSongListNode.ENodeType.RANDOM); + songList.RemoveAll(e => e.nodeType == CSongListNode.ENodeType.BACKBOX || e.nodeType == CSongListNode.ENodeType.RANDOM); int songCount = songList.Count; diff --git a/OpenTaiko/src/Common/ImGuiDebugWindow.cs b/OpenTaiko/src/Common/ImGuiDebugWindow.cs index a7db2c73..69016747 100644 --- a/OpenTaiko/src/Common/ImGuiDebugWindow.cs +++ b/OpenTaiko/src/Common/ImGuiDebugWindow.cs @@ -298,7 +298,7 @@ public static class ImGuiDebugWindow { ImGui.SeparatorText("Tower Mode"); ImGui.Text("Side: " + dtx.SIDE); ImGui.Text("Life: " + dtx.LIFE); - ImGui.Text("Floor Count: " + OpenTaiko.stageSongSelect.rNowSelectedSong.arスコア[5].譜面情報.nTotalFloor); + ImGui.Text("Floor Count: " + OpenTaiko.stageSongSelect.rNowSelectedSong.score[5].譜面情報.nTotalFloor); break; default: ImGui.SeparatorText(OpenTaiko.ConfigIni.nGameType[i] == EGameType.Konga ? "Konga Mode" : "Taiko Mode"); diff --git a/OpenTaiko/src/Common/OpenTaiko.cs b/OpenTaiko/src/Common/OpenTaiko.cs index 04b05d67..8d7b534e 100755 --- a/OpenTaiko/src/Common/OpenTaiko.cs +++ b/OpenTaiko/src/Common/OpenTaiko.cs @@ -14,8 +14,8 @@ using Rectangle = System.Drawing.Rectangle; namespace OpenTaiko; -internal class OpenTaiko : Game { - // Properties +internal class OpenTaiko : Game { + // Properties #region [ properties ] public static readonly string VERSION = Assembly.GetExecutingAssembly().GetName().Version.ToString(); public static readonly string AppDisplayThreePartVersion = GetAppDisplayThreePartVersion(); @@ -61,8 +61,8 @@ internal class OpenTaiko : Game { public static CVisualLogManager VisualLogManager { get; private set; - } - + } + #region [DTX instances] public static CDTX DTX { get { @@ -164,10 +164,10 @@ internal class OpenTaiko : Game { return OpenTaiko.DTX_5P; } return null; - } - + } + #endregion - + public static CSongReplay[] ReplayInstances = new CSongReplay[5]; public static CFPS FPS { @@ -178,52 +178,6 @@ internal class OpenTaiko : Game { get; private set; } - #region [ 入力範囲ms ] - public static int nPerfect範囲ms { - get { - if (stageSongSelect.rChoosenSong != null) { - CSongListNode c曲リストノード = stageSongSelect.rChoosenSong.rParentNode; - if (((c曲リストノード != null) && (c曲リストノード.eノード種別 == CSongListNode.ENodeType.BOX)) && (c曲リストノード.nPerfect範囲ms >= 0)) { - return c曲リストノード.nPerfect範囲ms; - } - } - return ConfigIni.nHitRangeMs.Perfect; - } - } - public static int nGreat範囲ms { - get { - if (stageSongSelect.rChoosenSong != null) { - CSongListNode c曲リストノード = stageSongSelect.rChoosenSong.rParentNode; - if (((c曲リストノード != null) && (c曲リストノード.eノード種別 == CSongListNode.ENodeType.BOX)) && (c曲リストノード.nGreat範囲ms >= 0)) { - return c曲リストノード.nGreat範囲ms; - } - } - return ConfigIni.nHitRangeMs.Great; - } - } - public static int nGood範囲ms { - get { - if (stageSongSelect.rChoosenSong != null) { - CSongListNode c曲リストノード = stageSongSelect.rChoosenSong.rParentNode; - if (((c曲リストノード != null) && (c曲リストノード.eノード種別 == CSongListNode.ENodeType.BOX)) && (c曲リストノード.nGood範囲ms >= 0)) { - return c曲リストノード.nGood範囲ms; - } - } - return ConfigIni.nHitRangeMs.Good; - } - } - public static int nPoor範囲ms { - get { - if (stageSongSelect.rChoosenSong != null) { - CSongListNode c曲リストノード = stageSongSelect.rChoosenSong.rParentNode; - if (((c曲リストノード != null) && (c曲リストノード.eノード種別 == CSongListNode.ENodeType.BOX)) && (c曲リストノード.nPoor範囲ms >= 0)) { - return c曲リストノード.nPoor範囲ms; - } - } - return ConfigIni.nHitRangeMs.Poor; - } - } - #endregion public static CPad Pad { get; private set; @@ -238,7 +192,7 @@ internal class OpenTaiko : Game { } public static CSongs管理 Songs管理 { get; - set; // 2012.1.26 yyagi private解除 CStage起動でのdesirialize読み込みのため + set; // 2012.1.26 yyagi private解除 CStage起動でのdesirialize読み込みのため } public static CEnumSongs EnumSongs { get; @@ -366,14 +320,14 @@ internal class OpenTaiko : Game { get; set; } - public static DiscordRpcClient DiscordClient; - - // 0 : 1P, 1 : 2P + public static DiscordRpcClient DiscordClient; + + // 0 : 1P, 1 : 2P public static int SaveFile = 0; - public static SaveFile[] SaveFileInstances = new SaveFile[5]; - - // 0 : Hidari, 1 : Migi (1P only) + public static SaveFile[] SaveFileInstances = new SaveFile[5]; + + // 0 : Hidari, 1 : Migi (1P only) public static int PlayerSide = 0; public static int GetActualPlayer(int player) { @@ -386,12 +340,12 @@ internal class OpenTaiko : Game { public static bool P1IsBlue() { return (OpenTaiko.PlayerSide == 1 && OpenTaiko.ConfigIni.nPlayerCount == 1); - } - + } + #endregion - - // Constructor - + + // Constructor + public OpenTaiko() : base("OpenTaiko.ico") { OpenTaiko.app = this; } @@ -410,19 +364,19 @@ internal class OpenTaiko : Game { } } - public static CCounter BeatScaling; - + public static CCounter BeatScaling; + /// /// Returns true for this session if the game fails to locate Config.ini.
/// This could be treated as the player's first time launching the game. ///
- public static bool ConfigIsNew; - - - - // メソッド - - + public static bool ConfigIsNew; + + + + // メソッド + + #region [ #24609 リザルト画像をpngで保存する ] // #24609 2011.3.14 yyagi; to save result screen in case BestRank or HiSkill. /// /// リザルト画像のキャプチャと保存。 @@ -451,26 +405,26 @@ internal class OpenTaiko : Game { GetScreenShotAsync(save); return success; - } + } #endregion - - // Game 実装 - - - protected override void Configuration() { + + // Game 実装 + + + protected override void Configuration() { #region [ strEXEのあるフォルダを決定する ] - //----------------- - strEXEのあるフォルダ = Environment.CurrentDirectory + Path.DirectorySeparatorChar; - // END #23629 2010.11.13 from - //----------------- + //----------------- + strEXEのあるフォルダ = Environment.CurrentDirectory + Path.DirectorySeparatorChar; + // END #23629 2010.11.13 from + //----------------- #endregion - + ConfigIni = new CConfigIni(); string path = strEXEのあるフォルダ + "Config.ini"; if (File.Exists(path)) { - try { - // Load config info + try { + // Load config info ConfigIni.LoadFromFile(path); } catch (Exception e) { Trace.TraceError(e.ToString()); @@ -543,7 +497,7 @@ internal class OpenTaiko : Game { protected override void Update() { InputManager?.Polling(OpenTaiko.ConfigIni.bBufferedInputs); } - protected override void Draw() { + protected override void Draw() { #if !DEBUG try #endif @@ -558,26 +512,26 @@ internal class OpenTaiko : Game { float scale = 1.0f + ((1.0f - value) / 40.0f); Camera *= Matrix4X4.CreateScale(scale, scale, 1.0f); if (BeatScaling.CurrentValue == BeatScaling.EndValue) BeatScaling = null; - } - - // #xxxxx 2013.4.8 yyagi; sleepの挿入位置を、EndScnene~Present間から、BeginScene前に移動。描画遅延を小さくするため。 - + } + + // #xxxxx 2013.4.8 yyagi; sleepの挿入位置を、EndScnene~Present間から、BeginScene前に移動。描画遅延を小さくするため。 + if (r現在のステージ != null) { OpenTaiko.NamePlate.lcNamePlate.Update(); this.n進行描画の戻り値 = (r現在のステージ != null) ? r現在のステージ.Draw() : 0; - CScoreIni scoreIni = null; - + CScoreIni scoreIni = null; + #region [ 曲検索スレッドの起動/終了 ] - // ここに"Enumerating Songs..."表示を集約 - actEnumSongs.Draw(); // "Enumerating Songs..."アイコンの描画 - + // ここに"Enumerating Songs..."表示を集約 + actEnumSongs.Draw(); // "Enumerating Songs..."アイコンの描画 + switch (r現在のステージ.eStageID) { case CStage.EStage.Title: case CStage.EStage.Config: case CStage.EStage.SongSelect: case CStage.EStage.SongLoading: - if (EnumSongs != null) { + if (EnumSongs != null) { #region [ (特定条件時) 曲検索スレッドの起動_開始 ] if (r現在のステージ.eStageID == CStage.EStage.Title && r直前のステージ.eStageID == CStage.EStage.StartUp && @@ -589,15 +543,15 @@ internal class OpenTaiko : Game { actEnumSongs.CreateUnmanagedResource(); } OpenTaiko.stageSongSelect.bIsEnumeratingSongs = true; - EnumSongs.Init(); // 取得した曲数を、新インスタンスにも与える - EnumSongs.StartEnumFromDisk(); // 曲検索スレッドの起動_開始 - } + EnumSongs.Init(); // 取得した曲数を、新インスタンスにも与える + EnumSongs.StartEnumFromDisk(); // 曲検索スレッドの起動_開始 + } #endregion - + #region [ 曲検索の中断と再開 ] if (r現在のステージ.eStageID == CStage.EStage.SongSelect && !EnumSongs.IsSongListEnumCompletelyDone) { switch (this.n進行描画の戻り値) { - case 0: // 何もない + case 0: // 何もない EnumSongs.Resume(); EnumSongs.IsSlowdown = false; actEnumSongs.Activate(); @@ -607,8 +561,8 @@ internal class OpenTaiko : Game { } break; - case 2: // 曲決定 - EnumSongs.Suspend(); // #27060 バックグラウンドの曲検索を一時停止 + case 2: // 曲決定 + EnumSongs.Suspend(); // #27060 バックグラウンドの曲検索を一時停止 actEnumSongs.DeActivate(); if (!ConfigIni.PreAssetsLoading) { actEnumSongs.ReleaseManagedResource(); @@ -616,19 +570,19 @@ internal class OpenTaiko : Game { } break; } - } + } #endregion - + #region [ 曲探索中断待ち待機 ] if (r現在のステージ.eStageID == CStage.EStage.SongLoading && !EnumSongs.IsSongListEnumCompletelyDone && - EnumSongs.thDTXFileEnumerate != null) // #28700 2012.6.12 yyagi; at Compact mode, enumerating thread does not exist. + EnumSongs.thDTXFileEnumerate != null) // #28700 2012.6.12 yyagi; at Compact mode, enumerating thread does not exist. { - EnumSongs.WaitUntilSuspended(); // 念のため、曲検索が一時中断されるまで待機 - } + EnumSongs.WaitUntilSuspended(); // 念のため、曲検索が一時中断されるまで待機 + } #endregion - + #region [ 曲検索が完了したら、実際の曲リストに反映する ] - // CStage選曲.On活性化() に回した方がいいかな? + // CStage選曲.On活性化() に回した方がいいかな? if (EnumSongs.IsSongListEnumerated) { actEnumSongs.DeActivate(); if (!ConfigIni.PreAssetsLoading) { @@ -640,20 +594,20 @@ internal class OpenTaiko : Game { bool bRemakeSongTitleBar = (r現在のステージ.eStageID == CStage.EStage.SongSelect) ? true : false; OpenTaiko.stageSongSelect.Refresh(EnumSongs.Songs管理, bRemakeSongTitleBar); EnumSongs.SongListEnumCompletelyDone(); - } + } #endregion } break; - } + } #endregion - + switch (r現在のステージ.eStageID) { case CStage.EStage.None: break; - case CStage.EStage.StartUp: + case CStage.EStage.StartUp: #region [ *** ] - //----------------------------- + //----------------------------- if (this.n進行描画の戻り値 != 0) { r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { @@ -671,18 +625,18 @@ internal class OpenTaiko : Game { r現在のステージ = stageタイトル; this.tガベージコレクションを実行する(); - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.Title: + case CStage.EStage.Title: #region [ *** ] - //----------------------------- + //----------------------------- switch (this.n進行描画の戻り値) { - case (int)CStageタイトル.E戻り値.GAMESTART: + case (int)CStageタイトル.E戻り値.GAMESTART: #region [ 選曲処理へ ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -698,14 +652,14 @@ internal class OpenTaiko : Game { r直前のステージ = r現在のステージ; r現在のステージ = stageSongSelect; - OpenTaiko.latestSongSelect = stageSongSelect; - //----------------------------- + OpenTaiko.latestSongSelect = stageSongSelect; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.DANGAMESTART: + case (int)CStageタイトル.E戻り値.DANGAMESTART: #region [ 段位選択処理へ ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -720,14 +674,14 @@ internal class OpenTaiko : Game { } r直前のステージ = r現在のステージ; r現在のステージ = stage段位選択; - OpenTaiko.latestSongSelect = stage段位選択; - //----------------------------- + OpenTaiko.latestSongSelect = stage段位選択; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.TAIKOTOWERSSTART: + case (int)CStageタイトル.E戻り値.TAIKOTOWERSSTART: #region [Online Lounge] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -741,14 +695,14 @@ internal class OpenTaiko : Game { stageTowerSelect.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stageTowerSelect; - //----------------------------- + r現在のステージ = stageTowerSelect; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.HEYA: + case (int)CStageタイトル.E戻り値.HEYA: #region [Heya menu] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -762,14 +716,14 @@ internal class OpenTaiko : Game { stageHeya.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stageHeya; - //----------------------------- + r現在のステージ = stageHeya; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.ONLINELOUNGE: + case (int)CStageタイトル.E戻り値.ONLINELOUNGE: #region [Online Lounge] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -783,14 +737,14 @@ internal class OpenTaiko : Game { stageOnlineLounge.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stageOnlineLounge; - //----------------------------- + r現在のステージ = stageOnlineLounge; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.CONFIG: + case (int)CStageタイトル.E戻り値.CONFIG: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -804,14 +758,14 @@ internal class OpenTaiko : Game { stageコンフィグ.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stageコンフィグ; - //----------------------------- + r現在のステージ = stageコンフィグ; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.EXIT: + case (int)CStageタイトル.E戻り値.EXIT: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -825,14 +779,14 @@ internal class OpenTaiko : Game { stage終了.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stage終了; - //----------------------------- + r現在のステージ = stage終了; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.AIBATTLEMODE: + case (int)CStageタイトル.E戻り値.AIBATTLEMODE: #region [ 選曲処理へ ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -852,25 +806,25 @@ internal class OpenTaiko : Game { ConfigIni.nPreviousPlayerCount = ConfigIni.nPlayerCount; ConfigIni.nPlayerCount = 2; ConfigIni.bAIBattleMode = true; - ConfigIni.tInitializeAILevel(); - //----------------------------- + ConfigIni.tInitializeAILevel(); + //----------------------------- #endregion break; - } - - //----------------------------- + } + + //----------------------------- #endregion break; - case CStage.EStage.Config: + case CStage.EStage.Config: #region [ *** ] - //----------------------------- + //----------------------------- if (this.n進行描画の戻り値 != 0) { switch (r直前のステージ.eStageID) { - case CStage.EStage.Title: + case CStage.EStage.Title: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -888,13 +842,13 @@ internal class OpenTaiko : Game { r現在のステージ = stageタイトル; this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case CStage.EStage.SongSelect: + + case CStage.EStage.SongSelect: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -911,23 +865,23 @@ internal class OpenTaiko : Game { r現在のステージ = stageSongSelect; this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion } return; - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.SongSelect: + case CStage.EStage.SongSelect: #region [ *** ] - //----------------------------- + //----------------------------- switch (this.n進行描画の戻り値) { - case (int)CStage選曲.E戻り値.タイトルに戻る: + case (int)CStage選曲.E戻り値.タイトルに戻る: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -952,13 +906,13 @@ internal class OpenTaiko : Game { } this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case (int)CStage選曲.E戻り値.選曲した: + + case (int)CStage選曲.E戻り値.選曲した: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -972,45 +926,45 @@ internal class OpenTaiko : Game { stage曲読み込み.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stage曲読み込み; - + r現在のステージ = stage曲読み込み; + /* Skin.bgm選曲画面イン.t停止する(); Skin.bgm選曲画面.t停止する(); - */ + */ CSongSelectSongManager.stopSong(); CSongSelectSongManager.enable(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - // case (int) CStage選曲.E戻り値.オプション呼び出し: + + // case (int) CStage選曲.E戻り値.オプション呼び出し: #region [ *** ] - // //----------------------------- - // 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( CDTXMania.strEXEのあるフォルダ ); - // } - // - // this.tガベージコレクションを実行する(); - // break; - // //----------------------------- + // //----------------------------- + // 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( CDTXMania.strEXEのあるフォルダ ); + // } + // + // this.tガベージコレクションを実行する(); + // break; + // //----------------------------- #endregion - - case (int)CStage選曲.E戻り値.コンフィグ呼び出し: + + case (int)CStage選曲.E戻り値.コンフィグ呼び出し: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1030,14 +984,14 @@ internal class OpenTaiko : Game { CSongSelectSongManager.enable(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case (int)CStage選曲.E戻り値.スキン変更: - + + case (int)CStage選曲.E戻り値.スキン変更: + #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1048,20 +1002,20 @@ internal class OpenTaiko : Game { stageChangeSkin.Activate(); r直前のステージ = r現在のステージ; r現在のステージ = stageChangeSkin; - break; - //----------------------------- + break; + //----------------------------- #endregion - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.DanDojoSelect: + case CStage.EStage.DanDojoSelect: #region [ *** ] switch (this.n進行描画の戻り値) { - case (int)CStage選曲.E戻り値.タイトルに戻る: + case (int)CStage選曲.E戻り値.タイトルに戻る: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1075,24 +1029,24 @@ internal class OpenTaiko : Game { stageタイトル.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stageタイトル; - + r現在のステージ = stageタイトル; + /* Skin.bgm選曲画面イン.t停止する(); Skin.bgm選曲画面.t停止する(); - */ + */ CSongSelectSongManager.stopSong(); CSongSelectSongManager.enable(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case (int)CStage選曲.E戻り値.選曲した: + + case (int)CStage選曲.E戻り値.選曲した: #region [ *** ] - //----------------------------- - + //----------------------------- + r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1109,19 +1063,19 @@ internal class OpenTaiko : Game { r現在のステージ = stage曲読み込み; this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - } + } #endregion break; - case CStage.EStage.Heya: + case CStage.EStage.Heya: #region [ *** ] switch (this.n進行描画の戻り値) { - case (int)CStage選曲.E戻り値.タイトルに戻る: + case (int)CStage選曲.E戻り値.タイトルに戻る: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1141,34 +1095,34 @@ internal class OpenTaiko : Game { CSongSelectSongManager.enable(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - } + } #endregion break; - case CStage.EStage.SongLoading: + case CStage.EStage.SongLoading: #region [ *** ] - //----------------------------- + //----------------------------- if (this.n進行描画の戻り値 != 0) { - OpenTaiko.Pad.detectedDevice.Clear(); // 入力デバイスフラグクリア(2010.9.11) + OpenTaiko.Pad.detectedDevice.Clear(); // 入力デバイスフラグクリア(2010.9.11) r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); r現在のステージ.ReleaseUnmanagedResource(); - } + } #region [ ESC押下時は、曲の読み込みを中止して選曲画面に戻る ] - if (this.n進行描画の戻り値 == (int)ESongLoadingScreenReturnValue.LoadCanceled) { - //DTX.t全チップの再生停止(); + if (this.n進行描画の戻り値 == (int)ESongLoadingScreenReturnValue.LoadCanceled) { + //DTX.t全チップの再生停止(); if (DTX != null) { DTX.DeActivate(); DTX.ReleaseManagedResource(); DTX.ReleaseUnmanagedResource(); - } - - // ??? - + } + + // ??? + /* if (stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) { @@ -1186,8 +1140,8 @@ internal class OpenTaiko : Game { r直前のステージ = r現在のステージ; r現在のステージ = stage選曲; } - */ - + */ + Trace.TraceInformation("----------------------"); Trace.TraceInformation("■ Return to song select menu"); OpenTaiko.latestSongSelect.Activate(); @@ -1195,17 +1149,17 @@ internal class OpenTaiko : Game { OpenTaiko.latestSongSelect.CreateManagedResource(); OpenTaiko.latestSongSelect.CreateUnmanagedResource(); } - r直前のステージ = r現在のステージ; - - // Seek latest registered song select screen + r直前のステージ = r現在のステージ; + + // Seek latest registered song select screen r現在のステージ = OpenTaiko.latestSongSelect; break; - } + } #endregion - + Trace.TraceInformation("----------------------"); - Trace.TraceInformation("■ Gameplay (Drum Screen)"); + Trace.TraceInformation("■ Gameplay (Drum Screen)"); #if false // #23625 2011.1.11 Config.iniからダメージ/回復値の定数変更を行う場合はここを有効にする 087リリースに合わせ機能無効化 for (int i = 0; i < 5; i++) { @@ -1222,16 +1176,16 @@ for (int i = 0; i < 3; i++) { r現在のステージ = stage演奏ドラム画面; this.tガベージコレクションを実行する(); - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.Game: + case CStage.EStage.Game: #region [ *** ] - + switch (this.n進行描画の戻り値) { - case (int)EGameplayScreenReturnValue.ReloadAndReplay: + case (int)EGameplayScreenReturnValue.ReloadAndReplay: #region [ DTXファイルを再読み込みして、再演奏 ] DTX.t全チップの再生停止(); DTX.DeActivate(); @@ -1250,21 +1204,21 @@ for (int i = 0; i < 3; i++) { r直前のステージ = r現在のステージ; r現在のステージ = stage曲読み込み; this.tガベージコレクションを実行する(); - break; + break; #endregion - - //case (int) E演奏画面の戻り値.再演奏: + + //case (int) E演奏画面の戻り値.再演奏: #region [ 再読み込み無しで、再演奏 ] #endregion - // break; - + // break; + case (int)EGameplayScreenReturnValue.Continue: break; - case (int)EGameplayScreenReturnValue.PerformanceInterrupted: + case (int)EGameplayScreenReturnValue.PerformanceInterrupted: #region [ 演奏キャンセル ] - //----------------------------- - + //----------------------------- + DTX.t全チップの再生停止(); DTX.DeActivate(); DTX.ReleaseManagedResource(); @@ -1282,21 +1236,21 @@ for (int i = 0; i < 3; i++) { OpenTaiko.latestSongSelect.CreateManagedResource(); OpenTaiko.latestSongSelect.CreateUnmanagedResource(); } - r直前のステージ = r現在のステージ; - - // Seek latest registered song select screen + r直前のステージ = r現在のステージ; + + // Seek latest registered song select screen r現在のステージ = OpenTaiko.latestSongSelect; this.tガベージコレクションを実行する(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case (int)EGameplayScreenReturnValue.StageFailed: + + case (int)EGameplayScreenReturnValue.StageFailed: #region [ 演奏失敗(StageFailed) ] - //----------------------------- - + //----------------------------- + DTX.t全チップの再生停止(); DTX.DeActivate(); DTX.ReleaseManagedResource(); @@ -1318,15 +1272,15 @@ for (int i = 0; i < 3; i++) { r現在のステージ = stageSongSelect; this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case (int)EGameplayScreenReturnValue.StageCleared: + + case (int)EGameplayScreenReturnValue.StageCleared: #region [ 演奏クリア ] - //----------------------------- - - // Fetch the results of the finished play + //----------------------------- + + // Fetch the results of the finished play CScoreIni.C演奏記録 c演奏記録_Drums; stage演奏ドラム画面.t演奏結果を格納する(out c演奏記録_Drums); @@ -1346,19 +1300,19 @@ for (int i = 0; i < 3; i++) { r直前のステージ = r現在のステージ; r現在のステージ = stage結果; - break; - //----------------------------- + break; + //----------------------------- #endregion - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.Results: + case CStage.EStage.Results: #region [ *** ] - //----------------------------- - if (this.n進行描画の戻り値 != 0) { - //DTX.t全チップの再生一時停止(); + //----------------------------- + if (this.n進行描画の戻り値 != 0) { + //DTX.t全チップの再生一時停止(); DTX.t全チップの再生停止とミキサーからの削除(); DTX.DeActivate(); DTX.ReleaseManagedResource(); @@ -1368,11 +1322,11 @@ for (int i = 0; i < 3; i++) { r現在のステージ.ReleaseManagedResource(); r現在のステージ.ReleaseUnmanagedResource(); } - this.tガベージコレクションを実行する(); - - - // After result screen - + this.tガベージコレクションを実行する(); + + + // After result screen + /* if (stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) { @@ -1390,8 +1344,8 @@ for (int i = 0; i < 3; i++) { r直前のステージ = r現在のステージ; r現在のステージ = stage選曲; } - */ - + */ + Trace.TraceInformation("----------------------"); Trace.TraceInformation("■ Return to song select menu"); OpenTaiko.latestSongSelect.Activate(); @@ -1399,26 +1353,26 @@ for (int i = 0; i < 3; i++) { OpenTaiko.latestSongSelect.CreateManagedResource(); OpenTaiko.latestSongSelect.CreateUnmanagedResource(); } - r直前のステージ = r現在のステージ; - - // Seek latest registered song select screen + r直前のステージ = r現在のステージ; + + // Seek latest registered song select screen r現在のステージ = OpenTaiko.latestSongSelect; stageSongSelect.NowSong++; this.tガベージコレクションを実行する(); - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.TaikoTowers: + case CStage.EStage.TaikoTowers: #region [ *** ] switch (this.n進行描画の戻り値) { - case (int)EReturnValue.ReturnToTitle: + case (int)EReturnValue.ReturnToTitle: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1428,23 +1382,23 @@ for (int i = 0; i < 3; i++) { Trace.TraceInformation("■ Title"); stageタイトル.Activate(); r直前のステージ = r現在のステージ; - r現在のステージ = stageタイトル; - + r現在のステージ = stageタイトル; + /* Skin.bgm選曲画面イン.t停止する(); Skin.bgm選曲画面.t停止する(); - */ + */ CSongSelectSongManager.stopSong(); CSongSelectSongManager.enable(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case (int)EReturnValue.SongChoosen: + + case (int)EReturnValue.SongChoosen: #region [ *** ] - //----------------------------- + //----------------------------- latestSongSelect = stageTowerSelect; r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { @@ -1462,16 +1416,16 @@ for (int i = 0; i < 3; i++) { r現在のステージ = stage曲読み込み; this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - } + } #endregion break; - case CStage.EStage.ChangeSkin: + case CStage.EStage.ChangeSkin: #region [ *** ] - //----------------------------- + //----------------------------- if (this.n進行描画の戻り値 != 0) { r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { @@ -1488,28 +1442,28 @@ for (int i = 0; i < 3; i++) { r直前のステージ = r現在のステージ; r現在のステージ = stageSongSelect; this.tガベージコレクションを実行する(); - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.End: + case CStage.EStage.End: #region [ *** ] - //----------------------------- + //----------------------------- if (this.n進行描画の戻り値 != 0) { base.Exit(); return; - } - //----------------------------- + } + //----------------------------- #endregion break; - default: + default: #region [ *** ] switch (this.n進行描画の戻り値) { - case (int)CStage選曲.E戻り値.タイトルに戻る: + case (int)CStage選曲.E戻り値.タイトルに戻る: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1529,10 +1483,10 @@ for (int i = 0; i < 3; i++) { CSongSelectSongManager.enable(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - } + } #endregion break; } @@ -1551,8 +1505,8 @@ for (int i = 0; i < 3; i++) { Camera *= Matrix4X4.CreateTranslation(fCamXOffset / 1280, fCamYOffset / 720, 1f); - if (OpenTaiko.DTX != null) { - //object rendering + if (OpenTaiko.DTX != null) { + //object rendering foreach (KeyValuePair pair in OpenTaiko.DTX.listObj) { pair.Value.tDraw(); } @@ -1564,17 +1518,17 @@ for (int i = 0; i < 3; i++) { if (r現在のステージ != null && r現在のステージ.eStageID != CStage.EStage.StartUp && OpenTaiko.Tx.Network_Connection != null) { if (Math.Abs(SoundManager.PlayTimer.SystemTimeMs - this.前回のシステム時刻ms) > 10000) { this.前回のシステム時刻ms = SoundManager.PlayTimer.SystemTimeMs; - Task.Factory.StartNew(() => { - //IPv4 8.8.8.8にPingを送信する(timeout 5000ms) + Task.Factory.StartNew(() => { + //IPv4 8.8.8.8にPingを送信する(timeout 5000ms) PingReply reply = new Ping().Send("8.8.8.8", 5000); this.bネットワークに接続中 = reply.Status == IPStatus.Success; }); } OpenTaiko.Tx.Network_Connection.t2D描画(GameWindowSize.Width - (OpenTaiko.Tx.Network_Connection.szTextureSize.Width / 2), GameWindowSize.Height - OpenTaiko.Tx.Network_Connection.szTextureSize.Height, new Rectangle((OpenTaiko.Tx.Network_Connection.szTextureSize.Width / 2) * (this.bネットワークに接続中 ? 0 : 1), 0, OpenTaiko.Tx.Network_Connection.szTextureSize.Width / 2, OpenTaiko.Tx.Network_Connection.szTextureSize.Height)); - } - // オーバレイを描画する(テクスチャの生成されていない起動ステージは例外 - - // Display log cards + } + // オーバレイを描画する(テクスチャの生成されていない起動ステージは例外 + + // Display log cards VisualLogManager.Display(); if (r現在のステージ != null && r現在のステージ.eStageID != CStage.EStage.StartUp && OpenTaiko.Tx.Overlay != null) { @@ -1582,7 +1536,7 @@ for (int i = 0; i < 3; i++) { } } - if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.Capture)) { + if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.Capture)) { #if DEBUG if (OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.LeftControl)) { if (r現在のステージ.eStageID != CStage.EStage.Game) { @@ -1598,42 +1552,42 @@ for (int i = 0; i < 3; i++) { r現在のステージ.CreateUnmanagedResource(); } } - } else { - // Debug.WriteLine( "capture: " + string.Format( "{0:2x}", (int) e.KeyCode ) + " " + (int) e.KeyCode ); + } else { + // Debug.WriteLine( "capture: " + string.Format( "{0:2x}", (int) e.KeyCode ) + " " + (int) e.KeyCode ); string strFullPath = Path.Combine(OpenTaiko.strEXEのあるフォルダ, "Capture_img"); strFullPath = Path.Combine(strFullPath, DateTime.Now.ToString("yyyyMMddHHmmss") + ".png"); SaveResultScreen(strFullPath); - } + } #else string strFullPath = Path.Combine(OpenTaiko.strEXEのあるフォルダ, "Capture_img"); strFullPath = Path.Combine(strFullPath, DateTime.Now.ToString("yyyyMMddHHmmss") + ".png"); SaveResultScreen(strFullPath); #endif - } - + } + #region [ 全画面_ウインドウ切り替え ] if (this.b次のタイミングで全画面_ウィンドウ切り替えを行う) { ConfigIni.bFullScreen = !ConfigIni.bFullScreen; app.ToggleWindowMode(); this.b次のタイミングで全画面_ウィンドウ切り替えを行う = false; - } + } #endregion #region [ 垂直基線同期切り替え ] if (this.b次のタイミングで垂直帰線同期切り替えを行う) { VSync = ConfigIni.bEnableVSync; this.b次のタイミングで垂直帰線同期切り替えを行う = false; - } + } #endregion - + #if DEBUG if (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.F11)) OpenTaiko.ConfigIni.DEBUG_bShowImgui = !OpenTaiko.ConfigIni.DEBUG_bShowImgui; if (OpenTaiko.ConfigIni.DEBUG_bShowImgui) - ImGuiDebugWindow.Draw(); + ImGuiDebugWindow.Draw(); #endif - } + } #if !DEBUG catch( Exception e ) { @@ -1645,12 +1599,12 @@ for (int i = 0; i < 3; i++) { throw e; } #endif - } - - // その他 - + } + + // その他 + #region [ 汎用ヘルパー ] - //----------------- + //----------------- public static CTexture tテクスチャの生成(string fileName) { return tテクスチャの生成(fileName, false); } @@ -1713,8 +1667,8 @@ for (int i = 0; i < 3; i++) { Trace.TraceError("Texture generation has failed. ({0})", fileName); return null; } - } - + } + /// プロパティ、インデクサには ref は使用できないので注意。 public static void tDisposeSafely(ref T obj) { if (obj == null) @@ -1728,7 +1682,7 @@ for (int i = 0; i < 3; i++) { obj = default(T); } - public static void t安全にDisposeする(ref T[] array) where T : class, IDisposable //2020.08.01 Mr-Ojii twopointzero氏のソースコードをもとに追加 + public static void t安全にDisposeする(ref T[] array) where T : class, IDisposable //2020.08.01 Mr-Ojii twopointzero氏のソースコードをもとに追加 { if (array == null) { return; @@ -1738,8 +1692,8 @@ for (int i = 0; i < 3; i++) { array[i]?.Dispose(); array[i] = null; } - } - + } + /// /// そのフォルダの連番画像の最大値を返す。 /// @@ -1749,8 +1703,8 @@ for (int i = 0; i < 3; i++) { num++; } return num; - } - + } + /// /// 曲名テクスチャの縮小倍率を返す。 /// @@ -1763,8 +1717,8 @@ for (int i = 0; i < 3; i++) { if (cTexture.szTextureSize.Width <= samePixel) scalingRate = 1.0f; return scalingRate; - } - + } + /// /// 難易度を表す数字を列挙体に変換します。 /// @@ -1789,13 +1743,13 @@ for (int i = 0; i < 3; i++) { default: throw new IndexOutOfRangeException(); } - } - - //----------------- + } + + //----------------- #endregion - + #region [ private ] - //----------------- + //----------------- private bool bマウスカーソル表示中 = true; private bool b終了処理完了済み; public bool bネットワークに接続中 { get; private set; } = false; @@ -1806,8 +1760,8 @@ for (int i = 0; i < 3; i++) { public List listトップレベルActivities; private int n進行描画の戻り値; - private string strWindowTitle - // ayo komi isn't this useless code? - tfd500 + private string strWindowTitle + // ayo komi isn't this useless code? - tfd500 { get { return "OpenTaiko"; @@ -1819,12 +1773,12 @@ for (int i = 0; i < 3; i++) { private set; } - private void t起動処理() { - + private void t起動処理() { + #region [ Read Config.ini and Database files ] - //--------------------- - - // Port <= 0.5.4 NamePlate.json to Pre 0.6.0 b1 Saves\ + //--------------------- + + // Port <= 0.5.4 NamePlate.json to Pre 0.6.0 b1 Saves\ NamePlateConfig = new NamePlateConfig(); NamePlateConfig.tNamePlateConfig(); @@ -1841,20 +1795,20 @@ for (int i = 0; i < 3; i++) { if (!File.Exists("Saves.db3")) { File.Copy(@$".init{Path.DirectorySeparatorChar}Saves.db3", "Saves.db3"); - } - // Add a condition here (if old Saves\ format save files exist) to port them to database (?) - SaveFileInstances = DBSaves.FetchSaveInstances(); - - //--------------------- + } + // Add a condition here (if old Saves\ format save files exist) to port them to database (?) + SaveFileInstances = DBSaves.FetchSaveInstances(); + + //--------------------- #endregion - + #region [ ログ出力開始 ] - //--------------------- + //--------------------- Trace.AutoFlush = true; if (ConfigIni.bOutputLogs) { try { Trace.Listeners.Add(new CTraceLogListener(new StreamWriter(System.IO.Path.Combine(strEXEのあるフォルダ, "OpenTaiko.log"), false, Encoding.GetEncoding(OpenTaiko.sEncType)))); - } catch (System.UnauthorizedAccessException) // #24481 2011.2.20 yyagi + } catch (System.UnauthorizedAccessException) // #24481 2011.2.20 yyagi { int c = (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName == "ja") ? 0 : 1; string[] mes_writeErr = { @@ -1872,27 +1826,27 @@ for (int i = 0; i < 3; i++) { Trace.TraceInformation("■ Application Info:"); Trace.TraceInformation("OS Version: " + Environment.OSVersion); Trace.TraceInformation("Processors: " + Environment.ProcessorCount.ToString()); - Trace.TraceInformation("CLR Version: " + Environment.Version.ToString()); - //--------------------- + Trace.TraceInformation("CLR Version: " + Environment.Version.ToString()); + //--------------------- #endregion - - DTX = null; - + + DTX = null; + #region [ Skin の初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing skin..."); - Trace.Indent(); + Trace.Indent(); #if !DEBUG try #endif { Skin = new CSkin(OpenTaiko.ConfigIni.strSystemSkinSubfolderFullName, false); - OpenTaiko.ConfigIni.strSystemSkinSubfolderFullName = OpenTaiko.Skin.GetCurrentSkinSubfolderFullName(true); // 旧指定のSkinフォルダが消滅していた場合に備える - + OpenTaiko.ConfigIni.strSystemSkinSubfolderFullName = OpenTaiko.Skin.GetCurrentSkinSubfolderFullName(true); // 旧指定のSkinフォルダが消滅していた場合に備える + ChangeResolution(OpenTaiko.Skin.Resolution[0], OpenTaiko.Skin.Resolution[1]); Trace.TraceInformation("Skin successfully initialized."); - } + } #if !DEBUG catch (Exception e) { @@ -1904,12 +1858,12 @@ for (int i = 0; i < 3; i++) { Trace.Unindent(); } #endif - - //--------------------- + + //--------------------- #endregion - //----------- + //----------- #region [ Timer の初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing timer..."); Trace.Indent(); try { @@ -1917,13 +1871,13 @@ for (int i = 0; i < 3; i++) { Trace.TraceInformation("Timer successfully initialized."); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion - //----------- - + //----------- + #region [ FPS カウンタの初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing FPS counter..."); Trace.Indent(); try { @@ -1931,11 +1885,11 @@ for (int i = 0; i < 3; i++) { Trace.TraceInformation("FPS counter initialized."); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ act文字コンソールの初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing console..."); Trace.Indent(); try { @@ -1951,11 +1905,11 @@ for (int i = 0; i < 3; i++) { Trace.TraceError("Console failed to initialize."); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ Input管理 の初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing DirectInput and MIDI input..."); Trace.Indent(); try { @@ -2001,11 +1955,11 @@ for (int i = 0; i < 3; i++) { throw; } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ Pad の初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initialize pad..."); Trace.Indent(); try { @@ -2016,11 +1970,11 @@ for (int i = 0; i < 3; i++) { Trace.TraceError("Pad failed to initialize."); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ Sound管理 の初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing sound device..."); Trace.Indent(); try { @@ -2045,16 +1999,16 @@ for (int i = 0; i < 3; i++) { SoundManager = new SoundManager(Window_, soundDeviceType, OpenTaiko.ConfigIni.nBassBufferSizeMs, - OpenTaiko.ConfigIni.nWASAPIBufferSizeMs, - // CDTXMania.ConfigIni.nASIOBufferSizeMs, + OpenTaiko.ConfigIni.nWASAPIBufferSizeMs, + // CDTXMania.ConfigIni.nASIOBufferSizeMs, 0, OpenTaiko.ConfigIni.nASIODevice, OpenTaiko.ConfigIni.bUseOSTimer - ); - //Sound管理 = FDK.CSound管理.Instance; - //Sound管理.t初期化( soundDeviceType, 0, 0, CDTXMania.ConfigIni.nASIODevice, base.Window.Handle ); - - + ); + //Sound管理 = FDK.CSound管理.Instance; + //Sound管理.t初期化( soundDeviceType, 0, 0, CDTXMania.ConfigIni.nASIODevice, base.Window.Handle ); + + Trace.TraceInformation("Initializing loudness scanning, song gain control, and sound group level control..."); Trace.Indent(); try { @@ -2086,16 +2040,16 @@ for (int i = 0; i < 3; i++) { throw new NullReferenceException("No sound devices are enabled. Please check your audio settings.", e); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ Songs管理 の初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing song list..."); Trace.Indent(); try { - Songs管理 = new CSongs管理(); - // Songs管理_裏読 = new CSongs管理(); + Songs管理 = new CSongs管理(); + // Songs管理_裏読 = new CSongs管理(); EnumSongs = new CEnumSongs(); actEnumSongs = new CActEnumSongs(); Trace.TraceInformation("Song list initialized."); @@ -2104,16 +2058,16 @@ for (int i = 0; i < 3; i++) { Trace.TraceError("Song list failed to initialize."); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ Random の初期化 ] - //--------------------- - Random = new Random(); - //--------------------- + //--------------------- + Random = new Random(); + //--------------------- #endregion #region [ Stages initialisation ] - //--------------------- + //--------------------- r現在のステージ = null; r直前のステージ = null; stage起動 = new CStage起動(); @@ -2147,10 +2101,10 @@ for (int i = 0; i < 3; i++) { this.listトップレベルActivities.Add(stage演奏ドラム画面); this.listトップレベルActivities.Add(stage結果); this.listトップレベルActivities.Add(stageChangeSkin); - this.listトップレベルActivities.Add(stage終了); - //--------------------- + this.listトップレベルActivities.Add(stage終了); + //--------------------- #endregion - + #region Discordの処理 DiscordClient = new DiscordRpcClient("939341030141096007"); DiscordClient?.Initialize(); @@ -2163,15 +2117,15 @@ for (int i = 0; i < 3; i++) { LargeImageKey = OpenTaiko.LargeImageKey, LargeImageText = OpenTaiko.LargeImageText, } - }); + }); #endregion - - - Trace.TraceInformation("Application successfully started."); - - + + + Trace.TraceInformation("Application successfully started."); + + #region [ 最初のステージの起動 ] - //--------------------- + //--------------------- Trace.TraceInformation("----------------------"); Trace.TraceInformation("■ Startup"); @@ -2180,9 +2134,9 @@ for (int i = 0; i < 3; i++) { if (!ConfigIni.PreAssetsLoading) { r現在のステージ.CreateManagedResource(); r現在のステージ.CreateUnmanagedResource(); - } - - //--------------------- + } + + //--------------------- #endregion } @@ -2198,10 +2152,10 @@ for (int i = 0; i < 3; i++) { private void t終了処理() { if (!this.b終了処理完了済み) { Trace.TraceInformation("----------------------"); - Trace.TraceInformation("■ Shutdown"); + Trace.TraceInformation("■ Shutdown"); #region [ 曲検索の終了処理 ] - //--------------------- - + //--------------------- + if (actEnumSongs != null) { Trace.TraceInformation("Ending enumeration of songs..."); Trace.Indent(); @@ -2215,12 +2169,12 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region [ 現在のステージの終了処理 ] - //--------------------- - if (OpenTaiko.r現在のステージ != null && OpenTaiko.r現在のステージ.IsActivated) // #25398 2011.06.07 MODIFY FROM + //--------------------- + if (OpenTaiko.r現在のステージ != null && OpenTaiko.r現在のステージ.IsActivated) // #25398 2011.06.07 MODIFY FROM { Trace.TraceInformation("Exiting stage..."); Trace.Indent(); @@ -2234,27 +2188,27 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion - + #region Discordの処理 - DiscordClient?.Dispose(); + DiscordClient?.Dispose(); #endregion #region [ 曲リストの終了処理 ] - //--------------------- + //--------------------- if (Songs管理 != null) { Trace.TraceInformation("Ending song list..."); Trace.Indent(); - try { + try { #pragma warning disable SYSLIB0011 if (EnumSongs.IsSongListEnumCompletelyDone) { BinaryFormatter songlistdb_ = new BinaryFormatter(); using Stream songlistdb = File.OpenWrite($"{OpenTaiko.strEXEのあるフォルダ}songlist.db"); songlistdb_.Serialize(songlistdb, Songs管理.listSongsDB); - } + } #pragma warning restore SYSLIB0011 - + Songs管理 = null; Trace.TraceInformation("Song list terminated."); } catch (Exception exception) { @@ -2263,14 +2217,14 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region TextureLoaderの処理 - Tx.DisposeTexture(); + Tx.DisposeTexture(); #endregion #region [ スキンの終了処理 ] - //--------------------- + //--------------------- if (Skin != null) { Trace.TraceInformation("Terminating skin..."); Trace.Indent(); @@ -2284,11 +2238,11 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region [ DirectSoundの終了処理 ] - //--------------------- + //--------------------- if (SoundManager != null) { Trace.TraceInformation("Ending DirectSound devices..."); Trace.Indent(); @@ -2302,11 +2256,11 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region [ パッドの終了処理 ] - //--------------------- + //--------------------- if (Pad != null) { Trace.TraceInformation("Ending pads..."); Trace.Indent(); @@ -2319,11 +2273,11 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region [ DirectInput, MIDI入力の終了処理 ] - //--------------------- + //--------------------- if (InputManager != null) { Trace.TraceInformation("Ending DirectInput and MIDI devices..."); Trace.Indent(); @@ -2337,11 +2291,11 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region [ 文字コンソールの終了処理 ] - //--------------------- + //--------------------- if (actTextConsole != null) { Trace.TraceInformation("Ending console..."); Trace.Indent(); @@ -2357,11 +2311,11 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region [ FPSカウンタの終了処理 ] - //--------------------- + //--------------------- Trace.TraceInformation("Ending FPS counter..."); Trace.Indent(); try { @@ -2371,11 +2325,11 @@ for (int i = 0; i < 3; i++) { Trace.TraceInformation("FPS counter terminated."); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ タイマの終了処理 ] - //--------------------- + //--------------------- Trace.TraceInformation("Ending timer..."); Trace.Indent(); try { @@ -2388,11 +2342,11 @@ for (int i = 0; i < 3; i++) { } } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ Config.iniの出力 ] - //--------------------- + //--------------------- Trace.TraceInformation("Outputting Config.ini..."); Trace.TraceInformation("This only needs to be done once, unless you have deleted the file!"); string str = strEXEのあるフォルダ + "Config.ini"; @@ -2424,9 +2378,9 @@ for (int i = 0; i < 3; i++) { Trace.TraceInformation("Deinitialized loudness scanning, song gain control, and sound group level control."); } - ConfigIni = null; - - //--------------------- + ConfigIni = null; + + //--------------------- #endregion Trace.TraceInformation("OpenTaiko has closed down successfully."); this.b終了処理完了済み = true; @@ -2441,9 +2395,9 @@ for (int i = 0; i < 3; i++) { private void ChangeResolution(int nWidth, int nHeight) { GameWindowSize.Width = nWidth; - GameWindowSize.Height = nHeight; - - //WindowSize = new Silk.NET.Maths.Vector2D(nWidth, nHeight); + GameWindowSize.Height = nHeight; + + //WindowSize = new Silk.NET.Maths.Vector2D(nWidth, nHeight); } public void RefreshSkin() { @@ -2470,9 +2424,9 @@ for (int i = 0; i < 3; i++) { OpenTaiko.stage結果.RefreshSkin(); CActSelectPopupMenu.RefleshSkin(); CActSelect段位リスト.RefleshSkin(); - } + } #endregion - + #region [ EXTENDED VARIABLES ] public static float fCamXOffset; public static float fCamYOffset; @@ -2483,6 +2437,6 @@ for (int i = 0; i < 3; i++) { public static float fCamXScale = 1.0f; public static float fCamYScale = 1.0f; - public static Color4 borderColor = new Color4(1f, 0f, 0f, 0f); + public static Color4 borderColor = new Color4(1f, 0f, 0f, 0f); #endregion } diff --git a/OpenTaiko/src/Components/CSongReplay.cs b/OpenTaiko/src/Components/CSongReplay.cs index 3ba785a0..f8446a95 100644 --- a/OpenTaiko/src/Components/CSongReplay.cs +++ b/OpenTaiko/src/Components/CSongReplay.cs @@ -321,7 +321,7 @@ class CSongReplay { // Chart metadata ChartUniqueID = OpenTaiko.stageSongSelect.rChoosenSong.uniqueId.data.id; ChartDifficulty = (byte)OpenTaiko.stageSongSelect.nChoosenSongDifficulty[storedPlayer]; - ChartLevel = (byte)Math.Min(255, OpenTaiko.stageSongSelect.rChoosenSong.arスコア[ChartDifficulty].譜面情報.nレベル[ChartDifficulty]); + ChartLevel = (byte)Math.Min(255, OpenTaiko.stageSongSelect.rChoosenSong.score[ChartDifficulty].譜面情報.nレベル[ChartDifficulty]); // Online score ID used for online leaderboards linking, given by the server (Defaulted to 0 for now) OnlineScoreID = 0; // Replay Checksum (Calculate at the end) diff --git a/OpenTaiko/src/Databases/DBSaves.cs b/OpenTaiko/src/Databases/DBSaves.cs index fba949e1..0fe5e14b 100644 --- a/OpenTaiko/src/Databases/DBSaves.cs +++ b/OpenTaiko/src/Databases/DBSaves.cs @@ -291,12 +291,12 @@ internal class DBSaves { { currentPlay.ChartUniqueId = choosenSong.uniqueId.data.id; - currentPlay.ChartGenre = choosenSong.strジャンル; + currentPlay.ChartGenre = choosenSong.songGenre; currentPlay.Charter = choosenSong.strNotesDesigner[choosenDifficulty]; currentPlay.Artist = choosenSong.ldSubtitle.GetString(""); // There is no direct Artist tag on the .tja format, so we directly use the subtitle as a guess currentPlay.PlayMods = ModIcons.tModsToPlayModsFlags(player); currentPlay.ChartDifficulty = choosenDifficulty; - currentPlay.ChartLevel = choosenSong.arスコア[choosenDifficulty].譜面情報.nレベル[choosenDifficulty]; + currentPlay.ChartLevel = choosenSong.score[choosenDifficulty].譜面情報.nレベル[choosenDifficulty]; currentPlay.ClearStatus = clearStatus; currentPlay.ScoreRank = scoreRank; currentPlay.HighScore = chartScore.nScore; diff --git a/OpenTaiko/src/Databases/DBSongUnlockables.cs b/OpenTaiko/src/Databases/DBSongUnlockables.cs index 52f3dbe9..8d3ec14f 100644 --- a/OpenTaiko/src/Databases/DBSongUnlockables.cs +++ b/OpenTaiko/src/Databases/DBSongUnlockables.cs @@ -80,7 +80,7 @@ internal class DBSongUnlockables : CSavableT> Modal.EModalType.Song, HRarity.tRarityToModalInt(item.Value.rarity), _node, - OpenTaiko.stageSongSelect.actPreimageパネル.tGenerateAndGetPreimage(_node?.arスコア[0] ?? null) + OpenTaiko.stageSongSelect.actPreimageパネル.tGenerateAndGetPreimage(_node?.score[0] ?? null) ), _player); diff --git a/OpenTaiko/src/Helpers/HGaugeMethods.cs b/OpenTaiko/src/Helpers/HGaugeMethods.cs index cfc81e10..d55ae005 100644 --- a/OpenTaiko/src/Helpers/HGaugeMethods.cs +++ b/OpenTaiko/src/Helpers/HGaugeMethods.cs @@ -405,7 +405,7 @@ class HGaugeMethods { var _dif = OpenTaiko.stageSongSelect.nChoosenSongDifficulty[player]; return tNormaCheck( (Difficulty)_dif, - OpenTaiko.stageSongSelect.rChoosenSong.arスコア[_dif].譜面情報.nレベル[_dif], + OpenTaiko.stageSongSelect.rChoosenSong.score[_dif].譜面情報.nレベル[_dif], tGetGaugeTypeEnum(chara.effect.tGetGaugeType()), (float)OpenTaiko.stage演奏ドラム画面.actGauge.db現在のゲージ値[player], UNSAFE_KillZonePercent(player) @@ -436,7 +436,7 @@ class HGaugeMethods { // Difficulty int _dif = OpenTaiko.stageSongSelect.nChoosenSongDifficulty[player]; Difficulty difficulty = (Difficulty)_dif; - int level = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[_dif].譜面情報.nレベル[_dif]; + int level = OpenTaiko.stageSongSelect.rChoosenSong.score[_dif].譜面情報.nレベル[_dif]; return tHardGaugeGetKillscreenRatio( difficulty, @@ -542,7 +542,7 @@ class HGaugeMethods { // Difficulty int _dif = OpenTaiko.stageSongSelect.nChoosenSongDifficulty[player]; Difficulty difficulty = (Difficulty)_dif; - int level = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[_dif].譜面情報.nレベル[_dif]; + int level = OpenTaiko.stageSongSelect.rChoosenSong.score[_dif].譜面情報.nレベル[_dif]; // Current percent float currentPercent = (float)OpenTaiko.stage演奏ドラム画面.actGauge.db現在のゲージ値[player]; @@ -626,7 +626,7 @@ class HGaugeMethods { // Difficulty int _dif = OpenTaiko.stageSongSelect.nChoosenSongDifficulty[player]; Difficulty difficulty = (Difficulty)_dif; - int level = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[_dif].譜面情報.nレベル[_dif]; + int level = OpenTaiko.stageSongSelect.rChoosenSong.score[_dif].譜面情報.nレベル[_dif]; int gauge_x; int gauge_y; diff --git a/OpenTaiko/src/Helpers/HSongTraverse.cs b/OpenTaiko/src/Helpers/HSongTraverse.cs index ec73fe85..5dd2e4e1 100644 --- a/OpenTaiko/src/Helpers/HSongTraverse.cs +++ b/OpenTaiko/src/Helpers/HSongTraverse.cs @@ -4,17 +4,17 @@ class HSongTraverse { public static List SpecialFolders = new List { "Favorite", "最近遊んだ曲", "SearchD" }; public static bool IsRegularFolder(CSongListNode node) { - if (node.eノード種別 != CSongListNode.ENodeType.BOX) return false; - if (SpecialFolders.Contains(node.strジャンル)) return false; + if (node.nodeType != CSongListNode.ENodeType.BOX) return false; + if (SpecialFolders.Contains(node.songGenre)) return false; return true; } public static int GetSongsMatchingCondition(CSongListNode parentBox, Func payload) { int count = 0; - foreach (CSongListNode child in parentBox.list子リスト) { + foreach (CSongListNode child in parentBox.childrenList) { if (IsRegularFolder(child)) count += GetSongsMatchingCondition(child, payload); - else if (child.eノード種別 == CSongListNode.ENodeType.SCORE && payload(child)) count += 1; + else if (child.nodeType == CSongListNode.ENodeType.SCORE && payload(child)) count += 1; } return count; diff --git a/OpenTaiko/src/Songs/Cスコア.cs b/OpenTaiko/src/Songs/CScore.cs similarity index 98% rename from OpenTaiko/src/Songs/Cスコア.cs rename to OpenTaiko/src/Songs/CScore.cs index afa87cbc..ea5f89fe 100644 --- a/OpenTaiko/src/Songs/Cスコア.cs +++ b/OpenTaiko/src/Songs/CScore.cs @@ -5,9 +5,12 @@ using FDK; namespace OpenTaiko; [Serializable] -internal class Cスコア { - // Properties - +internal class CScore { + // Old DTX class, to deprecate ASAP and handle everything on CSongListNode + + + // Properties + public STScoreIni情報 ScoreIni情報; [Serializable] [StructLayout(LayoutKind.Sequential)] @@ -72,11 +75,11 @@ internal class Cスコア { public int[] nハイスコア; public string strサブタイトル; public int[] nレベル; - public int[] nクリア; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ - public int[] nスコアランク; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極 - public CDTX.ELevelIcon[] nLevelIcon; - - // Tower lifes + public int[] nクリア; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ + public int[] nスコアランク; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極 + public CDTX.ELevelIcon[] nLevelIcon; + + // Tower lifes public int nLife; public int nTotalFloor; public string nTowerType; @@ -209,12 +212,12 @@ internal class Cスコア { get { return (((this.譜面情報.レベル[0] + this.譜面情報.レベル[1]) + this.譜面情報.レベル[2]) != 0); } - } - - - // Constructor - - public Cスコア() { + } + + + // Constructor + + public CScore() { this.ScoreIni情報 = new STScoreIni情報(DateTime.MinValue, 0L); this.bSongDBにキャッシュがあった = false; this.ファイル情報 = new STファイル情報("", "", DateTime.MinValue, 0L); diff --git a/OpenTaiko/src/Songs/CSongListNode.cs b/OpenTaiko/src/Songs/CSongListNode.cs index 7b1b789c..e648c644 100644 --- a/OpenTaiko/src/Songs/CSongListNode.cs +++ b/OpenTaiko/src/Songs/CSongListNode.cs @@ -3,10 +3,10 @@ namespace OpenTaiko; [Serializable] -internal class CSongListNode { - // Properties - - public ENodeType eノード種別 = ENodeType.UNKNOWN; +internal class CSongListNode { + // Properties + + public ENodeType nodeType = ENodeType.UNKNOWN; public enum ENodeType { SCORE, SCORE_MIDI, @@ -16,19 +16,10 @@ internal class CSongListNode { UNKNOWN } public int nID { get; private set; } - public Cスコア[] arスコア = new Cスコア[(int)Difficulty.Total]; + public CScore[] score = new CScore[(int)Difficulty.Total]; + + public string[] difficultyLabel = new string[(int)Difficulty.Total]; - public string[] ar難易度ラベル = new string[(int)Difficulty.Total]; - public bool bDTXFilesで始まるフォルダ名のBOXである; - public bool bBoxDefで作成されたBOXである { - get { - return !this.bDTXFilesで始まるフォルダ名のBOXである; - } - set { - this.bDTXFilesで始まるフォルダ名のBOXである = !value; - } - } - public Color col文字色 = Color.White; public Color ForeColor = Color.White; public Color BackColor = Color.Black; public Color BoxColor = Color.White; @@ -45,41 +36,45 @@ internal class CSongListNode { public bool IsChangedForeColor; public bool IsChangedBackColor; public bool isChangedBoxColor; - public List listランダム用ノードリスト; - public List list子リスト; - public int nGood範囲ms = -1; - public int nGreat範囲ms = -1; - public int nPerfect範囲ms = -1; - public int nPoor範囲ms = -1; - public int nスコア数; - - public CSongListNode rParentNode; + public List randomList; + public List childrenList; + public int difficultiesCount; // 4~5 if AD + + public CSongListNode rParentNode; + + // Internal public int Openindex; - public bool bIsOpenFolder; - public string strジャンル = ""; - public string str本当のジャンル = ""; + public bool bIsOpenFolder; + public string strBreadcrumbs = ""; // Removable? + public string strSkinPath = ""; // Removable? + + // Metadata + public string songGenre = ""; + public string songGenrePanel = ""; // Used only for the panel under the song title public CLocalizationData ldTitle = new CLocalizationData(); - public List DanSongs; - public Dan_C[] Dan_C; public CLocalizationData ldSubtitle = new CLocalizationData(); public string strMaker = ""; public string[] strNotesDesigner = new string[(int)Difficulty.Total] { "", "", "", "", "", "", "" }; public CDTX.ESide nSide = CDTX.ESide.eEx; public bool bExplicit = false; - public bool bMovie = false; - public string strBreadcrumbs = ""; // #27060 2011.2.27 yyagi; MUSIC BOXのパンくずリスト (曲リスト構造内の絶対位置捕捉のために使う) - public string strSkinPath = ""; // #28195 2012.5.4 yyagi; box.defでのスキン切り替え対応 - public bool bBranch = false; + public bool bMovie = false; public int[] nLevel = new int[(int)Difficulty.Total] { 0, 0, 0, 0, 0, 0, 0 }; - public CDTX.ELevelIcon[] nLevelIcon = new CDTX.ELevelIcon[(int)Difficulty.Total] { CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone }; - - // Tower Lives + public CDTX.ELevelIcon[] nLevelIcon = new CDTX.ELevelIcon[(int)Difficulty.Total] { CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone }; + + // Branches + public bool bBranch = false; + + // Dan + public List DanSongs; + public Dan_C[] Dan_C; + + // Tower Lives public int nLife = 5; public int nTotalFloor = 140; - public string nTowerType; - - // Unique id + public string nTowerType; + + // Unique id public CSongUniqueID uniqueId; public int nDanTick = 0; @@ -87,18 +82,18 @@ internal class CSongListNode { public CLocalizationData[] strBoxText = new CLocalizationData[3] { new CLocalizationData(), new CLocalizationData(), new CLocalizationData() }; - public string strSelectBGPath; - - // In-game visuals - + public string strSelectBGPath; + + // In-game visuals + public string strScenePreset = null; public string tGetUniqueId() { return uniqueId?.data.id ?? ""; - } - - // Constructor - + } + + // Constructor + public CSongListNode() { this.nID = id++; } @@ -117,14 +112,14 @@ internal class CSongListNode { public override int GetHashCode() { return base.GetHashCode(); - } - - - // その他 - + } + + + // その他 + #region [ private ] - //----------------- - private static int id; - //----------------- + //----------------- + private static int id; + //----------------- #endregion } diff --git a/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerLevel.cs b/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerLevel.cs index 04c3047e..704da787 100644 --- a/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerLevel.cs +++ b/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerLevel.cs @@ -8,8 +8,8 @@ internal sealed class CSongListNodeComparerLevel : IComparer { } public int Compare(CSongListNode n1, CSongListNode n2) { - int _n1s = (n1.eノード種別 != CSongListNode.ENodeType.SCORE) ? 0 : 1; - int _n2s = (n2.eノード種別 != CSongListNode.ENodeType.SCORE) ? 0 : 1; + int _n1s = (n1.nodeType != CSongListNode.ENodeType.SCORE) ? 0 : 1; + int _n2s = (n2.nodeType != CSongListNode.ENodeType.SCORE) ? 0 : 1; if (_n1s == 0 || _n2s == 0) { diff --git a/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerLevelIcon.cs b/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerLevelIcon.cs index a50e2471..70f38502 100644 --- a/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerLevelIcon.cs +++ b/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerLevelIcon.cs @@ -8,8 +8,8 @@ internal sealed class CSongListNodeComparerLevelIcon : IComparer } public int Compare(CSongListNode n1, CSongListNode n2) { - int _n1s = (n1.eノード種別 != CSongListNode.ENodeType.SCORE) ? 0 : 1; - int _n2s = (n2.eノード種別 != CSongListNode.ENodeType.SCORE) ? 0 : 1; + int _n1s = (n1.nodeType != CSongListNode.ENodeType.SCORE) ? 0 : 1; + int _n2s = (n2.nodeType != CSongListNode.ENodeType.SCORE) ? 0 : 1; if (_n1s == 0 || _n2s == 0) { diff --git a/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerNodeType.cs b/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerNodeType.cs index bebdda06..03c2744d 100644 --- a/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerNodeType.cs +++ b/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerNodeType.cs @@ -2,7 +2,7 @@ internal sealed class CSongListNodeComparerNodeType : IComparer { public int Compare(CSongListNode x, CSongListNode y) { - return ToComparable(x.eノード種別).CompareTo(ToComparable(y.eノード種別)); + return ToComparable(x.nodeType).CompareTo(ToComparable(y.nodeType)); } private static int ToComparable(CSongListNode.ENodeType nodeType) { diff --git a/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerPath.cs b/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerPath.cs index 507949fe..0ddc96eb 100644 --- a/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerPath.cs +++ b/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerPath.cs @@ -8,8 +8,8 @@ internal sealed class CSongListNodeComparerPath : IComparer { } public int Compare(CSongListNode n1, CSongListNode n2) { - if ((n1.eノード種別 == CSongListNode.ENodeType.BOX) && (n2.eノード種別 == CSongListNode.ENodeType.BOX)) { - return _order * n1.arスコア[0].ファイル情報.フォルダの絶対パス.CompareTo(n2.arスコア[0].ファイル情報.フォルダの絶対パス); + if ((n1.nodeType == CSongListNode.ENodeType.BOX) && (n2.nodeType == CSongListNode.ENodeType.BOX)) { + return _order * n1.score[0].ファイル情報.フォルダの絶対パス.CompareTo(n2.score[0].ファイル情報.フォルダの絶対パス); } var str = filePath(n1); @@ -20,8 +20,8 @@ internal sealed class CSongListNodeComparerPath : IComparer { private static string filePath(CSongListNode songNode) { for (int i = 0; i < (int)Difficulty.Total; i++) { - if (songNode.arスコア[i] != null) { - return songNode.arスコア[i].ファイル情報.ファイルの絶対パス ?? ""; + if (songNode.score[i] != null) { + return songNode.score[i].ファイル情報.ファイルの絶対パス ?? ""; } } diff --git a/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerUnlockStatus.cs b/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerUnlockStatus.cs index 3fd04e89..35ee3a9d 100644 --- a/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerUnlockStatus.cs +++ b/OpenTaiko/src/Songs/CSongListNodeComparers/CSongListNodeComparerUnlockStatus.cs @@ -3,8 +3,8 @@ internal sealed class CSongListNodeComparerUnlockStatus : IComparer { public int Compare(CSongListNode n1, CSongListNode n2) { - int _n1s = (n1.eノード種別 != CSongListNode.ENodeType.SCORE) ? 0 : 1; - int _n2s = (n2.eノード種別 != CSongListNode.ENodeType.SCORE) ? 0 : 1; + int _n1s = (n1.nodeType != CSongListNode.ENodeType.SCORE) ? 0 : 1; + int _n2s = (n2.nodeType != CSongListNode.ENodeType.SCORE) ? 0 : 1; if (_n1s == 0 || _n2s == 0) { diff --git a/OpenTaiko/src/Songs/CSong管理.cs b/OpenTaiko/src/Songs/CSong管理.cs index 5e752c41..95cf84af 100644 --- a/OpenTaiko/src/Songs/CSong管理.cs +++ b/OpenTaiko/src/Songs/CSong管理.cs @@ -67,26 +67,26 @@ internal class CSongs管理 { CSongListNode downloadBox = null; for (int i = 0; i < OpenTaiko.Songs管理.list曲ルート.Count; i++) { - if (OpenTaiko.Songs管理.list曲ルート[i].strジャンル == "Download") { + if (OpenTaiko.Songs管理.list曲ルート[i].songGenre == "Download") { downloadBox = OpenTaiko.Songs管理.list曲ルート[i]; if (downloadBox.rParentNode != null) downloadBox = downloadBox.rParentNode; } } - if (downloadBox != null && downloadBox.list子リスト != null) { + if (downloadBox != null && downloadBox.childrenList != null) { - var flatten = OpenTaiko.stageSongSelect.actSongList.flattenList(downloadBox.list子リスト); + var flatten = OpenTaiko.stageSongSelect.actSongList.flattenList(downloadBox.childrenList); // Works because flattenList creates a new List - for (int i = 0; i < downloadBox.list子リスト.Count; i++) { - CSongDict.tRemoveSongNode(downloadBox.list子リスト[i].uniqueId); - downloadBox.list子リスト.Remove(downloadBox.list子リスト[i]); + for (int i = 0; i < downloadBox.childrenList.Count; i++) { + CSongDict.tRemoveSongNode(downloadBox.childrenList[i].uniqueId); + downloadBox.childrenList.Remove(downloadBox.childrenList[i]); i--; } - var path = downloadBox.arスコア[0].ファイル情報.フォルダの絶対パス; + var path = downloadBox.score[0].ファイル情報.フォルダの絶対パス; if (flatten.Count > 0) { int index = list曲ルート.IndexOf(flatten[0]); @@ -95,9 +95,9 @@ internal class CSongs管理 { list曲ルート.Insert(index, downloadBox); } - t曲を検索してリストを作成する(path, true, downloadBox.list子リスト, downloadBox); - this.tSongListPostprocessing(downloadBox.list子リスト, $"/{downloadBox.ldTitle.GetString("")}/"); - downloadBox.list子リスト.Insert(0, CSongDict.tGenerateBackButton(downloadBox, $"/{downloadBox.ldTitle.GetString("")}/")); + t曲を検索してリストを作成する(path, true, downloadBox.childrenList, downloadBox); + this.tSongListPostprocessing(downloadBox.childrenList, $"/{downloadBox.ldTitle.GetString("")}/"); + downloadBox.childrenList.Insert(0, CSongDict.tGenerateBackButton(downloadBox, $"/{downloadBox.ldTitle.GetString("")}/")); } } @@ -142,20 +142,20 @@ internal class CSongs管理 { CSongListNode c曲リストノード = new CSongListNode(); - c曲リストノード.eノード種別 = CSongListNode.ENodeType.SCORE; + c曲リストノード.nodeType = CSongListNode.ENodeType.SCORE; bool b = false; for (int n = 0; n < (int)Difficulty.Total; n++) { CDTX dtx = new CDTX(fileinfo.FullName, false, 1.0, 0, 1); if (dtx.b譜面が存在する[n]) { - c曲リストノード.nスコア数++; + c曲リストノード.difficultiesCount++; c曲リストノード.rParentNode = node親; c曲リストノード.strBreadcrumbs = (c曲リストノード.rParentNode == null) ? str基点フォルダ + fileinfo.Name : c曲リストノード.rParentNode.strBreadcrumbs + " > " + str基点フォルダ + fileinfo.Name; c曲リストノード.ldTitle = dtx.TITLE; c曲リストノード.ldSubtitle = dtx.SUBTITLE; - c曲リストノード.strジャンル = dtx.GENRE; + c曲リストノード.songGenre = dtx.GENRE; c曲リストノード.strMaker = dtx.MAKER; c曲リストノード.strNotesDesigner = dtx.NOTESDESIGNER.Select(x => x.Equals("") ? c曲リストノード.strMaker : x).ToArray(); @@ -163,8 +163,8 @@ internal class CSongs管理 { c曲リストノード.nSide = dtx.SIDE; c曲リストノード.bExplicit = dtx.EXPLICIT; c曲リストノード.bMovie = !string.IsNullOrEmpty(dtx.strBGVIDEO_PATH); - if (c曲リストノード.rParentNode != null && c曲リストノード.rParentNode.strジャンル != "") { - c曲リストノード.strジャンル = c曲リストノード.rParentNode.strジャンル; + if (c曲リストノード.rParentNode != null && c曲リストノード.rParentNode.songGenre != "") { + c曲リストノード.songGenre = c曲リストノード.rParentNode.songGenre; } c曲リストノード.strSelectBGPath = $@"{fileinfo.FullName}{Path.DirectorySeparatorChar}..{Path.DirectorySeparatorChar}{dtx.SELECTBG}"; if (!File.Exists(c曲リストノード.strSelectBGPath)) c曲リストノード.strSelectBGPath = null; @@ -189,12 +189,12 @@ internal class CSongs管理 { } c曲リストノード.nTotalFloor++; - c曲リストノード.str本当のジャンル = c曲リストノード.strジャンル; - c曲リストノード.arスコア[n] = new Cスコア(); - c曲リストノード.arスコア[n].ファイル情報.ファイルの絶対パス = str基点フォルダ + fileinfo.Name; - c曲リストノード.arスコア[n].ファイル情報.フォルダの絶対パス = str基点フォルダ; - c曲リストノード.arスコア[n].ファイル情報.ファイルサイズ = fileinfo.Length; - c曲リストノード.arスコア[n].ファイル情報.最終更新日時 = fileinfo.LastWriteTime; + c曲リストノード.songGenrePanel = c曲リストノード.songGenre; + c曲リストノード.score[n] = new CScore(); + c曲リストノード.score[n].ファイル情報.ファイルの絶対パス = str基点フォルダ + fileinfo.Name; + c曲リストノード.score[n].ファイル情報.フォルダの絶対パス = str基点フォルダ; + c曲リストノード.score[n].ファイル情報.ファイルサイズ = fileinfo.Length; + c曲リストノード.score[n].ファイル情報.最終更新日時 = fileinfo.LastWriteTime; LoadChartInfo(c曲リストノード, dtx, n); @@ -284,12 +284,12 @@ internal class CSongs管理 { } else { CDTX dtx = new CDTX(filePath, false, 1.0, 0, 0); CSongListNode c曲リストノード = new CSongListNode(); - c曲リストノード.eノード種別 = CSongListNode.ENodeType.SCORE; + c曲リストノード.nodeType = CSongListNode.ENodeType.SCORE; bool b = false; for (int n = 0; n < (int)Difficulty.Total; n++) { if (dtx.b譜面が存在する[n]) { - c曲リストノード.nスコア数++; + c曲リストノード.difficultiesCount++; c曲リストノード.rParentNode = node親; c曲リストノード.strBreadcrumbs = (c曲リストノード.rParentNode == null) ? str基点フォルダ + fileinfo.Name : c曲リストノード.rParentNode.strBreadcrumbs + " > " + str基点フォルダ + fileinfo.Name; @@ -314,15 +314,15 @@ internal class CSongs管理 { if (!string.IsNullOrEmpty(dtx.GENRE)) { if (c曲リストノード.rParentNode != null) { - c曲リストノード.strジャンル = c曲リストノード.rParentNode.strジャンル; - c曲リストノード.str本当のジャンル = dtx.GENRE; + c曲リストノード.songGenre = c曲リストノード.rParentNode.songGenre; + c曲リストノード.songGenrePanel = dtx.GENRE; } else { - c曲リストノード.strジャンル = dtx.GENRE; - c曲リストノード.str本当のジャンル = dtx.GENRE; + c曲リストノード.songGenre = dtx.GENRE; + c曲リストノード.songGenrePanel = dtx.GENRE; } } else { - c曲リストノード.strジャンル = c曲リストノード.rParentNode.strジャンル; - c曲リストノード.str本当のジャンル = c曲リストノード.rParentNode.strジャンル; + c曲リストノード.songGenre = c曲リストノード.rParentNode.songGenre; + c曲リストノード.songGenrePanel = c曲リストノード.rParentNode.songGenre; } if (c曲リストノード.strSelectBGPath == null || !File.Exists(str基点フォルダ + dtx.SELECTBG)) { @@ -367,7 +367,7 @@ internal class CSongs管理 { } - switch (CStrジャンルtoNum.ForAC15(c曲リストノード.strジャンル)) { + switch (CStrジャンルtoNum.ForAC15(c曲リストノード.songGenre)) { case 0: c曲リストノード.ForeColor = OpenTaiko.Skin.SongSelect_ForeColor_JPOP; c曲リストノード.BackColor = OpenTaiko.Skin.SongSelect_BackColor_JPOP; @@ -411,14 +411,14 @@ internal class CSongs管理 { CSongDict.tAddSongNode(c曲リストノード.uniqueId, c曲リストノード); - c曲リストノード.arスコア[n] = new Cスコア(); - c曲リストノード.arスコア[n].ファイル情報.ファイルの絶対パス = str基点フォルダ + fileinfo.Name; - c曲リストノード.arスコア[n].ファイル情報.フォルダの絶対パス = str基点フォルダ; - c曲リストノード.arスコア[n].ファイル情報.ファイルサイズ = fileinfo.Length; - c曲リストノード.arスコア[n].ファイル情報.最終更新日時 = fileinfo.LastWriteTime; + c曲リストノード.score[n] = new CScore(); + c曲リストノード.score[n].ファイル情報.ファイルの絶対パス = str基点フォルダ + fileinfo.Name; + c曲リストノード.score[n].ファイル情報.フォルダの絶対パス = str基点フォルダ; + c曲リストノード.score[n].ファイル情報.ファイルサイズ = fileinfo.Length; + c曲リストノード.score[n].ファイル情報.最終更新日時 = fileinfo.LastWriteTime; - if (c曲リストノード.rParentNode != null && String.IsNullOrEmpty(c曲リストノード.arスコア[n].譜面情報.Preimage)) { - c曲リストノード.arスコア[n].譜面情報.Preimage = c曲リストノード.rParentNode.arスコア[0].譜面情報.Preimage; + if (c曲リストノード.rParentNode != null && String.IsNullOrEmpty(c曲リストノード.score[n].譜面情報.Preimage)) { + c曲リストノード.score[n].譜面情報.Preimage = c曲リストノード.rParentNode.score[0].譜面情報.Preimage; } LoadChartInfo(c曲リストノード, dtx, n); @@ -449,10 +449,9 @@ internal class CSongs管理 { if (File.Exists(infoDir.FullName + @$"{Path.DirectorySeparatorChar}box.def")) { CBoxDef boxdef = new CBoxDef(infoDir.FullName + @$"{Path.DirectorySeparatorChar}box.def"); CSongListNode c曲リストノード = new CSongListNode(); - c曲リストノード.eノード種別 = CSongListNode.ENodeType.BOX; - c曲リストノード.bDTXFilesで始まるフォルダ名のBOXである = false; + c曲リストノード.nodeType = CSongListNode.ENodeType.BOX; c曲リストノード.ldTitle = boxdef.Title; - c曲リストノード.strジャンル = boxdef.Genre; + c曲リストノード.songGenre = boxdef.Genre; c曲リストノード.strScenePreset = boxdef.ScenePreset; c曲リストノード.strSelectBGPath = infoDir.FullName + Path.DirectorySeparatorChar + boxdef.SelectBG; if (!File.Exists(c曲リストノード.strSelectBGPath)) c曲リストノード.strSelectBGPath = null; @@ -493,7 +492,7 @@ internal class CSongs管理 { c曲リストノード.strBoxText[i] = boxdef.strBoxText[i]; } } - switch (CStrジャンルtoNum.ForAC15(c曲リストノード.strジャンル)) { + switch (CStrジャンルtoNum.ForAC15(c曲リストノード.songGenre)) { case 0: c曲リストノード.ForeColor = OpenTaiko.Skin.SongSelect_ForeColor_JPOP; c曲リストノード.BackColor = OpenTaiko.Skin.SongSelect_BackColor_JPOP; @@ -532,13 +531,13 @@ internal class CSongs管理 { - c曲リストノード.nスコア数 = 1; - c曲リストノード.arスコア[0] = new Cスコア(); - c曲リストノード.arスコア[0].ファイル情報.フォルダの絶対パス = infoDir.FullName + Path.DirectorySeparatorChar; - c曲リストノード.arスコア[0].譜面情報.タイトル = boxdef.Title.GetString(""); - c曲リストノード.arスコア[0].譜面情報.ジャンル = boxdef.Genre; + c曲リストノード.difficultiesCount = 1; + c曲リストノード.score[0] = new CScore(); + c曲リストノード.score[0].ファイル情報.フォルダの絶対パス = infoDir.FullName + Path.DirectorySeparatorChar; + c曲リストノード.score[0].譜面情報.タイトル = boxdef.Title.GetString(""); + c曲リストノード.score[0].譜面情報.ジャンル = boxdef.Genre; if (!String.IsNullOrEmpty(boxdef.DefaultPreimage)) - c曲リストノード.arスコア[0].譜面情報.Preimage = boxdef.DefaultPreimage; + c曲リストノード.score[0].譜面情報.Preimage = boxdef.DefaultPreimage; c曲リストノード.rParentNode = node親; @@ -546,7 +545,7 @@ internal class CSongs管理 { c曲リストノード.ldTitle.GetString("") : c曲リストノード.rParentNode.strBreadcrumbs + " > " + c曲リストノード.ldTitle.GetString(""); - c曲リストノード.list子リスト = new List(); + c曲リストノード.childrenList = new List(); listノードリスト.Add(c曲リストノード); if (OpenTaiko.ConfigIni.bOutputSongSearchLog) { Trace.TraceInformation("box.def検出 : {0}", infoDir.FullName + @$"{Path.DirectorySeparatorChar}box.def"); @@ -560,8 +559,8 @@ internal class CSongs管理 { sb.Append("(onRoot):"); } sb.Append("BOX, Title=" + c曲リストノード.ldTitle.GetString("")); - if ((c曲リストノード.strジャンル != null) && (c曲リストノード.strジャンル.Length > 0)) { - sb.Append(", Genre=" + c曲リストノード.strジャンル); + if ((c曲リストノード.songGenre != null) && (c曲リストノード.songGenre.Length > 0)) { + sb.Append(", Genre=" + c曲リストノード.songGenre); } if (c曲リストノード.IsChangedForeColor) { sb.Append(", ForeColor=" + c曲リストノード.ForeColor.ToString()); @@ -590,7 +589,7 @@ internal class CSongs管理 { } } if (b子BOXへ再帰する) { - this.t曲を検索してリストを作成する(infoDir.FullName + Path.DirectorySeparatorChar, b子BOXへ再帰する, c曲リストノード.list子リスト, c曲リストノード); + this.t曲を検索してリストを作成する(infoDir.FullName + Path.DirectorySeparatorChar, b子BOXへ再帰する, c曲リストノード.childrenList, c曲リストノード); } } //----------------------------- @@ -609,58 +608,58 @@ internal class CSongs管理 { #endregion private void LoadChartInfo(CSongListNode c曲リストノード, CDTX cdtx, int i) { - if ((c曲リストノード.arスコア[i] != null) && !c曲リストノード.arスコア[i].bSongDBにキャッシュがあった) { + if ((c曲リストノード.score[i] != null) && !c曲リストノード.score[i].bSongDBにキャッシュがあった) { #region [ DTX ファイルのヘッダだけ読み込み、Cスコア.譜面情報 を設定する ] //----------------- - string path = c曲リストノード.arスコア[i].ファイル情報.ファイルの絶対パス; + string path = c曲リストノード.score[i].ファイル情報.ファイルの絶対パス; if (File.Exists(path)) { try { - c曲リストノード.arスコア[i].譜面情報.タイトル = cdtx.TITLE.GetString(""); + c曲リストノード.score[i].譜面情報.タイトル = cdtx.TITLE.GetString(""); - c曲リストノード.arスコア[i].譜面情報.アーティスト名 = cdtx.ARTIST; - c曲リストノード.arスコア[i].譜面情報.コメント = cdtx.COMMENT; - c曲リストノード.arスコア[i].譜面情報.ジャンル = cdtx.GENRE; + c曲リストノード.score[i].譜面情報.アーティスト名 = cdtx.ARTIST; + c曲リストノード.score[i].譜面情報.コメント = cdtx.COMMENT; + c曲リストノード.score[i].譜面情報.ジャンル = cdtx.GENRE; if (!String.IsNullOrEmpty(cdtx.PREIMAGE)) - c曲リストノード.arスコア[i].譜面情報.Preimage = cdtx.PREIMAGE; - c曲リストノード.arスコア[i].譜面情報.Presound = cdtx.PREVIEW; - c曲リストノード.arスコア[i].譜面情報.Backgound = ((cdtx.BACKGROUND != null) && (cdtx.BACKGROUND.Length > 0)) ? cdtx.BACKGROUND : cdtx.BACKGROUND_GR; - c曲リストノード.arスコア[i].譜面情報.レベル.Drums = cdtx.LEVEL.Drums; - c曲リストノード.arスコア[i].譜面情報.レベル.Guitar = cdtx.LEVEL.Guitar; - c曲リストノード.arスコア[i].譜面情報.レベル.Bass = cdtx.LEVEL.Bass; - c曲リストノード.arスコア[i].譜面情報.レベルを非表示にする = cdtx.HIDDENLEVEL; - c曲リストノード.arスコア[i].譜面情報.Bpm = cdtx.BPM; - c曲リストノード.arスコア[i].譜面情報.BaseBpm = cdtx.BASEBPM; - c曲リストノード.arスコア[i].譜面情報.MinBpm = cdtx.MinBPM; - c曲リストノード.arスコア[i].譜面情報.MaxBpm = cdtx.MaxBPM; - c曲リストノード.arスコア[i].譜面情報.Duration = 0; // (cdtx.listChip == null)? 0 : cdtx.listChip[ cdtx.listChip.Count - 1 ].n発声時刻ms; - c曲リストノード.arスコア[i].譜面情報.strBGMファイル名 = cdtx.strBGM_PATH; - c曲リストノード.arスコア[i].譜面情報.SongVol = cdtx.SongVol; - c曲リストノード.arスコア[i].譜面情報.SongLoudnessMetadata = cdtx.SongLoudnessMetadata; - c曲リストノード.arスコア[i].譜面情報.nデモBGMオフセット = cdtx.nデモBGMオフセット; - c曲リストノード.arスコア[i].譜面情報.strサブタイトル = cdtx.SUBTITLE.GetString(""); + c曲リストノード.score[i].譜面情報.Preimage = cdtx.PREIMAGE; + c曲リストノード.score[i].譜面情報.Presound = cdtx.PREVIEW; + c曲リストノード.score[i].譜面情報.Backgound = ((cdtx.BACKGROUND != null) && (cdtx.BACKGROUND.Length > 0)) ? cdtx.BACKGROUND : cdtx.BACKGROUND_GR; + c曲リストノード.score[i].譜面情報.レベル.Drums = cdtx.LEVEL.Drums; + c曲リストノード.score[i].譜面情報.レベル.Guitar = cdtx.LEVEL.Guitar; + c曲リストノード.score[i].譜面情報.レベル.Bass = cdtx.LEVEL.Bass; + c曲リストノード.score[i].譜面情報.レベルを非表示にする = cdtx.HIDDENLEVEL; + c曲リストノード.score[i].譜面情報.Bpm = cdtx.BPM; + c曲リストノード.score[i].譜面情報.BaseBpm = cdtx.BASEBPM; + c曲リストノード.score[i].譜面情報.MinBpm = cdtx.MinBPM; + c曲リストノード.score[i].譜面情報.MaxBpm = cdtx.MaxBPM; + c曲リストノード.score[i].譜面情報.Duration = 0; // (cdtx.listChip == null)? 0 : cdtx.listChip[ cdtx.listChip.Count - 1 ].n発声時刻ms; + c曲リストノード.score[i].譜面情報.strBGMファイル名 = cdtx.strBGM_PATH; + c曲リストノード.score[i].譜面情報.SongVol = cdtx.SongVol; + c曲リストノード.score[i].譜面情報.SongLoudnessMetadata = cdtx.SongLoudnessMetadata; + c曲リストノード.score[i].譜面情報.nデモBGMオフセット = cdtx.nデモBGMオフセット; + c曲リストノード.score[i].譜面情報.strサブタイトル = cdtx.SUBTITLE.GetString(""); for (int k = 0; k < (int)Difficulty.Total; k++) { - c曲リストノード.arスコア[i].譜面情報.b譜面分岐[k] = cdtx.bHIDDENBRANCH ? false : cdtx.bHasBranch[k]; - c曲リストノード.arスコア[i].譜面情報.nレベル[k] = cdtx.LEVELtaiko[k]; - c曲リストノード.arスコア[i].譜面情報.nLevelIcon[k] = cdtx.LEVELtaikoIcon[k]; + c曲リストノード.score[i].譜面情報.b譜面分岐[k] = cdtx.bHIDDENBRANCH ? false : cdtx.bHasBranch[k]; + c曲リストノード.score[i].譜面情報.nレベル[k] = cdtx.LEVELtaiko[k]; + c曲リストノード.score[i].譜面情報.nLevelIcon[k] = cdtx.LEVELtaikoIcon[k]; } // Tower Lives - c曲リストノード.arスコア[i].譜面情報.nLife = cdtx.LIFE; + c曲リストノード.score[i].譜面情報.nLife = cdtx.LIFE; - c曲リストノード.arスコア[i].譜面情報.nTowerType = cdtx.TOWERTYPE; + c曲リストノード.score[i].譜面情報.nTowerType = cdtx.TOWERTYPE; - c曲リストノード.arスコア[i].譜面情報.nDanTick = cdtx.DANTICK; - c曲リストノード.arスコア[i].譜面情報.cDanTickColor = cdtx.DANTICKCOLOR; + c曲リストノード.score[i].譜面情報.nDanTick = cdtx.DANTICK; + c曲リストノード.score[i].譜面情報.cDanTickColor = cdtx.DANTICKCOLOR; - c曲リストノード.arスコア[i].譜面情報.nTotalFloor = 0; + c曲リストノード.score[i].譜面情報.nTotalFloor = 0; for (int k = 0; k < cdtx.listChip.Count; k++) { CDTX.CChip pChip = cdtx.listChip[k]; - if (pChip.n整数値_内部番号 > c曲リストノード.arスコア[i].譜面情報.nTotalFloor && pChip.nチャンネル番号 == 0x50) - c曲リストノード.arスコア[i].譜面情報.nTotalFloor = pChip.n整数値_内部番号; + if (pChip.n整数値_内部番号 > c曲リストノード.score[i].譜面情報.nTotalFloor && pChip.nチャンネル番号 == 0x50) + c曲リストノード.score[i].譜面情報.nTotalFloor = pChip.n整数値_内部番号; } - c曲リストノード.arスコア[i].譜面情報.nTotalFloor++; + c曲リストノード.score[i].譜面情報.nTotalFloor++; @@ -671,23 +670,23 @@ internal class CSongs管理 { if (OpenTaiko.ConfigIni.bOutputSongSearchLog) { StringBuilder sb = new StringBuilder(0x400); sb.Append(string.Format("曲データファイルから譜面情報を転記しました。({0})", path)); - sb.Append("(title=" + c曲リストノード.arスコア[i].譜面情報.タイトル); - sb.Append(", artist=" + c曲リストノード.arスコア[i].譜面情報.アーティスト名); - sb.Append(", comment=" + c曲リストノード.arスコア[i].譜面情報.コメント); - sb.Append(", genre=" + c曲リストノード.arスコア[i].譜面情報.ジャンル); - sb.Append(", preimage=" + c曲リストノード.arスコア[i].譜面情報.Preimage); - sb.Append(", premovie=" + c曲リストノード.arスコア[i].譜面情報.Premovie); - sb.Append(", presound=" + c曲リストノード.arスコア[i].譜面情報.Presound); - sb.Append(", background=" + c曲リストノード.arスコア[i].譜面情報.Backgound); - sb.Append(", lvDr=" + c曲リストノード.arスコア[i].譜面情報.レベル.Drums); - sb.Append(", lvGt=" + c曲リストノード.arスコア[i].譜面情報.レベル.Guitar); - sb.Append(", lvBs=" + c曲リストノード.arスコア[i].譜面情報.レベル.Bass); - sb.Append(", lvHide=" + c曲リストノード.arスコア[i].譜面情報.レベルを非表示にする); - sb.Append(", type=" + c曲リストノード.arスコア[i].譜面情報.曲種別); - sb.Append(", bpm=" + c曲リストノード.arスコア[i].譜面情報.Bpm); - sb.Append(", basebpm=" + c曲リストノード.arスコア[i].譜面情報.BaseBpm); - sb.Append(", minbpm=" + c曲リストノード.arスコア[i].譜面情報.MinBpm); - sb.Append(", maxbpm=" + c曲リストノード.arスコア[i].譜面情報.MaxBpm); + sb.Append("(title=" + c曲リストノード.score[i].譜面情報.タイトル); + sb.Append(", artist=" + c曲リストノード.score[i].譜面情報.アーティスト名); + sb.Append(", comment=" + c曲リストノード.score[i].譜面情報.コメント); + sb.Append(", genre=" + c曲リストノード.score[i].譜面情報.ジャンル); + sb.Append(", preimage=" + c曲リストノード.score[i].譜面情報.Preimage); + sb.Append(", premovie=" + c曲リストノード.score[i].譜面情報.Premovie); + sb.Append(", presound=" + c曲リストノード.score[i].譜面情報.Presound); + sb.Append(", background=" + c曲リストノード.score[i].譜面情報.Backgound); + sb.Append(", lvDr=" + c曲リストノード.score[i].譜面情報.レベル.Drums); + sb.Append(", lvGt=" + c曲リストノード.score[i].譜面情報.レベル.Guitar); + sb.Append(", lvBs=" + c曲リストノード.score[i].譜面情報.レベル.Bass); + sb.Append(", lvHide=" + c曲リストノード.score[i].譜面情報.レベルを非表示にする); + sb.Append(", type=" + c曲リストノード.score[i].譜面情報.曲種別); + sb.Append(", bpm=" + c曲リストノード.score[i].譜面情報.Bpm); + sb.Append(", basebpm=" + c曲リストノード.score[i].譜面情報.BaseBpm); + sb.Append(", minbpm=" + c曲リストノード.score[i].譜面情報.MinBpm); + sb.Append(", maxbpm=" + c曲リストノード.score[i].譜面情報.MaxBpm); // sb.Append( ", duration=" + c曲リストノード.arスコア[ i ].譜面情報.Duration ); Trace.TraceInformation(sb.ToString()); } @@ -695,8 +694,8 @@ internal class CSongs管理 { #endregion } catch (Exception exception) { Trace.TraceError(exception.ToString()); - c曲リストノード.arスコア[i] = null; - c曲リストノード.nスコア数--; + c曲リストノード.score[i] = null; + c曲リストノード.difficultiesCount--; this.n検索されたスコア数--; Trace.TraceError("曲データファイルの読み込みに失敗しました。({0})", path); } @@ -720,37 +719,37 @@ internal class CSongs管理 { for (int p = 0; p < list曲ルート.Count; p++) { var c曲リストノード = list曲ルート[p]; - if (c曲リストノード.eノード種別 == CSongListNode.ENodeType.BOX) { - if (c曲リストノード.strジャンル == "段位道場") { + if (c曲リストノード.nodeType == CSongListNode.ENodeType.BOX) { + if (c曲リストノード.songGenre == "段位道場") { if (OpenTaiko.ConfigIni.bDanTowerHide) { list曲ルート.Remove(c曲リストノード); p--; } // Add to dojo - list曲ルート_Dan = c曲リストノード.list子リスト; - } else if (c曲リストノード.strジャンル == "太鼓タワー") { + list曲ルート_Dan = c曲リストノード.childrenList; + } else if (c曲リストノード.songGenre == "太鼓タワー") { if (OpenTaiko.ConfigIni.bDanTowerHide) { list曲ルート.Remove(c曲リストノード); p--; } - list曲ルート_Tower = c曲リストノード.list子リスト; + list曲ルート_Tower = c曲リストノード.childrenList; } else { - for (int i = 0; i < c曲リストノード.list子リスト.Count; i++) { - if (c曲リストノード.list子リスト[i].arスコア[6] != null) { - list曲ルート_Dan.Add(c曲リストノード.list子リスト[i]); + for (int i = 0; i < c曲リストノード.childrenList.Count; i++) { + if (c曲リストノード.childrenList[i].score[6] != null) { + list曲ルート_Dan.Add(c曲リストノード.childrenList[i]); if (OpenTaiko.ConfigIni.bDanTowerHide) - c曲リストノード.list子リスト.Remove(c曲リストノード.list子リスト[i]); + c曲リストノード.childrenList.Remove(c曲リストノード.childrenList[i]); continue; } - if (c曲リストノード.list子リスト[i].arスコア[5] != null) { - list曲ルート_Tower.Add(c曲リストノード.list子リスト[i]); + if (c曲リストノード.childrenList[i].score[5] != null) { + list曲ルート_Tower.Add(c曲リストノード.childrenList[i]); if (OpenTaiko.ConfigIni.bDanTowerHide) - c曲リストノード.list子リスト.Remove(c曲リストノード.list子リスト[i]); + c曲リストノード.childrenList.Remove(c曲リストノード.childrenList[i]); continue; } } @@ -795,16 +794,16 @@ internal class CSongs管理 { #region [ Append "Back" buttons to the included folders ] //----------------------------- - if (songNode.eノード種別 == CSongListNode.ENodeType.BOX) { + if (songNode.nodeType == CSongListNode.ENodeType.BOX) { - tSongListSortByPath(songNode.list子リスト); + tSongListSortByPath(songNode.childrenList); string newPath = parentName + songNode.ldTitle.GetString("") + "/"; - CSongDict.tReinsertBackButtons(songNode, songNode.list子リスト, newPath, listStrBoxDefSkinSubfolderFullName); + CSongDict.tReinsertBackButtons(songNode, songNode.childrenList, newPath, listStrBoxDefSkinSubfolderFullName); // Process subfolders recussively - tSongListPostprocessing(songNode.list子リスト, newPath, false); + tSongListPostprocessing(songNode.childrenList, newPath, false); continue; } @@ -816,7 +815,7 @@ internal class CSongs管理 { //----------------------------- if (string.IsNullOrEmpty(songNode.ldTitle.GetString(""))) { for (int j = 0; j < (int)Difficulty.Total; j++) { - if ((songNode.arスコア[j] != null) && !string.IsNullOrEmpty(songNode.arスコア[j].譜面情報.タイトル)) { + if ((songNode.score[j] != null) && !string.IsNullOrEmpty(songNode.score[j].譜面情報.タイトル)) { songNode.ldTitle = new CLocalizationData(); if (OpenTaiko.ConfigIni.bOutputSongSearchLog) @@ -844,8 +843,8 @@ internal class CSongs管理 { tSongListSortByPath(nodeList, 1, 0); foreach (CSongListNode songNode in nodeList) { - if ((songNode.list子リスト != null) && (songNode.list子リスト.Count > 1)) { - tSongListSortByPath(songNode.list子リスト); + if ((songNode.childrenList != null) && (songNode.childrenList.Count > 1)) { + tSongListSortByPath(songNode.childrenList); } } } diff --git a/OpenTaiko/src/Stages/05.DaniSelect/CActSelect段位リスト.cs b/OpenTaiko/src/Stages/05.DaniSelect/CActSelect段位リスト.cs index 569d07d9..9f78b40f 100644 --- a/OpenTaiko/src/Stages/05.DaniSelect/CActSelect段位リスト.cs +++ b/OpenTaiko/src/Stages/05.DaniSelect/CActSelect段位リスト.cs @@ -683,13 +683,13 @@ class CActSelect段位リスト : CStage { } public void tOpenFolder(CSongListNode song) { - listSongs = song.list子リスト; + listSongs = song.childrenList; n現在の選択行 = 0; tUpdateSongs(); } public void tCloseFolder(CSongListNode song) { - listSongs = song.rParentNode.rParentNode.list子リスト; + listSongs = song.rParentNode.rParentNode.childrenList; n現在の選択行 = 0; tUpdateSongs(); } @@ -703,8 +703,8 @@ class CActSelect段位リスト : CStage { for (int i = 0; i < stバー情報.Length; i++) { var song = listSongs[i]; - stバー情報[i].eノード種別 = song.eノード種別; - switch (song.eノード種別) { + stバー情報[i].eノード種別 = song.nodeType; + switch (song.nodeType) { case CSongListNode.ENodeType.SCORE: { stバー情報[i].ttkタイトル = new TitleTextureKey[listSongs[i].DanSongs.Count + 1]; stバー情報[i].n曲難易度 = new int[listSongs[i].DanSongs.Count]; @@ -721,14 +721,14 @@ class CActSelect段位リスト : CStage { 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; + stバー情報[i].nDanTick = song.score[6].譜面情報.nDanTick; + stバー情報[i].cDanTickColor = song.score[6].譜面情報.cDanTickColor; //stバー情報[i].clearGrade = song.arスコア[6].譜面情報.nクリア[0]; var TableEntry = OpenTaiko.SaveFileInstances[OpenTaiko.SaveFile].data.tGetSongSelectTableEntry(song.tGetUniqueId()); stバー情報[i].clearGrade = TableEntry.ClearStatuses[(int)Difficulty.Dan]; - string barCenter = Path.GetDirectoryName(song.arスコア[6].ファイル情報.ファイルの絶対パス) + @$"${Path.DirectorySeparatorChar}Bar_Center.png"; + string barCenter = Path.GetDirectoryName(song.score[6].ファイル情報.ファイルの絶対パス) + @$"${Path.DirectorySeparatorChar}Bar_Center.png"; if (BarTexCache.TryGetValue(barCenter, out CTexture texture1)) { stバー情報[i].txBarCenter = texture1; } else { @@ -736,7 +736,7 @@ class CActSelect段位リスト : CStage { BarTexCache.Add(barCenter, stバー情報[i].txBarCenter); } - string danPlate = Path.GetDirectoryName(song.arスコア[6].ファイル情報.ファイルの絶対パス) + @$"${Path.DirectorySeparatorChar}Dan_Plate.png"; + string danPlate = Path.GetDirectoryName(song.score[6].ファイル情報.ファイルの絶対パス) + @$"${Path.DirectorySeparatorChar}Dan_Plate.png"; if (BarTexCache.TryGetValue(danPlate, out CTexture texture2)) { stバー情報[i].txDanPlate = texture2; } else { diff --git a/OpenTaiko/src/Stages/05.DaniSelect/CStage段位選択.cs b/OpenTaiko/src/Stages/05.DaniSelect/CStage段位選択.cs index cb096d9f..49e977fa 100644 --- a/OpenTaiko/src/Stages/05.DaniSelect/CStage段位選択.cs +++ b/OpenTaiko/src/Stages/05.DaniSelect/CStage段位選択.cs @@ -28,9 +28,9 @@ class CStage段位選択 : CStage { this.eフェードアウト完了時の戻り値 = E戻り値.継続; ct待機 = new CCounter(); - ctChara_In = new CCounter(); - - // ctChara_Normal = new CCounter(0, TJAPlayer3.Tx.SongSelect_Chara_Normal.Length - 1, 1000 / 45, TJAPlayer3.Timer); + ctChara_In = new CCounter(); + + // ctChara_Normal = new CCounter(0, TJAPlayer3.Tx.SongSelect_Chara_Normal.Length - 1, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.NORMAL); @@ -60,8 +60,8 @@ class CStage段位選択 : CStage { base.ReleaseManagedResource(); } - public override int Draw() { - // ctChara_Normal.t進行Loop(); + public override int Draw() { + // ctChara_Normal.t進行Loop(); ctChara_In.Tick(); ct待機.Tick(); @@ -70,23 +70,23 @@ class CStage段位選択 : CStage { float zoom = Math.Min(1.14f, Math.Max(1f, (float)Math.Pow(stamp / 3834f, 0.5f))); Background.Update(); - Background.Draw(); - - //TJAPlayer3.Tx.Dani_Background.vc拡大縮小倍率.X = zoom; - //TJAPlayer3.Tx.Dani_Background.vc拡大縮小倍率.Y = zoom; - //TJAPlayer3.Tx.Dani_Background.t2D拡大率考慮中央基準描画(TJAPlayer3.Skin.Resolution[0] / 2, TJAPlayer3.Skin.Resolution[1] / 2); - + Background.Draw(); + + //TJAPlayer3.Tx.Dani_Background.vc拡大縮小倍率.X = zoom; + //TJAPlayer3.Tx.Dani_Background.vc拡大縮小倍率.Y = zoom; + //TJAPlayer3.Tx.Dani_Background.t2D拡大率考慮中央基準描画(TJAPlayer3.Skin.Resolution[0] / 2, TJAPlayer3.Skin.Resolution[1] / 2); + this.段位リスト.Draw(); - if (stamp < 6000) { + if (stamp < 6000) { #region [Dan intro anim] - + if (!bInSongPlayed) { this.段位リスト.ctDaniIn = new CCounter(0, 6000, 1, OpenTaiko.Timer); OpenTaiko.Skin.soundDanSongSelectIn.tPlay(); bInSongPlayed = true; - } - + } + /* int dani_dan_in_width = TJAPlayer3.Tx.Dani_Dan_In.szテクスチャサイズ.Width / 2; int dani_dan_in_height = TJAPlayer3.Tx.Dani_Dan_In.szテクスチャサイズ.Height; @@ -103,17 +103,17 @@ class CStage段位選択 : CStage { TJAPlayer3.Tx.Dani_Dan_In.t2D描画(doorLeft, 0, new Rectangle(0, 0, dani_dan_in_width, dani_dan_in_height)); TJAPlayer3.Tx.Dani_Dan_In.t2D描画(doorRight, 0, new Rectangle(dani_dan_in_width, 0, dani_dan_in_width, dani_dan_in_height)); - */ - if (stamp <= 3834) { + */ + if (stamp <= 3834) { #region [Dan intro letters] - - //int quarter = TJAPlayer3.Tx.Dani_Dan_Text.szテクスチャサイズ.Width / 4; - + + //int quarter = TJAPlayer3.Tx.Dani_Dan_Text.szテクスチャサイズ.Width / 4; + /* int[] xAxis = { 300, 980 }; int[] yAxis = { 198, 522 }; - */ - + */ + /* int[] appearStamps = { 1645, 2188, 2646, 3152 }; @@ -135,25 +135,25 @@ class CStage段位選択 : CStage { TJAPlayer3.Tx.Dani_Dan_Text.t2D拡大率考慮中央基準描画(x, y, new Rectangle(quarter * i, 0, quarter, TJAPlayer3.Tx.Dani_Dan_Text.szテクスチャサイズ.Height)); } - */ - + */ + #endregion - } - + } + #endregion } else if (stamp == 6000) { - if (!ctChara_In.IsStarted) { - //TJAPlayer3.Skin.soundDanSelectStart.t再生する(); + if (!ctChara_In.IsStarted) { + //TJAPlayer3.Skin.soundDanSelectStart.t再生する(); OpenTaiko.Skin.voiceMenuDanSelectStart[OpenTaiko.SaveFile]?.tPlay(); OpenTaiko.Skin.soundDanSelectBGM.tPlay(); ctChara_In.Start(0, 180, 1.25f, OpenTaiko.Timer); } OpenTaiko.NamePlate.tNamePlateDraw(OpenTaiko.Skin.SongSelect_NamePlate_X[0], OpenTaiko.Skin.SongSelect_NamePlate_Y[0], 0); - ModIcons.tDisplayModsMenu(OpenTaiko.Skin.SongSelect_ModIcons_X[0], OpenTaiko.Skin.SongSelect_ModIcons_Y[0], 0); ; - + ModIcons.tDisplayModsMenu(OpenTaiko.Skin.SongSelect_ModIcons_X[0], OpenTaiko.Skin.SongSelect_ModIcons_Y[0], 0); ; + #region [ キー関連 ] - + if (!this.段位リスト.bスクロール中 && !b選択した && !bDifficultyIn) { int returnTitle() { OpenTaiko.Skin.soundDanSelectBGM.tStop(); @@ -176,11 +176,11 @@ class CStage段位選択 : CStage { if (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Return) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.Decide)) { - switch (段位リスト.currentBar.eノード種別) { + switch (段位リスト.currentBar.nodeType) { case CSongListNode.ENodeType.SCORE: - case CSongListNode.ENodeType.RANDOM: { - //this.t段位を選択する(); - //TJAPlayer3.Skin.soundDanSongSelectCheck.t再生する(); + case CSongListNode.ENodeType.RANDOM: { + //this.t段位を選択する(); + //TJAPlayer3.Skin.soundDanSongSelectCheck.t再生する(); OpenTaiko.Skin.voiceMenuDanSelectPrompt[OpenTaiko.SaveFile]?.tPlay(); this.bDifficultyIn = true; this.段位挑戦選択画面.ctBarIn.Start(0, 255, 1, OpenTaiko.Timer); @@ -192,7 +192,7 @@ class CStage段位選択 : CStage { } break; case CSongListNode.ENodeType.BACKBOX: { - if (OpenTaiko.Songs管理.list曲ルート.Contains(段位リスト.currentBar.rParentNode) && 段位リスト.currentBar.rParentNode.strジャンル == "段位道場") { + if (OpenTaiko.Songs管理.list曲ルート.Contains(段位リスト.currentBar.rParentNode) && 段位リスト.currentBar.rParentNode.songGenre == "段位道場") { return returnTitle(); } else { OpenTaiko.Skin.soundDecideSFX.tPlay(); @@ -208,23 +208,23 @@ class CStage段位選択 : CStage { this.段位リスト.n現在の選択行 = 0; return returnTitle(); } - } - + } + #endregion - + #region [ キャラ関連 ] - + if (ctChara_In.CurrentValue != 90) { float CharaX = 0f, CharaY = 0f; CharaX = (float)Math.Sin(ctChara_In.CurrentValue / 2 * (Math.PI / 180)) * 200f; - CharaY = ((float)Math.Sin((90 + (ctChara_In.CurrentValue / 2)) * (Math.PI / 180)) * 150f); - - // TJAPlayer3.Tx.SongSelect_Chara_Normal[ctChara_Normal.n現在の値].Opacity = ctChara_In.n現在の値 * 2; - // TJAPlayer3.Tx.SongSelect_Chara_Normal[ctChara_Normal.n現在の値].t2D描画(-200 + CharaX, 336 - CharaY); - - //CMenuCharacter.tMenuDisplayCharacter(0, (int)(-200 + CharaX), (int)(336 - CharaY), CMenuCharacter.ECharacterAnimation.NORMAL); - + CharaY = ((float)Math.Sin((90 + (ctChara_In.CurrentValue / 2)) * (Math.PI / 180)) * 150f); + + // TJAPlayer3.Tx.SongSelect_Chara_Normal[ctChara_Normal.n現在の値].Opacity = ctChara_In.n現在の値 * 2; + // TJAPlayer3.Tx.SongSelect_Chara_Normal[ctChara_Normal.n現在の値].t2D描画(-200 + CharaX, 336 - CharaY); + + //CMenuCharacter.tMenuDisplayCharacter(0, (int)(-200 + CharaX), (int)(336 - CharaY), CMenuCharacter.ECharacterAnimation.NORMAL); + int chara_x = OpenTaiko.Skin.SongSelect_NamePlate_X[0] + OpenTaiko.Tx.NamePlateBase.szTextureSize.Width / 2; int chara_y = OpenTaiko.Skin.SongSelect_NamePlate_Y[0]; @@ -232,28 +232,28 @@ class CStage段位選択 : CStage { 0, chara_x, chara_y, - CMenuCharacter.ECharacterAnimation.NORMAL); - + CMenuCharacter.ECharacterAnimation.NORMAL); + #region [PuchiChara] - + int puchi_x = chara_x + OpenTaiko.Skin.Adjustments_MenuPuchichara_X[0]; - int puchi_y = chara_y + OpenTaiko.Skin.Adjustments_MenuPuchichara_Y[0]; - - //this.PuchiChara.On進行描画(0 + 100, 336 + 230, false); - this.PuchiChara.On進行描画(puchi_x, puchi_y, false); - + int puchi_y = chara_y + OpenTaiko.Skin.Adjustments_MenuPuchichara_Y[0]; + + //this.PuchiChara.On進行描画(0 + 100, 336 + 230, false); + this.PuchiChara.On進行描画(puchi_x, puchi_y, false); + #endregion - } - + } + #endregion - + this.段位挑戦選択画面.Draw(); } if (段位挑戦選択画面.bOption) actPlayOption.On進行描画(0); if (ct待機.CurrentValue >= 3000) { - if (段位リスト.currentBar.eノード種別 == CSongListNode.ENodeType.RANDOM) { + if (段位リスト.currentBar.nodeType == CSongListNode.ENodeType.RANDOM) { if (!tSelectSongRandomly()) { bDifficultyIn = false; b選択した = false; @@ -293,15 +293,15 @@ class CStage段位選択 : CStage { public void t段位を選択する() { this.b選択した = true; OpenTaiko.stageSongSelect.rChoosenSong = 段位リスト.listSongs[段位リスト.n現在の選択行]; - OpenTaiko.stageSongSelect.r確定されたスコア = 段位リスト.listSongs[段位リスト.n現在の選択行].arスコア[(int)Difficulty.Dan]; + OpenTaiko.stageSongSelect.r確定されたスコア = 段位リスト.listSongs[段位リスト.n現在の選択行].score[(int)Difficulty.Dan]; OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] = (int)Difficulty.Dan; - OpenTaiko.stageSongSelect.str確定された曲のジャンル = 段位リスト.listSongs[段位リスト.n現在の選択行].strジャンル; + OpenTaiko.stageSongSelect.str確定された曲のジャンル = 段位リスト.listSongs[段位リスト.n現在の選択行].songGenre; if ((OpenTaiko.stageSongSelect.rChoosenSong != null) && (OpenTaiko.stageSongSelect.r確定されたスコア != null)) { this.eフェードアウト完了時の戻り値 = E戻り値.選曲した; - this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 + this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 base.ePhaseID = CStage.EPhase.SongSelect_FadeOutToNowLoading; - } - // TJAPlayer3.Skin.bgm選曲画面.t停止する(); + } + // TJAPlayer3.Skin.bgm選曲画面.t停止する(); CSongSelectSongManager.stopSong(); } @@ -312,9 +312,9 @@ class CStage段位選択 : CStage { List songs = new List(); OpenTaiko.stageSongSelect.t指定された曲の子リストの曲を列挙する_孫リスト含む(song.rParentNode, ref songs, ref mandatoryDiffs, true); - song.listランダム用ノードリスト = songs; + song.randomList = songs; - int selectableSongCount = song.listランダム用ノードリスト.Count; + int selectableSongCount = song.randomList.Count; if (selectableSongCount == 0) { return false; @@ -326,19 +326,19 @@ class CStage段位選択 : CStage { StringBuilder builder = new StringBuilder(0x400); builder.Append(string.Format("Total number of songs to randomly choose from {0}. Randomly selected index {0}.", selectableSongCount, randomSongIndex)); Trace.TraceInformation(builder.ToString()); - } - - // Third assignment - OpenTaiko.stageSongSelect.rChoosenSong = song.listランダム用ノードリスト[randomSongIndex]; + } + + // Third assignment + OpenTaiko.stageSongSelect.rChoosenSong = song.randomList[randomSongIndex]; OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] = (int)Difficulty.Dan; - OpenTaiko.stageSongSelect.r確定されたスコア = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[OpenTaiko.stageSongSelect.actSongList.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(OpenTaiko.stageSongSelect.rChoosenSong)]; - OpenTaiko.stageSongSelect.str確定された曲のジャンル = OpenTaiko.stageSongSelect.rChoosenSong.strジャンル; - - //TJAPlayer3.Skin.sound曲決定音.t再生する(); - + OpenTaiko.stageSongSelect.r確定されたスコア = OpenTaiko.stageSongSelect.rChoosenSong.score[OpenTaiko.stageSongSelect.actSongList.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(OpenTaiko.stageSongSelect.rChoosenSong)]; + OpenTaiko.stageSongSelect.str確定された曲のジャンル = OpenTaiko.stageSongSelect.rChoosenSong.songGenre; + + //TJAPlayer3.Skin.sound曲決定音.t再生する(); + this.eフェードアウト完了時の戻り値 = E戻り値.選曲した; - this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 + this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 base.ePhaseID = CStage.EPhase.SongSelect_FadeOutToNowLoading; CSongSelectSongManager.stopSong(); @@ -355,9 +355,9 @@ class CStage段位選択 : CStage { public bool bInSongPlayed; - private CCounter ctChara_In; - // private CCounter ctChara_Normal; - + private CCounter ctChara_In; + // private CCounter ctChara_Normal; + private PuchiChara PuchiChara; public E戻り値 eフェードアウト完了時の戻り値; diff --git a/OpenTaiko/src/Stages/05.SongSelect/CActSelectPreimageパネル.cs b/OpenTaiko/src/Stages/05.SongSelect/CActSelectPreimageパネル.cs index b6195ca7..29647934 100644 --- a/OpenTaiko/src/Stages/05.SongSelect/CActSelectPreimageパネル.cs +++ b/OpenTaiko/src/Stages/05.SongSelect/CActSelectPreimageパネル.cs @@ -61,7 +61,7 @@ internal class CActSelectPreimageパネル : CActivity { return 0; } - public CTexture? tGenerateAndGetPreimage(Cスコア? cScoreInst) { + public CTexture? tGenerateAndGetPreimage(CScore? cScoreInst) { this.tUpdatePreimage(cScoreInst); return tGetPreimageTextureResized(); } @@ -105,7 +105,7 @@ internal class CActSelectPreimageパネル : CActivity { } } - private void tUpdatePreimage(Cスコア? cScoreInst) { + private void tUpdatePreimage(CScore? cScoreInst) { if (cScoreInst != null && this.tBuildPreimageAssets(cScoreInst)) { return; } @@ -114,7 +114,7 @@ internal class CActSelectPreimageパネル : CActivity { this.rCurrentlyDisplayedPreimage = this.txDefaultPreimage; this.strCurrentFilename = ""; } - private bool tBuildPreimageAssets(Cスコア cScoreInst) { + private bool tBuildPreimageAssets(CScore cScoreInst) { if ((cScoreInst == null) || string.IsNullOrEmpty(cScoreInst.譜面情報.Preimage)) return false; string str = ((!Path.IsPathRooted(cScoreInst.譜面情報.Preimage)) ? cScoreInst.ファイル情報.フォルダの絶対パス : "") + cScoreInst.譜面情報.Preimage; diff --git a/OpenTaiko/src/Stages/05.SongSelect/CActSelectPresound.cs b/OpenTaiko/src/Stages/05.SongSelect/CActSelectPresound.cs index 32df200a..70f73dd5 100644 --- a/OpenTaiko/src/Stages/05.SongSelect/CActSelectPresound.cs +++ b/OpenTaiko/src/Stages/05.SongSelect/CActSelectPresound.cs @@ -17,7 +17,7 @@ internal class CActSelectPresound : CActivity { } } public void t選択曲が変更された() { - Cスコア cスコア = OpenTaiko.stageSongSelect.r現在選択中のスコア; + CScore cスコア = OpenTaiko.stageSongSelect.r現在選択中のスコア; if ((cスコア != null) && ((!(cスコア.ファイル情報.フォルダの絶対パス + cスコア.譜面情報.strBGMファイル名).Equals(this.str現在のファイル名) || (this.sound == null)) || !this.sound.IsPlaying)) { this.tStopSound(); @@ -83,7 +83,7 @@ internal class CActSelectPresound : CActivity { this.t進行処理_プレビューサウンド(); if (this.sound != null) { - Cスコア cスコア = OpenTaiko.stageSongSelect.r現在選択中のスコア; + CScore cスコア = OpenTaiko.stageSongSelect.r現在選択中のスコア; if (long再生位置 == -1) { this.long再生開始時のシステム時刻 = SoundManager.PlayTimer.SystemTimeMs; this.long再生位置 = cスコア.譜面情報.nデモBGMオフセット; @@ -133,7 +133,7 @@ internal class CActSelectPresound : CActivity { this.ctBGMフェードイン用.CurrentValue = OpenTaiko.Skin.bgm選曲画面.nAutomationLevel_現在のサウンド; } private void tプレビューサウンドの作成() { - Cスコア cスコア = OpenTaiko.stageSongSelect.r現在選択中のスコア; + CScore cスコア = OpenTaiko.stageSongSelect.r現在選択中のスコア; var HiddenIndex = OpenTaiko.Databases.DBSongUnlockables.tGetSongHiddenIndex(OpenTaiko.stageSongSelect.rNowSelectedSong); if ((cスコア != null) && !string.IsNullOrEmpty(cスコア.譜面情報.strBGMファイル名) diff --git a/OpenTaiko/src/Stages/05.SongSelect/CActSelectSongInfo.cs b/OpenTaiko/src/Stages/05.SongSelect/CActSelectSongInfo.cs index ed6657c7..33cec796 100644 --- a/OpenTaiko/src/Stages/05.SongSelect/CActSelectSongInfo.cs +++ b/OpenTaiko/src/Stages/05.SongSelect/CActSelectSongInfo.cs @@ -39,11 +39,11 @@ class CActSelectSongInfo : CStage { } public override int Draw() { - if (OpenTaiko.stageSongSelect.rNowSelectedSong != null && OpenTaiko.stageSongSelect.rNowSelectedSong.eノード種別 == CSongListNode.ENodeType.SCORE) { + if (OpenTaiko.stageSongSelect.rNowSelectedSong != null && OpenTaiko.stageSongSelect.rNowSelectedSong.nodeType == CSongListNode.ENodeType.SCORE) { int[] bpms = new int[3] { - (int)OpenTaiko.stageSongSelect.rNowSelectedSong.arスコア[OpenTaiko.stageSongSelect.actSongList.tFetchDifficulty(OpenTaiko.stageSongSelect.rNowSelectedSong)].譜面情報.BaseBpm, - (int)OpenTaiko.stageSongSelect.rNowSelectedSong.arスコア[OpenTaiko.stageSongSelect.actSongList.tFetchDifficulty(OpenTaiko.stageSongSelect.rNowSelectedSong)].譜面情報.MinBpm, - (int)OpenTaiko.stageSongSelect.rNowSelectedSong.arスコア[OpenTaiko.stageSongSelect.actSongList.tFetchDifficulty(OpenTaiko.stageSongSelect.rNowSelectedSong)].譜面情報.MaxBpm + (int)OpenTaiko.stageSongSelect.rNowSelectedSong.score[OpenTaiko.stageSongSelect.actSongList.tFetchDifficulty(OpenTaiko.stageSongSelect.rNowSelectedSong)].譜面情報.BaseBpm, + (int)OpenTaiko.stageSongSelect.rNowSelectedSong.score[OpenTaiko.stageSongSelect.actSongList.tFetchDifficulty(OpenTaiko.stageSongSelect.rNowSelectedSong)].譜面情報.MinBpm, + (int)OpenTaiko.stageSongSelect.rNowSelectedSong.score[OpenTaiko.stageSongSelect.actSongList.tFetchDifficulty(OpenTaiko.stageSongSelect.rNowSelectedSong)].譜面情報.MaxBpm }; for (int i = 0; i < 3; i++) { tBPMNumberDraw(OpenTaiko.Skin.SongSelect_Bpm_X[i], OpenTaiko.Skin.SongSelect_Bpm_Y[i], bpms[i]); diff --git a/OpenTaiko/src/Stages/05.SongSelect/CActSelectTowerInfo.cs b/OpenTaiko/src/Stages/05.SongSelect/CActSelectTowerInfo.cs index e55fc943..fa670548 100644 --- a/OpenTaiko/src/Stages/05.SongSelect/CActSelectTowerInfo.cs +++ b/OpenTaiko/src/Stages/05.SongSelect/CActSelectTowerInfo.cs @@ -41,8 +41,8 @@ class CActSelectTowerInfo : CStage { } public override int Draw() { - if (OpenTaiko.stageSongSelect.rNowSelectedSong.arスコア[5] != null) - tFloorNumberDraw(OpenTaiko.Skin.SongSelect_FloorNum_X, OpenTaiko.Skin.SongSelect_FloorNum_Y, OpenTaiko.stageSongSelect.rNowSelectedSong.arスコア[5].譜面情報.nTotalFloor); + if (OpenTaiko.stageSongSelect.rNowSelectedSong.score[5] != null) + tFloorNumberDraw(OpenTaiko.Skin.SongSelect_FloorNum_X, OpenTaiko.Skin.SongSelect_FloorNum_Y, OpenTaiko.stageSongSelect.rNowSelectedSong.score[5].譜面情報.nTotalFloor); return 0; } diff --git a/OpenTaiko/src/Stages/05.SongSelect/CActSelect曲リスト.cs b/OpenTaiko/src/Stages/05.SongSelect/CActSelect曲リスト.cs index e20405d2..82e955f2 100644 --- a/OpenTaiko/src/Stages/05.SongSelect/CActSelect曲リスト.cs +++ b/OpenTaiko/src/Stages/05.SongSelect/CActSelect曲リスト.cs @@ -35,10 +35,10 @@ internal class CActSelect曲リスト : CActivity { return this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(this.rCurrentlySelectedSong); } } - public Cスコア r現在選択中のスコア { + public CScore r現在選択中のスコア { get { if (this.rCurrentlySelectedSong != null) { - return this.rCurrentlySelectedSong.arスコア[this.n現在選択中の曲の現在の難易度レベル]; + return this.rCurrentlySelectedSong.score[this.n現在選択中の曲の現在の難易度レベル]; } return null; } @@ -100,10 +100,10 @@ internal class CActSelect曲リスト : CActivity { if (song == null) return this.n現在のアンカ難易度レベル; // 曲がまったくないよ - if (song.arスコア[this.n現在のアンカ難易度レベル] != null) + if (song.score[this.n現在のアンカ難易度レベル] != null) return this.n現在のアンカ難易度レベル; // 難易度ぴったりの曲があったよ - if ((song.eノード種別 == CSongListNode.ENodeType.BOX) || (song.eノード種別 == CSongListNode.ENodeType.BACKBOX)) + if ((song.nodeType == CSongListNode.ENodeType.BOX) || (song.nodeType == CSongListNode.ENodeType.BACKBOX)) return 0; // BOX と BACKBOX は関係無いよ @@ -112,7 +112,7 @@ internal class CActSelect曲リスト : CActivity { int n最も近いレベル = this.n現在のアンカ難易度レベル; for (int i = 0; i < (int)Difficulty.Total; i++) { - if (song.arスコア[n最も近いレベル] != null) + if (song.score[n最も近いレベル] != null) break; // 曲があった。 n最も近いレベル = (n最も近いレベル + 1) % (int)Difficulty.Total; // 曲がなかったので次の難易度レベルへGo。(5以上になったら0に戻る。) @@ -128,7 +128,7 @@ internal class CActSelect曲リスト : CActivity { n最も近いレベル = this.n現在のアンカ難易度レベル; for (int i = 0; i < (int)Difficulty.Total; i++) { - if (song.arスコア[n最も近いレベル] != null) + if (song.score[n最も近いレベル] != null) break; // 曲があった。 n最も近いレベル = ((n最も近いレベル - 1) + (int)Difficulty.Total) % (int)Difficulty.Total; // 曲がなかったので次の難易度レベルへGo。(0未満になったら4に戻る。) @@ -151,8 +151,8 @@ internal class CActSelect曲リスト : CActivity { { return OpenTaiko.Songs管理.list曲ルート; // rootのリストを返す } else { - if ((song.rParentNode.list子リスト != null) && (song.rParentNode.list子リスト.Count > 0)) { - return song.rParentNode.list子リスト; + if ((song.rParentNode.childrenList != null) && (song.rParentNode.childrenList.Count > 0)) { + return song.rParentNode.childrenList; } else { return null; } @@ -177,11 +177,11 @@ internal class CActSelect曲リスト : CActivity { // this.r現在選択中の曲 = CDTXMania void addBackBox(List list, string parentName = "/") { foreach (CSongListNode node in list) { - if (node.eノード種別 != CSongListNode.ENodeType.BOX) continue; + if (node.nodeType != CSongListNode.ENodeType.BOX) continue; string newPath = parentName + node.ldTitle.GetString("") + "/"; - CSongDict.tReinsertBackButtons(node, node.list子リスト, newPath, OpenTaiko.Songs管理.listStrBoxDefSkinSubfolderFullName); + CSongDict.tReinsertBackButtons(node, node.childrenList, newPath, OpenTaiko.Songs管理.listStrBoxDefSkinSubfolderFullName); - addBackBox(node.list子リスト, newPath); + addBackBox(node.childrenList, newPath); } } addBackBox(OpenTaiko.Songs管理.list曲ルート); @@ -228,10 +228,10 @@ internal class CActSelect曲リスト : CActivity { // INFO: This null check is added due to `list子リスト` might be null during rapid sorting // Despite what editor tell you here it is possible to be null if (rCurrentlySelectedSong != null && - rCurrentlySelectedSong.list子リスト != null && - rCurrentlySelectedSong.list子リスト.Count != 1) { + rCurrentlySelectedSong.childrenList != null && + rCurrentlySelectedSong.childrenList.Count != 1) { if (OpenTaiko.ConfigIni.TJAP3FolderMode) { - this.rCurrentlySelectedSong = this.rCurrentlySelectedSong.list子リスト[0]; + this.rCurrentlySelectedSong = this.rCurrentlySelectedSong.childrenList[0]; nSelectSongIndex = 0; tChangeSong(this.rCurrentlySelectedSong.rParentNode.Openindex); } else { @@ -241,7 +241,7 @@ internal class CActSelect曲リスト : CActivity { // Previous index int n回数 = this.rCurrentlySelectedSong.Openindex; - if (this.rCurrentlySelectedSong.Openindex >= this.rCurrentlySelectedSong.list子リスト.Count()) + if (this.rCurrentlySelectedSong.Openindex >= this.rCurrentlySelectedSong.childrenList.Count()) n回数 = 0; tChangeSong(n回数); @@ -288,7 +288,7 @@ internal class CActSelect曲リスト : CActivity { } else { // Reindex the parent node List currentSongList = flattenList(OpenTaiko.Songs管理.list曲ルート, true); - this.rCurrentlySelectedSong.rParentNode.Openindex = currentSongList.IndexOf(this.rCurrentlySelectedSong) - currentSongList.IndexOf(this.rCurrentlySelectedSong.rParentNode.list子リスト[0]); + this.rCurrentlySelectedSong.rParentNode.Openindex = currentSongList.IndexOf(this.rCurrentlySelectedSong) - currentSongList.IndexOf(this.rCurrentlySelectedSong.rParentNode.childrenList[0]); this.rCurrentlySelectedSong.rParentNode.bIsOpenFolder = false; tChangeSong(-this.rCurrentlySelectedSong.rParentNode.Openindex); @@ -311,9 +311,9 @@ internal class CActSelect曲リスト : CActivity { var e = list[i]; if (!useOpenFlag || !e.bIsOpenFolder) ret.Add(e); - if (e.eノード種別 == CSongListNode.ENodeType.BOX && + if (e.nodeType == CSongListNode.ENodeType.BOX && (!useOpenFlag || e.bIsOpenFolder)) { - ret.AddRange(flattenList(e.list子リスト, useOpenFlag)); + ret.AddRange(flattenList(e.childrenList, useOpenFlag)); } } @@ -364,14 +364,14 @@ internal class CActSelect曲リスト : CActivity { this.stバー情報[index].BoxChara = song.BoxChara; this.stバー情報[index].BoxCharaChanged = song.isChangedBoxChara; - this.stバー情報[index].strジャンル = song.strジャンル; + this.stバー情報[index].strジャンル = song.songGenre; this.stバー情報[index].strサブタイトル = song.ldSubtitle.GetString(""); this.stバー情報[index].ar難易度 = song.nLevel; this.stバー情報[index].nLevelIcon = song.nLevelIcon; for (int f = 0; f < (int)Difficulty.Total; f++) { - if (song.arスコア[f] != null) - this.stバー情報[index].b分岐 = song.arスコア[f].譜面情報.b譜面分岐; + if (song.score[f] != null) + this.stバー情報[index].b分岐 = song.score[f].譜面情報.b譜面分岐; } #region [Reroll cases] @@ -413,7 +413,7 @@ internal class CActSelect曲リスト : CActivity { // 新しく最下部に表示されるパネル用のスキル値を取得。 for (int i = 0; i < 3; i++) - this.stバー情報[index].nスキル値[i] = (int)song.arスコア[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[i]; + this.stバー情報[index].nスキル値[i] = (int)song.score[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[i]; // 1行(100カウント)移動完了。 @@ -426,7 +426,7 @@ internal class CActSelect曲リスト : CActivity { OpenTaiko.stageSongSelect.tNotifySelectedSongChange(); // スクロール完了=選択曲変更! ctBarOpen.Start(0, 260, 2, OpenTaiko.Timer); - OpenTaiko.stageSongSelect.NowGenre = this.rCurrentlySelectedSong.strジャンル; + OpenTaiko.stageSongSelect.NowGenre = this.rCurrentlySelectedSong.songGenre; OpenTaiko.stageSongSelect.NowBg = this.rCurrentlySelectedSong.BgType; @@ -488,12 +488,12 @@ internal class CActSelect曲リスト : CActivity { this.stバー情報[index].BoxCharaChanged = song.isChangedBoxChara; this.stバー情報[index].strサブタイトル = song.ldSubtitle.GetString(""); - this.stバー情報[index].strジャンル = song.strジャンル; + this.stバー情報[index].strジャンル = song.songGenre; this.stバー情報[index].ar難易度 = song.nLevel; this.stバー情報[index].nLevelIcon = song.nLevelIcon; for (int f = 0; f < (int)Difficulty.Total; f++) { - if (song.arスコア[f] != null) - this.stバー情報[index].b分岐 = song.arスコア[f].譜面情報.b譜面分岐; + if (song.score[f] != null) + this.stバー情報[index].b分岐 = song.score[f].譜面情報.b譜面分岐; } /* @@ -549,7 +549,7 @@ internal class CActSelect曲リスト : CActivity { // 新しく最上部に表示されるパネル用のスキル値を取得。 for (int i = 0; i < 3; i++) - this.stバー情報[index].nスキル値[i] = (int)song.arスコア[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[i]; + this.stバー情報[index].nスキル値[i] = (int)song.score[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[i]; this.t選択曲が変更された(false); // スクロールバー用に今何番目を選択しているかを更新 @@ -559,7 +559,7 @@ internal class CActSelect曲リスト : CActivity { OpenTaiko.stageSongSelect.tNotifySelectedSongChange(); // スクロール完了=選択曲変更! ctBarOpen.Start(0, 260, 2, OpenTaiko.Timer); - OpenTaiko.stageSongSelect.NowGenre = this.rCurrentlySelectedSong.strジャンル; + OpenTaiko.stageSongSelect.NowGenre = this.rCurrentlySelectedSong.songGenre; OpenTaiko.stageSongSelect.NowBg = this.rCurrentlySelectedSong.BgType; OpenTaiko.stageSongSelect.NowBgColor = this.rCurrentlySelectedSong.BgColor; OpenTaiko.stageSongSelect.NowUseGenre = !this.rCurrentlySelectedSong.isChangedBgType; @@ -573,7 +573,7 @@ internal class CActSelect曲リスト : CActivity { this.b選択曲が変更された = true; } public void tUpdateCurSong() { - if ((this.rGetSideSong(0).eノード種別 == CSongListNode.ENodeType.SCORE) || this.rGetSideSong(0).eノード種別 == CSongListNode.ENodeType.BACKBOX) { + if ((this.rGetSideSong(0).nodeType == CSongListNode.ENodeType.SCORE) || this.rGetSideSong(0).nodeType == CSongListNode.ENodeType.BACKBOX) { OpenTaiko.stageSongSelect.bBGMIn再生した = false; CSongSelectSongManager.disable(); @@ -584,7 +584,7 @@ internal class CActSelect曲リスト : CActivity { OpenTaiko.stageSongSelect.ctBackgroundFade.Start(0, 600, 1, OpenTaiko.Timer); if (this.ctBarOpen.CurrentValue >= 200 || OpenTaiko.stageSongSelect.ctBackgroundFade.CurrentValue >= 600 - 255) { - OpenTaiko.stageSongSelect.OldGenre = this.rCurrentlySelectedSong.strジャンル; + OpenTaiko.stageSongSelect.OldGenre = this.rCurrentlySelectedSong.songGenre; OpenTaiko.stageSongSelect.OldUseGenre = !this.rCurrentlySelectedSong.isChangedBgType; OpenTaiko.stageSongSelect.OldBg = this.rCurrentlySelectedSong.BgType; OpenTaiko.stageSongSelect.OldBgColor = this.rCurrentlySelectedSong.BgColor; @@ -599,7 +599,7 @@ internal class CActSelect曲リスト : CActivity { this.b選択曲が変更された = true; } public void t難易度レベルをひとつ進める() { - if ((this.rCurrentlySelectedSong == null) || (this.rCurrentlySelectedSong.nスコア数 <= 1)) + if ((this.rCurrentlySelectedSong == null) || (this.rCurrentlySelectedSong.difficultiesCount <= 1)) return; // 曲にスコアが0~1個しかないなら進める意味なし。 @@ -609,7 +609,7 @@ internal class CActSelect曲リスト : CActivity { for (int i = 0; i < (int)Difficulty.Total; i++) { this.n現在のアンカ難易度レベル = (this.n現在のアンカ難易度レベル + 1) % (int)Difficulty.Total; // 5以上になったら0に戻る。 - if (this.rCurrentlySelectedSong.arスコア[this.n現在のアンカ難易度レベル] != null) // 曲が存在してるならここで終了。存在してないなら次のレベルへGo。 + if (this.rCurrentlySelectedSong.score[this.n現在のアンカ難易度レベル] != null) // 曲が存在してるならここで終了。存在してないなら次のレベルへGo。 break; } @@ -621,7 +621,7 @@ internal class CActSelect曲リスト : CActivity { var song = this.rGetSideSong(i); int index = (i + OpenTaiko.Skin.SongSelect_Bar_Count) % OpenTaiko.Skin.SongSelect_Bar_Count; for (int m = 0; m < 3; m++) { - this.stバー情報[index].nスキル値[m] = (int)song.arスコア[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[m]; + this.stバー情報[index].nスキル値[m] = (int)song.score[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[m]; } } @@ -634,7 +634,7 @@ internal class CActSelect曲リスト : CActivity { /// 不便だったから作った。 /// public void t難易度レベルをひとつ戻す() { - if ((this.rCurrentlySelectedSong == null) || (this.rCurrentlySelectedSong.nスコア数 <= 1)) + if ((this.rCurrentlySelectedSong == null) || (this.rCurrentlySelectedSong.difficultiesCount <= 1)) return; // 曲にスコアが0~1個しかないなら進める意味なし。 @@ -652,7 +652,7 @@ internal class CActSelect曲リスト : CActivity { //2016.08.13 kairera0467 かんたん譜面が無い譜面(ふつう、むずかしいのみ)で、難易度を最上位に戻せない不具合の修正。 bool bLabel0NotFound = true; for (int i = this.n現在のアンカ難易度レベル; i >= 0; i--) { - if (this.rCurrentlySelectedSong.arスコア[i] != null) { + if (this.rCurrentlySelectedSong.score[i] != null) { this.n現在のアンカ難易度レベル = i; bLabel0NotFound = false; break; @@ -660,7 +660,7 @@ internal class CActSelect曲リスト : CActivity { } if (bLabel0NotFound) { for (int i = 4; i >= 0; i--) { - if (this.rCurrentlySelectedSong.arスコア[i] != null) { + if (this.rCurrentlySelectedSong.score[i] != null) { this.n現在のアンカ難易度レベル = i; break; } @@ -674,7 +674,7 @@ internal class CActSelect曲リスト : CActivity { CSongListNode song = this.rGetSideSong(i); int index = (i + OpenTaiko.Skin.SongSelect_Bar_Count) % OpenTaiko.Skin.SongSelect_Bar_Count; for (int m = 0; m < 3; m++) { - this.stバー情報[index].nスキル値[m] = (int)song.arスコア[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[m]; + this.stバー情報[index].nスキル値[m] = (int)song.score[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[m]; } } @@ -727,9 +727,9 @@ internal class CActSelect曲リスト : CActivity { foreach (CSongListNode n in ln) { if (n.strBreadcrumbs == bc) { return n; - } else if (n.list子リスト != null && n.list子リスト.Count > 0) // 子リストが存在するなら、再帰で探す + } else if (n.childrenList != null && n.childrenList.Count > 0) // 子リストが存在するなら、再帰で探す { - CSongListNode r = searchCurrentBreadcrumbsPosition(n.list子リスト, bc); + CSongListNode r = searchCurrentBreadcrumbsPosition(n.childrenList, bc); if (r != null) return r; } } @@ -1412,7 +1412,7 @@ internal class CActSelect曲リスト : CActivity { - if (rCurrentlySelectedSong.eノード種別 == CSongListNode.ENodeType.SCORE) { + if (rCurrentlySelectedSong.nodeType == CSongListNode.ENodeType.SCORE) { #region [ Score ] var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(rCurrentlySelectedSong); @@ -1433,7 +1433,7 @@ internal class CActSelect曲リスト : CActivity { // Mark - if (this.rCurrentlySelectedSong.arスコア[(int)Difficulty.Dan] != null) { + if (this.rCurrentlySelectedSong.score[(int)Difficulty.Dan] != null) { //int[] clear = this.r現在選択中の曲.arスコア[(int)Difficulty.Dan].譜面情報.nクリア; for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) { @@ -1453,7 +1453,7 @@ internal class CActSelect曲リスト : CActivity { displayDanStatus((int)(x - centerMoveX / 1.1f), (int)(y - centerMove / 1.1f), currentRank, 0.2f); } - } else if (this.rCurrentlySelectedSong.arスコア[(int)Difficulty.Tower] != null) { + } else if (this.rCurrentlySelectedSong.score[(int)Difficulty.Tower] != null) { //int[] clear = this.r現在選択中の曲.arスコア[(int)Difficulty.Tower].譜面情報.nクリア; for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) { @@ -1471,7 +1471,7 @@ internal class CActSelect曲リスト : CActivity { displayTowerStatus((int)(x - centerMoveX / 1.1f), (int)(y - centerMove / 1.1f), currentRank, 0.3f); } - } else if (this.rCurrentlySelectedSong.arスコア[3] != null || this.rCurrentlySelectedSong.arスコア[4] != null) { + } else if (this.rCurrentlySelectedSong.score[3] != null || this.rCurrentlySelectedSong.score[4] != null) { //var sr = this.rCurrentlySelectedSong.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(this.rCurrentlySelectedSong)]; for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) { @@ -1526,7 +1526,7 @@ internal class CActSelect曲リスト : CActivity { #endregion } - if (rCurrentlySelectedSong.eノード種別 == CSongListNode.ENodeType.BOX) { + if (rCurrentlySelectedSong.nodeType == CSongListNode.ENodeType.BOX) { #region [ Box ] //int boxType = nStrジャンルtoNum(r現在選択中の曲.strジャンル); @@ -1541,14 +1541,14 @@ internal class CActSelect曲リスト : CActivity { #endregion } - if (rCurrentlySelectedSong.eノード種別 == CSongListNode.ENodeType.BACKBOX) { + if (rCurrentlySelectedSong.nodeType == CSongListNode.ENodeType.BACKBOX) { #region [ BackBox ] DrawBarCenter(OpenTaiko.Tx.SongSelect_Bar_Genre_Back, OpenTaiko.Skin.SongSelect_Bar_X[barCenterNum], OpenTaiko.Skin.SongSelect_Bar_Y[barCenterNum], centerMoveX, centerMove, false, false, false); #endregion } - if (rCurrentlySelectedSong.eノード種別 == CSongListNode.ENodeType.RANDOM) { + if (rCurrentlySelectedSong.nodeType == CSongListNode.ENodeType.RANDOM) { #region [Random box] DrawBarCenter(OpenTaiko.Tx.SongSelect_Bar_Genre_Random, OpenTaiko.Skin.SongSelect_Bar_X[barCenterNum], OpenTaiko.Skin.SongSelect_Bar_Y[barCenterNum], centerMoveX, centerMove, false, false, false); @@ -1558,7 +1558,7 @@ internal class CActSelect曲リスト : CActivity { #endregion - switch (rCurrentlySelectedSong.eノード種別) { + switch (rCurrentlySelectedSong.nodeType) { case CSongListNode.ENodeType.SCORE: { var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(rCurrentlySelectedSong); var HiddenIndex = OpenTaiko.Databases.DBSongUnlockables.tGetSongHiddenIndex(rCurrentlySelectedSong); @@ -1910,7 +1910,7 @@ internal class CActSelect曲リスト : CActivity { //----------------- if (rCurrentlySelectedSong.ldTitle.GetString("") != "" && this.ttkSelectedSongTitle == null) - this.ttkSelectedSongTitle = this.ttkGenerateSongNameTexture(rCurrentlySelectedSong.ldTitle.GetString(""), rCurrentlySelectedSong.ForeColor, rCurrentlySelectedSong.BackColor, rCurrentlySelectedSong.eノード種別 == CSongListNode.ENodeType.BOX ? this.pfBoxName : this.pfMusicName); + this.ttkSelectedSongTitle = this.ttkGenerateSongNameTexture(rCurrentlySelectedSong.ldTitle.GetString(""), rCurrentlySelectedSong.ForeColor, rCurrentlySelectedSong.BackColor, rCurrentlySelectedSong.nodeType == CSongListNode.ENodeType.BOX ? this.pfBoxName : this.pfMusicName); if (rCurrentlySelectedSong.ldSubtitle.GetString("") != "" && this.ttkSelectedSongSubtitle == null) this.ttkSelectedSongSubtitle = this.ttkGenerateSubtitleTexture(rCurrentlySelectedSong.ldSubtitle.GetString(""), rCurrentlySelectedSong.ForeColor, rCurrentlySelectedSong.BackColor); if (rCurrentlySelectedSong.strMaker != "" && this.ttkSelectedSongMaker == null) @@ -1958,8 +1958,8 @@ internal class CActSelect曲リスト : CActivity { } txSelectedSongSubtitle.t2D拡大率考慮中央基準描画( - xAnime + OpenTaiko.Skin.SongSelect_Bar_SubTitle_Offset[0] + (rCurrentlySelectedSong.eノード種別 == CSongListNode.ENodeType.BOX ? centerMoveX : centerMoveX / 1.1f), - y + OpenTaiko.Skin.SongSelect_Bar_SubTitle_Offset[1] - (rCurrentlySelectedSong.eノード種別 == CSongListNode.ENodeType.BOX ? centerMove : centerMove / 1.1f)); + xAnime + OpenTaiko.Skin.SongSelect_Bar_SubTitle_Offset[0] + (rCurrentlySelectedSong.nodeType == CSongListNode.ENodeType.BOX ? centerMoveX : centerMoveX / 1.1f), + y + OpenTaiko.Skin.SongSelect_Bar_SubTitle_Offset[1] - (rCurrentlySelectedSong.nodeType == CSongListNode.ENodeType.BOX ? centerMove : centerMove / 1.1f)); if (HiddenIndex >= DBSongUnlockables.EHiddenIndex.BLURED) { txSelectedSongSubtitle.bUseNoiseEffect = false; @@ -1967,20 +1967,20 @@ internal class CActSelect曲リスト : CActivity { if (this.ttkSelectedSongTitle != null) { _title.t2D拡大率考慮中央基準描画( - xAnime + GetTitleOffsetX(rCurrentlySelectedSong.eノード種別) + - (rCurrentlySelectedSong.eノード種別 != CSongListNode.ENodeType.BACKBOX ? (rCurrentlySelectedSong.eノード種別 == CSongListNode.ENodeType.BOX ? centerMoveX : centerMoveX / 1.1f) : 0), + xAnime + GetTitleOffsetX(rCurrentlySelectedSong.nodeType) + + (rCurrentlySelectedSong.nodeType != CSongListNode.ENodeType.BACKBOX ? (rCurrentlySelectedSong.nodeType == CSongListNode.ENodeType.BOX ? centerMoveX : centerMoveX / 1.1f) : 0), - y + GetTitleOffsetY(rCurrentlySelectedSong.eノード種別) - - (rCurrentlySelectedSong.eノード種別 != CSongListNode.ENodeType.BACKBOX ? (rCurrentlySelectedSong.eノード種別 == CSongListNode.ENodeType.BOX ? centerMove : centerMove / 1.1f) : 0)); + y + GetTitleOffsetY(rCurrentlySelectedSong.nodeType) - + (rCurrentlySelectedSong.nodeType != CSongListNode.ENodeType.BACKBOX ? (rCurrentlySelectedSong.nodeType == CSongListNode.ENodeType.BOX ? centerMove : centerMove / 1.1f) : 0)); } } else { if (this.ttkSelectedSongTitle != null) { _title.t2D拡大率考慮中央基準描画( xAnime + GetTitleOffsetX(this.stバー情報[nパネル番号].eバー種別) + - (rCurrentlySelectedSong.eノード種別 != CSongListNode.ENodeType.BACKBOX ? (rCurrentlySelectedSong.eノード種別 == CSongListNode.ENodeType.BOX ? centerMoveX : centerMoveX / 1.1f) : 0), + (rCurrentlySelectedSong.nodeType != CSongListNode.ENodeType.BACKBOX ? (rCurrentlySelectedSong.nodeType == CSongListNode.ENodeType.BOX ? centerMoveX : centerMoveX / 1.1f) : 0), y + GetTitleOffsetY(this.stバー情報[nパネル番号].eバー種別) - - (rCurrentlySelectedSong.eノード種別 != CSongListNode.ENodeType.BACKBOX ? (rCurrentlySelectedSong.eノード種別 == CSongListNode.ENodeType.BOX ? centerMove : centerMove / 1.1f) : 0)); + (rCurrentlySelectedSong.nodeType != CSongListNode.ENodeType.BACKBOX ? (rCurrentlySelectedSong.nodeType == CSongListNode.ENodeType.BOX ? centerMove : centerMove / 1.1f) : 0)); } } @@ -2531,7 +2531,7 @@ internal class CActSelect曲リスト : CActivity { private Eバー種別 e曲のバー種別を返す(CSongListNode song) { if (song != null) { - switch (song.eノード種別) { + switch (song.nodeType) { case CSongListNode.ENodeType.SCORE: case CSongListNode.ENodeType.SCORE_MIDI: return Eバー種別.Score; @@ -2549,7 +2549,7 @@ internal class CActSelect曲リスト : CActivity { return Eバー種別.Other; } private void tChangeSong(int change) { - List list = (OpenTaiko.ConfigIni.TJAP3FolderMode && rCurrentlySelectedSong.rParentNode != null) ? rCurrentlySelectedSong.rParentNode.list子リスト : flattenList(OpenTaiko.Songs管理.list曲ルート, true); + List list = (OpenTaiko.ConfigIni.TJAP3FolderMode && rCurrentlySelectedSong.rParentNode != null) ? rCurrentlySelectedSong.rParentNode.childrenList : flattenList(OpenTaiko.Songs管理.list曲ルート, true); int index = nSelectSongIndex + change; @@ -2577,7 +2577,7 @@ internal class CActSelect曲リスト : CActivity { public CSongListNode rGetSideSong(int change) { if (rCurrentlySelectedSong == null) return null; - List list = (OpenTaiko.ConfigIni.TJAP3FolderMode && rCurrentlySelectedSong.rParentNode != null) ? rCurrentlySelectedSong.rParentNode.list子リスト : flattenList(OpenTaiko.Songs管理.list曲ルート, true); + List list = (OpenTaiko.ConfigIni.TJAP3FolderMode && rCurrentlySelectedSong.rParentNode != null) ? rCurrentlySelectedSong.rParentNode.childrenList : flattenList(OpenTaiko.Songs管理.list曲ルート, true); if (list.Count <= 0) return null; @@ -2603,8 +2603,7 @@ internal class CActSelect曲リスト : CActivity { CSongListNode song = this.rGetSideSong(i - barCenterNum); if (song == null) continue; this.stバー情報[i].strタイトル文字列 = song.ldTitle.GetString(""); - this.stバー情報[i].strジャンル = song.strジャンル; - this.stバー情報[i].col文字色 = song.col文字色; + this.stバー情報[i].strジャンル = song.songGenre; this.stバー情報[i].ForeColor = song.ForeColor; this.stバー情報[i].BackColor = song.BackColor; @@ -2626,8 +2625,8 @@ internal class CActSelect曲リスト : CActivity { this.stバー情報[i].nLevelIcon = song.nLevelIcon; for (int f = 0; f < (int)Difficulty.Total; f++) { - if (song.arスコア[f] != null) - this.stバー情報[i].b分岐 = song.arスコア[f].譜面情報.b譜面分岐; + if (song.score[f] != null) + this.stバー情報[i].b分岐 = song.score[f].譜面情報.b譜面分岐; } #region [Reroll cases] @@ -2660,7 +2659,7 @@ internal class CActSelect曲リスト : CActivity { for (int j = 0; j < 3; j++) - this.stバー情報[i].nスキル値[j] = (int)song.arスコア[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[j]; + this.stバー情報[i].nスキル値[j] = (int)song.score[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[j]; this.stバー情報[i].ttkタイトル = this.ttkGenerateSongNameTexture(this.stバー情報[i].strタイトル文字列, this.stバー情報[i].ForeColor, this.stバー情報[i].BackColor, stバー情報[i].eバー種別 == Eバー種別.Box ? this.pfBoxName : this.pfMusicName); } @@ -2914,7 +2913,7 @@ internal class CActSelect曲リスト : CActivity { } private TitleTextureKey ttkGenerateBPMTexture(CSongListNode node, Color forecolor, Color backcolor) { - var _score = node.arスコア[tFetchDifficulty(node)].譜面情報; + var _score = node.score[tFetchDifficulty(node)].譜面情報; var _speed = OpenTaiko.ConfigIni.SongPlaybackSpeed; double[] bpms = new double[3] { @@ -3042,7 +3041,7 @@ internal class CActSelect曲リスト : CActivity { var closest = this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song); int defaultTable = Math.Max(0, Math.Min((int)Difficulty.Edit + 1, OpenTaiko.ConfigIni.nDefaultCourse)); - if (song.arスコア[defaultTable] == null) + if (song.score[defaultTable] == null) return closest; return defaultTable; } diff --git a/OpenTaiko/src/Stages/05.SongSelect/CActSelect演奏履歴パネル.cs b/OpenTaiko/src/Stages/05.SongSelect/CActSelect演奏履歴パネル.cs index 9aef5f06..99fbac46 100644 --- a/OpenTaiko/src/Stages/05.SongSelect/CActSelect演奏履歴パネル.cs +++ b/OpenTaiko/src/Stages/05.SongSelect/CActSelect演奏履歴パネル.cs @@ -60,7 +60,7 @@ internal class CActSelect演奏履歴パネル : CActivity { base.IsDeActivated = true; } public void t選択曲が変更された() { - Cスコア cスコア = OpenTaiko.stageSongSelect.r現在選択中のスコア; + CScore cスコア = OpenTaiko.stageSongSelect.r現在選択中のスコア; if ((cスコア != null) && !OpenTaiko.stageSongSelect.bCurrentlyScrolling) { try { foreach (var item in tx文字列パネル) { @@ -130,7 +130,7 @@ internal class CActSelect演奏履歴パネル : CActivity { this.ct登場アニメ用.Tick(); int x = 980; int y = 350; - if (OpenTaiko.stageSongSelect.r現在選択中のスコア != null && this.ct登場アニメ用.CurrentValue >= 2000 && OpenTaiko.stageSongSelect.rNowSelectedSong.eノード種別 == CSongListNode.ENodeType.SCORE) { + if (OpenTaiko.stageSongSelect.r現在選択中のスコア != null && this.ct登場アニメ用.CurrentValue >= 2000 && OpenTaiko.stageSongSelect.rNowSelectedSong.nodeType == CSongListNode.ENodeType.SCORE) { //CDTXMania.Tx.SongSelect_ScoreWindow_Text.n透明度 = ct登場アニメ用.n現在の値 - 1745; if (OpenTaiko.Tx.SongSelect_ScoreWindow[OpenTaiko.stageSongSelect.n現在選択中の曲の難易度] != null) { //CDTXMania.Tx.SongSelect_ScoreWindow[CDTXMania.stage選曲.n現在選択中の曲の難易度].n透明度 = ct登場アニメ用.n現在の値 - 1745; diff --git a/OpenTaiko/src/Stages/05.SongSelect/CActSelect難易度選択画面.cs b/OpenTaiko/src/Stages/05.SongSelect/CActSelect難易度選択画面.cs index f16cb90a..d8450a1e 100644 --- a/OpenTaiko/src/Stages/05.SongSelect/CActSelect難易度選択画面.cs +++ b/OpenTaiko/src/Stages/05.SongSelect/CActSelect難易度選択画面.cs @@ -358,7 +358,7 @@ internal class CActSelect難易度選択画面 : CActivity { int p = OpenTaiko.GetActualPlayer(j); - Cスコア.ST譜面情報 idx = OpenTaiko.stageSongSelect.r現在選択中のスコア.譜面情報; + CScore.ST譜面情報 idx = OpenTaiko.stageSongSelect.r現在選択中のスコア.譜面情報; //var GPInfo = TJAPlayer3.stageSongSelect.r現在選択中のスコア.GPInfo[p]; diff --git a/OpenTaiko/src/Stages/05.SongSelect/CStage選曲.cs b/OpenTaiko/src/Stages/05.SongSelect/CStage選曲.cs index 9940c9de..9dd2e4ab 100644 --- a/OpenTaiko/src/Stages/05.SongSelect/CStage選曲.cs +++ b/OpenTaiko/src/Stages/05.SongSelect/CStage選曲.cs @@ -5,18 +5,18 @@ using System.Text; using DiscordRPC; using FDK; -namespace OpenTaiko; - +namespace OpenTaiko; + /* ** class CSongSelectSongManager ** playSongIfPossible : Play song is enabled and not playing, supports both intro and regular song ** stopSong : Stop song without disabling it ** enable : Enable the menu song ** disable : Disable the menu song - */ - + */ + #region [Generic static class for handling the menu song] - + static internal class CSongSelectSongManager { public static CSkin.CSystemSound bgmIn { get { @@ -70,12 +70,12 @@ static internal class CSongSelectSongManager { private static bool inSongPlayed = false; private static bool isSongDisabled = false; -} - +} + #endregion - -internal class CStage選曲 : CStage { - // Properties + +internal class CStage選曲 : CStage { + // Properties public int nスクロールバー相対y座標 { get { if (actSongList != null) { @@ -104,7 +104,7 @@ internal class CStage選曲 : CStage { get; set; } - public Cスコア r確定されたスコア { + public CScore r確定されたスコア { get; set; } @@ -117,7 +117,7 @@ internal class CStage選曲 : CStage { return this.actSongList.n現在選択中の曲の現在の難易度レベル; } } - public Cスコア r現在選択中のスコア { + public CScore r現在選択中のスコア { get { return this.actSongList.r現在選択中のスコア; } @@ -134,17 +134,17 @@ internal class CStage選曲 : CStage { set { this.actSongList.rCurrentlySelectedSong = value; } - } - - // コンストラクタ + } + + // コンストラクタ public CStage選曲() { base.eStageID = CStage.EStage.SongSelect; base.ePhaseID = CStage.EPhase.Common_NORMAL; base.IsDeActivated = true; base.ChildActivities.Add(this.actオプションパネル = new CActオプションパネル()); base.ChildActivities.Add(this.actFIFO = new CActFIFOBlack()); - base.ChildActivities.Add(this.actFIfrom結果画面 = new CActFIFOBlack()); - //base.list子Activities.Add( this.actFOtoNowLoading = new CActFIFOBlack() ); + base.ChildActivities.Add(this.actFIfrom結果画面 = new CActFIFOBlack()); + //base.list子Activities.Add( this.actFOtoNowLoading = new CActFIFOBlack() ); base.ChildActivities.Add(this.actFOtoNowLoading = new CActFIFOStart()); base.ChildActivities.Add(this.actSongList = new CActSelect曲リスト()); base.ChildActivities.Add(this.actSongInfo = new CActSelectSongInfo()); @@ -176,12 +176,12 @@ internal class CStage選曲 : CStage { stBoardNumber[i].pt = new Point(15 * i, 0); } - this.CommandHistory = new CCommandHistory(); // #24063 2011.1.16 yyagi - } - - - // メソッド - + this.CommandHistory = new CCommandHistory(); // #24063 2011.1.16 yyagi + } + + + // メソッド + public void tNotifySelectedSongChange() { int scroll = this.ct背景スクロール用タイマー.CurrentValue; @@ -215,25 +215,25 @@ internal class CStage選曲 : CStage { this.act演奏履歴パネル.t選択曲が変更された(); this.actステータスパネル.t選択曲が変更された(); this.actArtistComment.t選択曲が変更された(); - actDanInfo.UpdateSong(); - + actDanInfo.UpdateSong(); + #region [ プラグインにも通知する(BOX, RANDOM, BACK なら通知しない)] - //--------------------- + //--------------------- if (OpenTaiko.app != null) { var c曲リストノード = OpenTaiko.stageSongSelect.rNowSelectedSong; var cスコア = OpenTaiko.stageSongSelect.r現在選択中のスコア; - if (c曲リストノード != null && cスコア != null && c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE) { + if (c曲リストノード != null && cスコア != null && c曲リストノード.nodeType == CSongListNode.ENodeType.SCORE) { string str選択曲ファイル名 = cスコア.ファイル情報.ファイルの絶対パス; int n曲番号inブロック = OpenTaiko.stageSongSelect.actSongList.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(c曲リストノード); } - } - //--------------------- + } + //--------------------- #endregion - } - - // CStage 実装 - + } + + // CStage 実装 + /// /// 曲リストをリセットする /// @@ -247,9 +247,9 @@ internal class CStage選曲 : CStage { Trace.Indent(); try { nChoosenSongDifficulty = new int[5]; - this.eフェードアウト完了時の戻り値 = E戻り値.継続; - - // BGM played + this.eフェードアウト完了時の戻り値 = E戻り値.継続; + + // BGM played this.bBGM再生済み = false; this.ct背景スクロール用タイマー = new CCounter(0, txGenreBack.szTextureSize.Width, 30, OpenTaiko.Timer); @@ -258,15 +258,15 @@ internal class CStage選曲 : CStage { OpenTaiko.Skin.voiceMenuSongSelect[OpenTaiko.SaveFile]?.tPlay(); for (int i = 0; i < 2; i++) - this.ctキー反復用[i] = new CCounter(0, 0, 0, OpenTaiko.Timer); - - //ctChara_Normal = new CCounter(0, TJAPlayer3.Tx.SongSelect_Chara_Normal.Length - 1, 1000 / 45, TJAPlayer3.Timer); - CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.NORMAL); - - //ctChara_Select = new CCounter(); - //ctChara_Jump[0] = new CCounter(); - //ctChara_Jump[1] = new CCounter(); - + this.ctキー反復用[i] = new CCounter(0, 0, 0, OpenTaiko.Timer); + + //ctChara_Normal = new CCounter(0, TJAPlayer3.Tx.SongSelect_Chara_Normal.Length - 1, 1000 / 45, TJAPlayer3.Timer); + CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.NORMAL); + + //ctChara_Select = new CCounter(); + //ctChara_Jump[0] = new CCounter(); + //ctChara_Jump[1] = new CCounter(); + CMenuCharacter.tDisableCounter(CMenuCharacter.ECharacterAnimation.SELECT); CMenuCharacter.tDisableCounter(CMenuCharacter.ECharacterAnimation.START); @@ -276,22 +276,22 @@ internal class CStage選曲 : CStage { this.PuchiChara.IdleAnimation(); - ctBackgroundFade.CurrentValue = 600; - + ctBackgroundFade.CurrentValue = 600; + /* if(TJAPlayer3.ConfigIni.bBGM音を発声する && !TJAPlayer3.Skin.bgm選曲画面イン.b再生中 && !TJAPlayer3.Skin.bgm選曲画面.b再生中) TJAPlayer3.Skin.bgm選曲画面イン.t再生する(); - */ - - + */ + + for (int i = 0; i < 3; i++) - r[i] = new Random(); - - //this.act難易度選択画面.bIsDifficltSelect = true; + r[i] = new Random(); + + //this.act難易度選択画面.bIsDifficltSelect = true; base.Activate(); - this.actステータスパネル.t選択曲が変更された(); // 最大ランクを更新 - // Discord Presenceの更新 + this.actステータスパネル.t選択曲が変更された(); // 最大ランクを更新 + // Discord Presenceの更新 OpenTaiko.DiscordClient?.SetPresence(new RichPresence() { Details = "", State = "SongSelect", @@ -305,7 +305,7 @@ internal class CStage選曲 : CStage { if (rNowSelectedSong != null) - NowGenre = rNowSelectedSong.strジャンル; + NowGenre = rNowSelectedSong.songGenre; AI_Background = new ScriptBG(CSkin.Path($@"{TextureLoader.BASE}{TextureLoader.SONGSELECT}{Path.DirectorySeparatorChar}AIBattle{Path.DirectorySeparatorChar}Script.lua")); AI_Background.Init(); @@ -346,9 +346,9 @@ internal class CStage選曲 : CStage { public override int Draw() { if (!base.IsDeActivated) { this.ct背景スクロール用タイマー.TickLoop(); - this.ctOldBGScroll.TickLoop(); + this.ctOldBGScroll.TickLoop(); #region [ 初めての進行描画 ] - //--------------------- + //--------------------- if (base.IsFirstDraw) { this.ct登場時アニメ用共通 = new CCounter(0, 100, 3, OpenTaiko.Timer); if (OpenTaiko.r直前のステージ == OpenTaiko.stage結果) { @@ -360,20 +360,20 @@ internal class CStage選曲 : CStage { } this.tNotifySelectedSongChange(); base.IsFirstDraw = false; - } - //--------------------- + } + //--------------------- #endregion - - + + ctTimer.Tick(); ctCreditAnime.TickLoop(); - ctBackgroundFade.Tick(); - - //ctChara_Select.t進行(); - //ctChara_Jump[0].t進行(); - //ctChara_Jump[1].t進行(); - //ctChara_Normal.t進行Loop(); - + ctBackgroundFade.Tick(); + + //ctChara_Select.t進行(); + //ctChara_Jump[0].t進行(); + //ctChara_Jump[1].t進行(); + //ctChara_Normal.t進行Loop(); + this.ct登場時アニメ用共通.Tick(); if (OpenTaiko.ConfigIni.bAIBattleMode) { @@ -384,10 +384,10 @@ internal class CStage選曲 : CStage { OpenTaiko.Tx.SongSelect_Background.t2D描画(0, 0); } - if (this.rNowSelectedSong != null) { - + if (this.rNowSelectedSong != null) { + #region [Background] - + nGenreBack = this.NowBg; nOldGenreBack = this.OldBg; @@ -416,15 +416,15 @@ internal class CStage選曲 : CStage { } } } - } - + } + #endregion - + #region [Song Panel] - - if (this.rNowSelectedSong.eノード種別 == CSongListNode.ENodeType.BOX) { + + if (this.rNowSelectedSong.nodeType == CSongListNode.ENodeType.BOX) { OpenTaiko.Tx.SongSelect_Song_Panel[0]?.t2D描画(0, 0); - } else if (this.rNowSelectedSong.eノード種別 == CSongListNode.ENodeType.SCORE) { + } else if (this.rNowSelectedSong.nodeType == CSongListNode.ENodeType.SCORE) { var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(this.rNowSelectedSong); var HiddenIndex = OpenTaiko.Databases.DBSongUnlockables.tGetSongHiddenIndex(this.rNowSelectedSong); @@ -438,15 +438,15 @@ internal class CStage選曲 : CStage { else OpenTaiko.Tx.SongSelect_Song_Panel[1]?.t2D描画(0, 0); } - } - + } + #endregion } this.actSongList.Draw(); int y = 0; if (this.ct登場時アニメ用共通.IsTicked) { - double db登場割合 = ((double)this.ct登場時アニメ用共通.CurrentValue) / 100.0; // 100が最終値 + double db登場割合 = ((double)this.ct登場時アニメ用共通.CurrentValue) / 100.0; // 100が最終値 double dbY表示割合 = Math.Sin(Math.PI / 2 * db登場割合); y = ((int)(OpenTaiko.Tx.SongSelect_Header.sz画像サイズ.Height * dbY表示割合)) - OpenTaiko.Tx.SongSelect_Header.sz画像サイズ.Height; } @@ -454,13 +454,13 @@ internal class CStage選曲 : CStage { OpenTaiko.Tx.SongSelect_Header?.t2D描画(0, 0); OpenTaiko.Tx.SongSelect_Footer?.t2D描画(0, 0); - tTimerDraw(100 - ctTimer.CurrentValue); - + tTimerDraw(100 - ctTimer.CurrentValue); + #region [Song Info] - + if (this.rNowSelectedSong != null) { - if (this.rNowSelectedSong.eノード種別 == CSongListNode.ENodeType.BOX) { - } else if (this.rNowSelectedSong.eノード種別 == CSongListNode.ENodeType.SCORE) { + if (this.rNowSelectedSong.nodeType == CSongListNode.ENodeType.BOX) { + } else if (this.rNowSelectedSong.nodeType == CSongListNode.ENodeType.SCORE) { var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(this.rNowSelectedSong); var HiddenIndex = OpenTaiko.Databases.DBSongUnlockables.tGetSongHiddenIndex(this.rNowSelectedSong); @@ -474,17 +474,17 @@ internal class CStage選曲 : CStage { } } } - } - + } + #endregion - + tSongNumberDraw(OpenTaiko.Skin.SongSelect_SongNumber_X[0], OpenTaiko.Skin.SongSelect_SongNumber_Y[0], NowSong); tSongNumberDraw(OpenTaiko.Skin.SongSelect_SongNumber_X[1], OpenTaiko.Skin.SongSelect_SongNumber_Y[1], MaxSong); - this.actInformation.Draw(); - + this.actInformation.Draw(); + #region[Modicons] - + for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) { ModIcons.tDisplayModsMenu(OpenTaiko.Skin.SongSelect_ModIcons_X[i], OpenTaiko.Skin.SongSelect_ModIcons_Y[i], i); } @@ -496,14 +496,14 @@ internal class CStage選曲 : CStage { if (OpenTaiko.ConfigIni.eGameMode == EGame.SurvivalHard) OpenTaiko.actTextConsole.Print(0, 16, CTextConsole.EFontType.White, "GAME: SURVIVAL HARD"); if (OpenTaiko.ConfigIni.bSuperHard) - OpenTaiko.actTextConsole.Print(0, 32, CTextConsole.EFontType.Cyan, "SUPER HARD MODE : ON"); - + OpenTaiko.actTextConsole.Print(0, 32, CTextConsole.EFontType.Cyan, "SUPER HARD MODE : ON"); + #endregion - + #region [Preimage, upper lock layer and unlock conditions] - + if (this.rNowSelectedSong != null - && this.rNowSelectedSong.eノード種別 == CSongListNode.ENodeType.SCORE) { + && this.rNowSelectedSong.nodeType == CSongListNode.ENodeType.SCORE) { var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(this.rNowSelectedSong); var HiddenIndex = OpenTaiko.Databases.DBSongUnlockables.tGetSongHiddenIndex(this.rNowSelectedSong); @@ -520,44 +520,44 @@ internal class CStage選曲 : CStage { TitleTextureKey.ResolveTitleTexture(actSongList.ttkNowUnlockConditionText)?.t2D描画(OpenTaiko.Skin.SongSelect_Unlock_Conditions_Text[0], OpenTaiko.Skin.SongSelect_Unlock_Conditions_Text[1]); } } - } - + } + #endregion - + this.actPresound.Draw(); this.act演奏履歴パネル.Draw(); - this.actShowCurrentPosition.Draw(); // #27648 2011.3.28 yyagi - - // Select screen song + this.actShowCurrentPosition.Draw(); // #27648 2011.3.28 yyagi + + // Select screen song if (base.ePhaseID == CStage.EPhase.Common_NORMAL) { CSongSelectSongManager.playSongIfPossible(); } if (this.ctDiffSelect移動待ち != null) - this.ctDiffSelect移動待ち.Tick(); - - + this.ctDiffSelect移動待ち.Tick(); + + #region [Character & PuchiChara] - - - //if (this.ctChara_Select.b終了値に達してない) - + + + //if (this.ctChara_Select.b終了値に達してない) + for (int player = 0; player < OpenTaiko.ConfigIni.nPlayerCount; player++) { CCounter ___cc = CMenuCharacter._getReferenceCounter(CMenuCharacter.ECharacterAnimation.SELECT)[player]; - int _charaId = OpenTaiko.SaveFileInstances[OpenTaiko.GetActualPlayer(player)].data.Character; - - //int chara_x = TJAPlayer3.Skin.Characters_Menu_X[_charaId][player]; - //int chara_y = TJAPlayer3.Skin.Characters_Menu_Y[_charaId][player]; - + int _charaId = OpenTaiko.SaveFileInstances[OpenTaiko.GetActualPlayer(player)].data.Character; + + //int chara_x = TJAPlayer3.Skin.Characters_Menu_X[_charaId][player]; + //int chara_y = TJAPlayer3.Skin.Characters_Menu_Y[_charaId][player]; + int chara_x = OpenTaiko.Skin.SongSelect_NamePlate_X[player] + OpenTaiko.Tx.NamePlateBase.szTextureSize.Width / 2; - int chara_y = OpenTaiko.Skin.SongSelect_NamePlate_Y[player]; - - //int puchi_x = player == 0 ? 0 + 100 : 981 + 250; - //int puchi_y = player == 0 ? 330 + 230 : 330 + 230; - + int chara_y = OpenTaiko.Skin.SongSelect_NamePlate_Y[player]; + + //int puchi_x = player == 0 ? 0 + 100 : 981 + 250; + //int puchi_y = player == 0 ? 330 + 230 : 330 + 230; + int puchi_x = chara_x + OpenTaiko.Skin.Adjustments_MenuPuchichara_X[player % 2]; int puchi_y = chara_y + OpenTaiko.Skin.Adjustments_MenuPuchichara_Y[player % 2]; @@ -583,19 +583,19 @@ internal class CStage選曲 : CStage { this.PuchiChara.On進行描画(puchi_x, puchi_y, false, 255, false, player); } } - } - - + } + + #endregion - + #region [ Nameplate ] for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) { OpenTaiko.NamePlate.tNamePlateDraw(OpenTaiko.Skin.SongSelect_NamePlate_X[i], OpenTaiko.Skin.SongSelect_NamePlate_Y[i], i); - } + } #endregion - + #region [Pad displayables] - + int defaultTable = Math.Max(0, Math.Min((int)Difficulty.Edit + 1, OpenTaiko.ConfigIni.nDefaultCourse)); int[] currentPads = new int[5] { @@ -603,9 +603,9 @@ internal class CStage選曲 : CStage { defaultTable, defaultTable, defaultTable, - defaultTable }; - - //int currentPad = (int)Difficulty.Edit + 1; + defaultTable }; + + //int currentPad = (int)Difficulty.Edit + 1; if (OpenTaiko.stageSongSelect.actDifficultySelectionScreen.bIsDifficltSelect) { if (OpenTaiko.stageSongSelect.actDifficultySelectionScreen.n現在の選択行[0] >= 2) currentPads[0] = OpenTaiko.stageSongSelect.actDifficultySelectionScreen.n現在の選択行[0] - 2; @@ -628,9 +628,9 @@ internal class CStage選曲 : CStage { OpenTaiko.Tx.SongSelect_Table[currentPads[i]]?.t2D描画(OpenTaiko.Skin.SongSelect_Table_X[i], OpenTaiko.Skin.SongSelect_Table_Y[i]); - CActSelect曲リスト.CScorePad[] SPArrRef = CSongDict.ScorePads[p]; - - // Current board + CActSelect曲リスト.CScorePad[] SPArrRef = CSongDict.ScorePads[p]; + + // Current board for (int j = 0; j < 11; j++) { tBoardNumberDraw(OpenTaiko.Skin.SongSelect_BoardNumber_X[i][j], OpenTaiko.Skin.SongSelect_BoardNumber_Y[i][j], j < 7 ? SPArrRef[currentPads[i]].ScoreRankCount[j] @@ -652,15 +652,15 @@ internal class CStage選曲 : CStage { int p = OpenTaiko.GetActualPlayer(i); if (OpenTaiko.SaveFileInstances[p].data.Medals >= 0) - tBoardNumberDraw(OpenTaiko.Skin.SongSelect_BoardNumber_X[i][11], OpenTaiko.Skin.SongSelect_BoardNumber_Y[i][11], (int)OpenTaiko.SaveFileInstances[p].data.Medals); - + tBoardNumberDraw(OpenTaiko.Skin.SongSelect_BoardNumber_X[i][11], OpenTaiko.Skin.SongSelect_BoardNumber_Y[i][11], (int)OpenTaiko.SaveFileInstances[p].data.Medals); + #region [HiScore plate] - + var song = this.rNowSelectedSong; - if (song != null && song.eノード種別 == CSongListNode.ENodeType.SCORE) { + if (song != null && song.nodeType == CSongListNode.ENodeType.SCORE) { var closest = this.actSongList.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song); - var score = song.arスコア[closest]; + var score = song.score[closest]; if (score != null) { int displayedScore = 0; @@ -692,38 +692,38 @@ internal class CStage選曲 : CStage { tBoardNumberDraw(OpenTaiko.Skin.SongSelect_BoardNumber_X[i][12], OpenTaiko.Skin.SongSelect_BoardNumber_Y[i][12], displayedScore); } - } - + } + #endregion - } - + } + #endregion - - + + #region [ Inputs ] - - // キー入力 - if (base.ePhaseID == CStage.EPhase.Common_NORMAL) { + + // キー入力 + if (base.ePhaseID == CStage.EPhase.Common_NORMAL) { #region [ 簡易CONFIGでMore、またはShift+F1: 詳細CONFIG呼び出し ] - if (actQuickConfig.bGotoDetailConfig) { // 詳細CONFIG呼び出し + if (actQuickConfig.bGotoDetailConfig) { // 詳細CONFIG呼び出し actQuickConfig.tDeativatePopupMenu(); this.actPresound.tStopSound(); - this.eフェードアウト完了時の戻り値 = E戻り値.コンフィグ呼び出し; // #24525 2011.3.16 yyagi: [SHIFT]-[F1]でCONFIG呼び出し + this.eフェードアウト完了時の戻り値 = E戻り値.コンフィグ呼び出し; // #24525 2011.3.16 yyagi: [SHIFT]-[F1]でCONFIG呼び出し this.actFIFO.tフェードアウト開始(); base.ePhaseID = CStage.EPhase.Common_FADEOUT; OpenTaiko.Skin.soundCancelSFX.tPlay(); return 0; - } + } #endregion - - if (this.actSongList.isContextBoxOpened == true) { - // Handle menu contexts + + if (this.actSongList.isContextBoxOpened == true) { + // Handle menu contexts bool __done = this.actSongList.tMenuContextController(this.actSongList.latestContext); if (__done == true) { - if (this.actSongList.latestContext == eMenuContext.SearchByDifficulty) { + if (this.actSongList.latestContext == eMenuContext.SearchByDifficulty) { #region [Trigger context box] - - this.actSongList.rCurrentlySelectedSong.list子リスト = CSongDict.tFetchSongsByDifficulty( + + this.actSongList.rCurrentlySelectedSong.childrenList = CSongDict.tFetchSongsByDifficulty( this.actSongList.rCurrentlySelectedSong, this.actSongList.tMenuContextGetVar(0), this.actSongList.tMenuContextGetVar(1)); @@ -733,36 +733,36 @@ internal class CStage選曲 : CStage { OpenTaiko.Skin.soundDecideSFX.tPlay(); this.actSongList.ctBarFlash.Start(0, 2700, 1, OpenTaiko.Timer); this.actSongList.ctBoxOpen.Start(200, 2700, 1.3f, OpenTaiko.Timer); - this.actSongList.bBoxOpen = true; - - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); - CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); - + this.actSongList.bBoxOpen = true; + + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); + #endregion - } else if (this.actSongList.latestContext == eMenuContext.Random) { + } else if (this.actSongList.latestContext == eMenuContext.Random) { #region [Trigger context box] - - this.tSetSongRandomly(); - - // Called here + + this.tSetSongRandomly(); + + // Called here OpenTaiko.Skin.soundDecideSFX.tPlay(); this.actDifficultySelectionScreen.bIsDifficltSelect = true; this.actDifficultySelectionScreen.t選択画面初期化(); this.actSongList.ctBarFlash.Start(0, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); - this.actSongList.ctDifficultyIn.Start(0, 3200, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); - - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); - CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); - + this.actSongList.ctDifficultyIn.Start(0, 3200, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); + + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); + #endregion } this.actSongList.tMenuContextDisable(); } - } else if (!this.actSortSongs.bIsActivePopupMenu && !this.actQuickConfig.bIsActivePopupMenu && !this.actDifficultySelectionScreen.bIsDifficltSelect && !actNewHeya.IsOpend) { + } else if (!this.actSortSongs.bIsActivePopupMenu && !this.actQuickConfig.bIsActivePopupMenu && !this.actDifficultySelectionScreen.bIsDifficltSelect && !actNewHeya.IsOpend) { #region [ ESC ] - if ((OpenTaiko.Pad.bPressedDGB(EPad.Cancel) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Escape)) && (this.actSongList.rCurrentlySelectedSong != null))// && ( ) ) ) - if (this.actSongList.rCurrentlySelectedSong.rParentNode == null) { // [ESC] + if ((OpenTaiko.Pad.bPressedDGB(EPad.Cancel) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Escape)) && (this.actSongList.rCurrentlySelectedSong != null))// && ( ) ) ) + if (this.actSongList.rCurrentlySelectedSong.rParentNode == null) { // [ESC] this.actPresound.tStopSound(); CSongSelectSongManager.enable(); @@ -779,34 +779,34 @@ internal class CStage選曲 : CStage { OpenTaiko.Skin.soundCancelSFX.tPlay(); this.actSongList.ctBarFlash.Start(0, 2700, 1, OpenTaiko.Timer); this.actSongList.ctBoxOpen.Start(200, 2700, 1.3f, OpenTaiko.Timer); - this.actSongList.bBoxClose = true; - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + this.actSongList.bBoxClose = true; + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); } - } + } #endregion #region [ Shift-F1: Config shortcut ] if ((OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.RightShift) || OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.LeftShift)) && - OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.F1)) { // [SHIFT] + [F1] CONFIG + OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.F1)) { // [SHIFT] + [F1] CONFIG this.actPresound.tStopSound(); - this.eフェードアウト完了時の戻り値 = E戻り値.コンフィグ呼び出し; // #24525 2011.3.16 yyagi: [SHIFT]-[F1]でCONFIG呼び出し + this.eフェードアウト完了時の戻り値 = E戻り値.コンフィグ呼び出し; // #24525 2011.3.16 yyagi: [SHIFT]-[F1]でCONFIG呼び出し this.actFIFO.tフェードアウト開始(); base.ePhaseID = CStage.EPhase.Common_FADEOUT; OpenTaiko.Skin.soundCancelSFX.tPlay(); return 0; - } + } #endregion #region [ F2 Quick Config ] if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.QuickConfig)) { OpenTaiko.Skin.soundChangeSFX.tPlay(); this.actQuickConfig.tActivatePopupMenu(EInstrumentPad.Drums); - } + } #endregion #region [ F3 1P AUTO ] if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.ToggleAutoP1)) { OpenTaiko.Skin.soundChangeSFX.tPlay(); CUtility.ToggleBoolian(ref OpenTaiko.ConfigIni.bAutoPlay[0]); - } + } #endregion #region [ F4 2P AUTO ] if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.ToggleAutoP2)) { @@ -814,14 +814,14 @@ internal class CStage選曲 : CStage { OpenTaiko.Skin.soundChangeSFX.tPlay(); CUtility.ToggleBoolian(ref OpenTaiko.ConfigIni.bAutoPlay[1]); } - } + } #endregion #region [ F5 Super Hard Mode (DEPRECATED / UNUSED) ] - if (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.F5)) { - // Deprecated, to delete + if (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.F5)) { + // Deprecated, to delete OpenTaiko.Skin.soundChangeSFX.tPlay(); CUtility.ToggleBoolian(ref OpenTaiko.ConfigIni.bSuperHard); - } + } #endregion #region [ F7 TokkunMode ] if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.ToggleTrainingMode)) { @@ -829,24 +829,24 @@ internal class CStage選曲 : CStage { OpenTaiko.Skin.soundChangeSFX.tPlay(); CUtility.ToggleBoolian(ref OpenTaiko.ConfigIni.bTokkunMode); } - } + } #endregion #region [ F9 New Heya ] if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.NewHeya)) { actNewHeya.Open(); - } + } #endregion - + if (this.actSongList.rCurrentlySelectedSong != null) { if (this.actSongList.ctBoxOpen.IsEnded || this.actSongList.ctBoxOpen.CurrentValue == 0) { - if (!this.bCurrentlyScrolling) { + if (!this.bCurrentlyScrolling) { #region [ Decide ] if ((OpenTaiko.Pad.bPressedDGB(EPad.Decide) || ((OpenTaiko.ConfigIni.bEnterIsNotUsedInKeyAssignments && OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Return))))) { if (this.actSongList.rCurrentlySelectedSong != null) { - switch (this.actSongList.rCurrentlySelectedSong.eノード種別) { + switch (this.actSongList.rCurrentlySelectedSong.nodeType) { case CSongListNode.ENodeType.SCORE: { var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(this.rNowSelectedSong); @@ -869,10 +869,10 @@ internal class CStage選曲 : CStage { DBSaves.RegisterStringUnlockedAsset( OpenTaiko.SaveFileInstances[OpenTaiko.SaveFile].data.SaveId, "unlocked_songs", - this.rNowSelectedSong?.tGetUniqueId() ?? "" // Can't be null in this context + this.rNowSelectedSong?.tGetUniqueId() ?? "" // Can't be null in this context ); - OpenTaiko.SaveFileInstances[OpenTaiko.SaveFile].tSpendCoins(SongToUnlock.unlockConditions.Values[0]); - // Play modal animation here ? + OpenTaiko.SaveFileInstances[OpenTaiko.SaveFile].tSpendCoins(SongToUnlock.unlockConditions.Values[0]); + // Play modal animation here ? } else OpenTaiko.Skin.soundError.tPlay(); } else { @@ -880,10 +880,10 @@ internal class CStage選曲 : CStage { } } else { if (this.n現在選択中の曲の難易度 >= (int)Difficulty.Tower) { - if (OpenTaiko.ConfigIni.nPlayerCount == 1 && !OpenTaiko.ConfigIni.bTokkunMode) { - // Init tower variables + if (OpenTaiko.ConfigIni.nPlayerCount == 1 && !OpenTaiko.ConfigIni.bTokkunMode) { + // Init tower variables if (this.n現在選択中の曲の難易度 == (int)Difficulty.Tower) - CFloorManagement.reinitialize(this.rNowSelectedSong.arスコア[(int)Difficulty.Tower].譜面情報.nLife); + CFloorManagement.reinitialize(this.rNowSelectedSong.score[(int)Difficulty.Tower].譜面情報.nLife); OpenTaiko.Skin.soundDecideSFX.tPlay(); OpenTaiko.Skin.voiceMenuSongDecide[OpenTaiko.SaveFile]?.tPlay(); @@ -892,84 +892,84 @@ internal class CStage選曲 : CStage { } else { OpenTaiko.Skin.soundError.tPlay(); } - } else { - // Called here + } else { + // Called here OpenTaiko.Skin.soundDecideSFX.tPlay(); this.actDifficultySelectionScreen.bIsDifficltSelect = true; this.actDifficultySelectionScreen.t選択画面初期化(); this.actSongList.ctBarFlash.Start(0, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); - this.actSongList.ctDifficultyIn.Start(0, 3200, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + this.actSongList.ctDifficultyIn.Start(0, 3200, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); } } } break; - case CSongListNode.ENodeType.BOX: { - + case CSongListNode.ENodeType.BOX: { + #region [Pre-generated folders] - - if (this.actSongList.rCurrentlySelectedSong.strジャンル == "Favorite") { - this.actSongList.rCurrentlySelectedSong.list子リスト = CSongDict.tFetchFavoriteFolder(this.actSongList.rCurrentlySelectedSong); - } else if (this.actSongList.rCurrentlySelectedSong.strジャンル == "最近遊んだ曲") { - this.actSongList.rCurrentlySelectedSong.list子リスト = CSongDict.tFetchRecentlyPlayedSongsFolder(this.actSongList.rCurrentlySelectedSong); - } else if (this.actSongList.rCurrentlySelectedSong.strジャンル == "SearchD") { + + if (this.actSongList.rCurrentlySelectedSong.songGenre == "Favorite") { + this.actSongList.rCurrentlySelectedSong.childrenList = CSongDict.tFetchFavoriteFolder(this.actSongList.rCurrentlySelectedSong); + } else if (this.actSongList.rCurrentlySelectedSong.songGenre == "最近遊んだ曲") { + this.actSongList.rCurrentlySelectedSong.childrenList = CSongDict.tFetchRecentlyPlayedSongsFolder(this.actSongList.rCurrentlySelectedSong); + } else if (this.actSongList.rCurrentlySelectedSong.songGenre == "SearchD") { this.actSongList.tMenuContextTrigger(eMenuContext.SearchByDifficulty); OpenTaiko.Skin.soundDecideSFX.tPlay(); - goto Decided; - //this.act曲リスト.r現在選択中の曲.list子リスト = CSongDict.tFetchSongsByDifficulty(this.act曲リスト.r現在選択中の曲, (int)Difficulty.Oni, 8); - } - + goto Decided; + //this.act曲リスト.r現在選択中の曲.list子リスト = CSongDict.tFetchSongsByDifficulty(this.act曲リスト.r現在選択中の曲, (int)Difficulty.Oni, 8); + } + #endregion - + CSongSelectSongManager.disable(); OpenTaiko.Skin.soundDecideSFX.tPlay(); this.actSongList.ctBarFlash.Start(0, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); this.actSongList.ctBoxOpen.Start(200, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval * 1.3f, OpenTaiko.Timer); - this.actSongList.bBoxOpen = true; - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + this.actSongList.bBoxOpen = true; + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); } break; - case CSongListNode.ENodeType.BACKBOX: { - // TOJIRU + case CSongListNode.ENodeType.BACKBOX: { + // TOJIRU CSongSelectSongManager.enable(); OpenTaiko.Skin.soundCancelSFX.tPlay(); this.actSongList.ctBarFlash.Start(0, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); this.actSongList.ctBoxOpen.Start(200, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval * 1.3f, OpenTaiko.Timer); - this.actSongList.bBoxClose = true; - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + this.actSongList.bBoxClose = true; + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); } break; case CSongListNode.ENodeType.RANDOM: { - this.tSetSongRandomly(); - - // Called here + this.tSetSongRandomly(); + + // Called here OpenTaiko.Skin.soundDecideSFX.tPlay(); this.actDifficultySelectionScreen.bIsDifficltSelect = true; this.actDifficultySelectionScreen.t選択画面初期化(); this.actSongList.ctBarFlash.Start(0, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); - this.actSongList.ctDifficultyIn.Start(0, 3200, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); - - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); - CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); - + this.actSongList.ctDifficultyIn.Start(0, 3200, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); + + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); + /* TJAPlayer3.Skin.sound決定音.t再生する(); this.act曲リスト.tMenuContextTrigger(eMenuContext.Random); goto Decided; - */ - + */ + /* this.t曲をランダム選択する(); //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); - */ + */ } break; } @@ -977,13 +977,13 @@ internal class CStage選曲 : CStage { goto Decided; } - } + } #endregion - - } - + + } + #region [ Favorite ] - + if (!this.bCurrentlyScrolling) { var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(this.rNowSelectedSong); @@ -995,50 +995,50 @@ internal class CStage選曲 : CStage { OpenTaiko.Favorites.tToggleFavorite(csu.data.id); } } - } - + } + #endregion - + #region [ Up ] if (!this.bCurrentlyScrolling) { - this.ctキー反復用.Up.KeyIntervalFunc(OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.LeftArrow), new CCounter.KeyProcess(this.tカーソルを上へ移動する)); - //this.ctキー反復用.Up.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.UpArrow ) || CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.LeftArrow ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) ); + this.ctキー反復用.Up.KeyIntervalFunc(OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.LeftArrow), new CCounter.KeyProcess(this.tカーソルを上へ移動する)); + //this.ctキー反復用.Up.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.UpArrow ) || CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.LeftArrow ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) ); if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LeftChange)) { this.tカーソルを上へ移動する(); } } else { - if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LeftChange)) { - //this.ctChara_Jump[0].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); - //this.ctChara_Jump[1].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); + if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LeftChange)) { + //this.ctChara_Jump[0].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); + //this.ctChara_Jump[1].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); for (int i = 0; i < 7; i++) tカーソルスキップ(true); } - } + } #endregion - + #region [ Down ] if (!this.bCurrentlyScrolling) { - this.ctキー反復用.Down.KeyIntervalFunc(OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.RightArrow), new CCounter.KeyProcess(this.tカーソルを下へ移動する)); - //this.ctキー反復用.Down.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.DownArrow ) || CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.RightArrow ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) ); - + this.ctキー反復用.Down.KeyIntervalFunc(OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.RightArrow), new CCounter.KeyProcess(this.tカーソルを下へ移動する)); + //this.ctキー反復用.Down.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.DownArrow ) || CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.RightArrow ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) ); + if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RightChange)) { this.tカーソルを下へ移動する(); } } else { - if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RightChange)) { - //this.ctChara_Jump[0].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); - //this.ctChara_Jump[1].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); + if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RightChange)) { + //this.ctChara_Jump[0].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); + //this.ctChara_Jump[1].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); for (int i = 0; i < 7; i++) tカーソルスキップ(false); } - } + } #endregion - + Decided:; - } + } #region [ Upstairs ] /* if (((this.actSongList.rCurrentlySelectedSong != null) && (this.actSongList.rCurrentlySelectedSong.rParentNode != null)) && (TJAPlayer3.Pad.bPressed(EInstrumentPad.DRUMS, EPad.FT) || TJAPlayer3.Pad.bPressedGB(EPad.Cancel))) @@ -1048,16 +1048,16 @@ internal class CStage選曲 : CStage { this.actSongList.tCloseBOX(); this.tNotifySelectedSongChange(); } - */ + */ #endregion #region [ BDx2: 簡易CONFIG ] if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.SortSongs)) { OpenTaiko.Skin.soundChangeSFX.tPlay(); this.actSortSongs.tActivatePopupMenu(EInstrumentPad.Drums, ref this.actSongList); - } + } #endregion #region [ HHx2: 難易度変更 ] - if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.HH) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.HHO)) { // [HH]x2 難易度変更 + if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.HH) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.HHO)) { // [HH]x2 難易度変更 CommandHistory.Add(EInstrumentPad.Drums, EPadFlag.HH); EPadFlag[] comChangeDifficulty = new EPadFlag[] { EPadFlag.HH, EPadFlag.HH }; if (CommandHistory.CheckCommand(comChangeDifficulty, EInstrumentPad.Drums)) { @@ -1065,34 +1065,34 @@ internal class CStage選曲 : CStage { this.actSongList.t難易度レベルをひとつ進める(); OpenTaiko.Skin.soundChangeSFX.tPlay(); } - } + } #endregion } - } - - - - + } + + + + #region [ Minus & Equals Sound Group Level ] KeyboardSoundGroupLevelControlHandler.Handle( - OpenTaiko.InputManager.Keyboard, OpenTaiko.SoundGroupLevelController, OpenTaiko.Skin, true); + OpenTaiko.InputManager.Keyboard, OpenTaiko.SoundGroupLevelController, OpenTaiko.Skin, true); #endregion - + this.actSortSongs.t進行描画(); this.actQuickConfig.t進行描画(); - } - + } + #endregion - - //------------------------------ + + //------------------------------ if (this.actDifficultySelectionScreen.bIsDifficltSelect) { if (this.actSongList.ctDifficultyIn.CurrentValue >= 1255) { this.actDifficultySelectionScreen.Draw(); } - } - //------------------------------ - - + } + //------------------------------ + + if (OpenTaiko.ConfigIni.nPlayerCount == 1) { var opacity = 0; @@ -1109,15 +1109,15 @@ internal class CStage選曲 : CStage { } for (int i = 0; i < 5; i++) { - CCounter ___cs = CMenuCharacter._getReferenceCounter(CMenuCharacter.ECharacterAnimation.START)[i]; - - //if (this.ctChara_Jump[i].n現在の値 >= this.ctChara_Jump[i].n終了値) - if (___cs != null && ___cs.CurrentValue >= ___cs.EndValue) { - //this.ctChara_Jump[i].t停止(); + CCounter ___cs = CMenuCharacter._getReferenceCounter(CMenuCharacter.ECharacterAnimation.START)[i]; + + //if (this.ctChara_Jump[i].n現在の値 >= this.ctChara_Jump[i].n終了値) + if (___cs != null && ___cs.CurrentValue >= ___cs.EndValue) { + //this.ctChara_Jump[i].t停止(); ___cs.Stop(); - if (!this.actDifficultySelectionScreen.bIsDifficltSelect) { - //this.ctChara_Jump[i].n現在の値 = 0; + if (!this.actDifficultySelectionScreen.bIsDifficltSelect) { + //this.ctChara_Jump[i].n現在の値 = 0; ___cs.CurrentValue = 0; } } @@ -1166,13 +1166,13 @@ internal class CStage選曲 : CStage { オプション呼び出し, コンフィグ呼び出し, スキン変更 - } - - - // その他 - + } + + + // その他 + #region [ private ] - //----------------- + //----------------- [StructLayout(LayoutKind.Sequential)] private struct STキー反復用カウンタ { public CCounter Up; @@ -1216,8 +1216,8 @@ internal class CStage選曲 : CStage { public bool OldUseGenre; private CActSelectArtistComment actArtistComment; private CActFIFOBlack actFIFO; - private CActFIFOBlack actFIfrom結果画面; - //private CActFIFOBlack actFOtoNowLoading; + private CActFIFOBlack actFIfrom結果画面; + //private CActFIFOBlack actFOtoNowLoading; public CActFIFOStart actFOtoNowLoading; private CActSelectInformation actInformation; public CActSelectPreimageパネル actPreimageパネル; @@ -1241,12 +1241,12 @@ internal class CStage選曲 : CStage { private ScriptBG AI_Background; private const int MaxSong = 3; - public int NowSong = 1; - - //private CCounter ctChara_Normal; - //private CCounter ctChara_Select; - //public CCounter[] ctChara_Jump = new CCounter[2]; - + public int NowSong = 1; + + //private CCounter ctChara_Normal; + //private CCounter ctChara_Select; + //public CCounter[] ctChara_Jump = new CCounter[2]; + public PuchiChara PuchiChara; private string nGenreBack; @@ -1258,14 +1258,14 @@ internal class CStage選曲 : CStage { private CCounter ctOldBGScroll; private CCounter ct背景スクロール用タイマー; private E戻り値 eフェードアウト完了時の戻り値; - private CCachedFontRenderer ftフォント; - //private CTexture tx下部パネル; - //private CTexture tx上部パネル; - //private CTexture tx背景; - // private CTexture[] txジャンル別背景 = new CTexture[9]; - // private CTexture[] tx難易度別背景 = new CTexture[5]; - // private CTexture tx難易度名; - // private CTexture tx下部テキスト; + private CCachedFontRenderer ftフォント; + //private CTexture tx下部パネル; + //private CTexture tx上部パネル; + //private CTexture tx背景; + // private CTexture[] txジャンル別背景 = new CTexture[9]; + // private CTexture[] tx難易度別背景 = new CTexture[5]; + // private CTexture tx難易度名; + // private CTexture tx下部テキスト; private CCounter ctDiffSelect移動待ち; private STNumber[] stSongNumber = new STNumber[10]; @@ -1275,18 +1275,18 @@ internal class CStage選曲 : CStage { public char ch; public Point pt; } - private struct STCommandTime // #24063 2011.1.16 yyagi コマンド入力時刻の記録用 + private struct STCommandTime // #24063 2011.1.16 yyagi コマンド入力時刻の記録用 { - public EInstrumentPad eInst; // 使用楽器 - public EPadFlag ePad; // 押されたコマンド(同時押しはOR演算で列挙する) - public long time; // コマンド入力時刻 - } - + public EInstrumentPad eInst; // 使用楽器 + public EPadFlag ePad; // 押されたコマンド(同時押しはOR演算で列挙する) + public long time; // コマンド入力時刻 + } + /* private Point[] ptBoardNumber = { new Point(72, 283), new Point(135, 283), new Point(200, 283), new Point(72, 258), new Point(135, 258), new Point(200, 258), new Point(200, 233), new Point(72, 311), new Point(135, 311), new Point(200, 311), new Point(84, 360), new Point(124, 416) }; - */ - + */ + private CTexture txCustomSelectBG; private CTexture txCustomPrevSelectBG; private CTexture txGenreBack { @@ -1336,9 +1336,9 @@ internal class CStage選曲 : CStage { } } - private void tTimerDraw(int num) { - //int x = 1171, y = 57; - + private void tTimerDraw(int num) { + //int x = 1171, y = 57; + int[] nums = CConversion.SeparateDigits(num); for (int j = 0; j < nums.Length; j++) { @@ -1357,16 +1357,16 @@ internal class CStage選曲 : CStage { - private class CCommandHistory // #24063 2011.1.16 yyagi コマンド入力履歴を保持_確認するクラス + private class CCommandHistory // #24063 2011.1.16 yyagi コマンド入力履歴を保持_確認するクラス { readonly int buffersize = 16; private List stct; - public CCommandHistory() // コンストラクタ + public CCommandHistory() // コンストラクタ { stct = new List(buffersize); - } - + } + /// /// コマンド入力履歴へのコマンド追加 /// @@ -1382,13 +1382,13 @@ internal class CStage選曲 : CStage { if (stct.Count >= buffersize) { stct.RemoveAt(0); } - stct.Add(_stct); - //Debug.WriteLine( "CMDHIS: 楽器=" + _stct.eInst + ", CMD=" + _stct.ePad + ", time=" + _stct.time ); + stct.Add(_stct); + //Debug.WriteLine( "CMDHIS: 楽器=" + _stct.eInst + ", CMD=" + _stct.ePad + ", time=" + _stct.time ); } public void RemoveAt(int index) { stct.RemoveAt(index); - } - + } + /// /// コマンド入力に成功しているか調べる /// @@ -1398,42 +1398,42 @@ internal class CStage選曲 : CStage { public bool CheckCommand(EPadFlag[] _ePad, EInstrumentPad _eInst) { int targetCount = _ePad.Length; int stciCount = stct.Count; - if (stciCount < targetCount) { - //Debug.WriteLine("NOT start checking...stciCount=" + stciCount + ", targetCount=" + targetCount); + if (stciCount < targetCount) { + //Debug.WriteLine("NOT start checking...stciCount=" + stciCount + ", targetCount=" + targetCount); return false; } - long curTime = OpenTaiko.Timer.NowTime; - //Debug.WriteLine("Start checking...targetCount=" + targetCount); + long curTime = OpenTaiko.Timer.NowTime; + //Debug.WriteLine("Start checking...targetCount=" + targetCount); for (int i = targetCount - 1, j = stciCount - 1; i >= 0; i--, j--) { - if (_ePad[i] != stct[j].ePad) { - //Debug.WriteLine( "CMD解析: false targetCount=" + targetCount + ", i=" + i + ", j=" + j + ": ePad[]=" + _ePad[i] + ", stci[j] = " + stct[j].ePad ); + if (_ePad[i] != stct[j].ePad) { + //Debug.WriteLine( "CMD解析: false targetCount=" + targetCount + ", i=" + i + ", j=" + j + ": ePad[]=" + _ePad[i] + ", stci[j] = " + stct[j].ePad ); return false; } - if (stct[j].eInst != _eInst) { - //Debug.WriteLine( "CMD解析: false " + i ); + if (stct[j].eInst != _eInst) { + //Debug.WriteLine( "CMD解析: false " + i ); return false; } - if (curTime - stct[j].time > 500) { - //Debug.WriteLine( "CMD解析: false " + i + "; over 500ms" ); + if (curTime - stct[j].time > 500) { + //Debug.WriteLine( "CMD解析: false " + i + "; over 500ms" ); return false; } curTime = stct[j].time; - } - - //Debug.Write( "CMD解析: 成功!(" + _ePad.Length + ") " ); - //for ( int i = 0; i < _ePad.Length; i++ ) Debug.Write( _ePad[ i ] + ", " ); - //Debug.WriteLine( "" ); - //stct.RemoveRange( 0, targetCount ); // #24396 2011.2.13 yyagi - stct.Clear(); // #24396 2011.2.13 yyagi Clear all command input history in case you succeeded inputting some command - + } + + //Debug.Write( "CMD解析: 成功!(" + _ePad.Length + ") " ); + //for ( int i = 0; i < _ePad.Length; i++ ) Debug.Write( _ePad[ i ] + ", " ); + //Debug.WriteLine( "" ); + //stct.RemoveRange( 0, targetCount ); // #24396 2011.2.13 yyagi + stct.Clear(); // #24396 2011.2.13 yyagi Clear all command input history in case you succeeded inputting some command + return true; } } private CCommandHistory CommandHistory; private void tカーソルを下へ移動する() { - if ((this.actSongList.rGetSideSong(1).eノード種別 == CSongListNode.ENodeType.SCORE) || this.actSongList.rGetSideSong(1).eノード種別 == CSongListNode.ENodeType.BACKBOX) { + if ((this.actSongList.rGetSideSong(1).nodeType == CSongListNode.ENodeType.SCORE) || this.actSongList.rGetSideSong(1).nodeType == CSongListNode.ENodeType.BACKBOX) { OpenTaiko.stageSongSelect.bBGMIn再生した = false; CSongSelectSongManager.disable(); @@ -1443,7 +1443,7 @@ internal class CStage選曲 : CStage { } this.ctBackgroundFade.Start(0, 600, 1, OpenTaiko.Timer); if (this.actSongList.ctBarOpen.CurrentValue >= 200 || this.ctBackgroundFade.CurrentValue >= 600 - 255) { - OpenTaiko.stageSongSelect.OldGenre = this.rNowSelectedSong.strジャンル; + OpenTaiko.stageSongSelect.OldGenre = this.rNowSelectedSong.songGenre; OpenTaiko.stageSongSelect.OldUseGenre = !this.rNowSelectedSong.isChangedBgType; OpenTaiko.stageSongSelect.OldBg = this.rNowSelectedSong.BgType; OpenTaiko.stageSongSelect.OldBgColor = this.rNowSelectedSong.BgColor; @@ -1453,7 +1453,7 @@ internal class CStage選曲 : CStage { OpenTaiko.Skin.soundカーソル移動音.tPlay(); } private void tカーソルを上へ移動する() { - if ((this.actSongList.rGetSideSong(-1).eノード種別 == CSongListNode.ENodeType.SCORE) || this.actSongList.rGetSideSong(-1).eノード種別 == CSongListNode.ENodeType.BACKBOX) { + if ((this.actSongList.rGetSideSong(-1).nodeType == CSongListNode.ENodeType.SCORE) || this.actSongList.rGetSideSong(-1).nodeType == CSongListNode.ENodeType.BACKBOX) { OpenTaiko.stageSongSelect.bBGMIn再生した = false; CSongSelectSongManager.disable(); @@ -1464,7 +1464,7 @@ internal class CStage選曲 : CStage { this.ctBackgroundFade.Start(0, 600, 1, OpenTaiko.Timer); if (this.actSongList.ctBarOpen.CurrentValue >= 200 || this.ctBackgroundFade.CurrentValue >= 600 - 255) { - OpenTaiko.stageSongSelect.OldGenre = this.rNowSelectedSong.strジャンル; + OpenTaiko.stageSongSelect.OldGenre = this.rNowSelectedSong.songGenre; OpenTaiko.stageSongSelect.OldUseGenre = !this.rNowSelectedSong.isChangedBgType; OpenTaiko.stageSongSelect.OldBg = this.rNowSelectedSong.BgType; OpenTaiko.stageSongSelect.OldBgColor = this.rNowSelectedSong.BgColor; @@ -1476,7 +1476,7 @@ internal class CStage選曲 : CStage { private void tカーソルスキップ(bool Up) { this.ctBackgroundFade.Start(0, 600, 1, OpenTaiko.Timer); if (this.actSongList.ctBarOpen.CurrentValue >= 200 || this.ctBackgroundFade.CurrentValue >= 600 - 255) { - OpenTaiko.stageSongSelect.OldGenre = this.rNowSelectedSong.strジャンル; + OpenTaiko.stageSongSelect.OldGenre = this.rNowSelectedSong.songGenre; OpenTaiko.stageSongSelect.OldUseGenre = !this.rNowSelectedSong.isChangedBgType; OpenTaiko.stageSongSelect.OldBg = this.rNowSelectedSong.BgType; OpenTaiko.stageSongSelect.OldBgColor = this.rNowSelectedSong.BgColor; @@ -1497,7 +1497,7 @@ internal class CStage選曲 : CStage { if (contextDiff < (int)Difficulty.Oni) return contextDiff; else if (contextDiff == (int)Difficulty.Oni) { - var score = song.arスコア[baseDiff]; + var score = song.score[baseDiff]; if (score.譜面情報.nレベル[(int)Difficulty.Oni] >= 0 && score.譜面情報.nレベル[(int)Difficulty.Edit] >= 0) return (new Random().Next(0, 2) == 0 ? (int)Difficulty.Oni : (int)Difficulty.Edit); return (int)Difficulty.Oni; @@ -1509,10 +1509,10 @@ internal class CStage選曲 : CStage { private void tSetSongRandomly() { var usedDiffs = new int[] { -1, -1, -1, -1, -1 }; - var mandatoryDiffs = new List(); - + var mandatoryDiffs = new List(); + #region [Fetch context informations] - + if (this.actSongList.latestContext == eMenuContext.Random) { for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) { var diff = this.actSongList.tMenuContextGetVar(i); @@ -1520,14 +1520,14 @@ internal class CStage選曲 : CStage { if (!mandatoryDiffs.Contains(diff)) mandatoryDiffs.Add(diff); } - } - + } + #endregion - + CSongListNode song = this.actSongList.rCurrentlySelectedSong; - song.listランダム用ノードリスト = this.t指定された曲が存在する場所の曲を列挙する_子リスト含む(song, ref mandatoryDiffs); - int selectableSongCount = song.listランダム用ノードリスト.Count; + song.randomList = this.t指定された曲が存在する場所の曲を列挙する_子リスト含む(song, ref mandatoryDiffs); + int selectableSongCount = song.randomList.Count; if (selectableSongCount == 0) { return; @@ -1539,10 +1539,10 @@ internal class CStage選曲 : CStage { StringBuilder builder = new StringBuilder(0x400); builder.Append(string.Format("Total number of songs to randomly choose from {0}. Randomly selected index {0}.", selectableSongCount, randomSongIndex)); Trace.TraceInformation(builder.ToString()); - } - - // Third assignment - this.rNowSelectedSong = song.listランダム用ノードリスト[randomSongIndex]; + } + + // Third assignment + this.rNowSelectedSong = song.randomList[randomSongIndex]; actSongList.t現在選択中の曲を元に曲バーを再構成する(); actSongList.t選択曲が変更された(false); @@ -1551,52 +1551,52 @@ internal class CStage選曲 : CStage { actSongList.tバーの初期化(); tNotifySelectedSongChange(); } - private void t曲を選択する() { - // First assignation + private void t曲を選択する() { + // First assignation this.rChoosenSong = this.actSongList.rCurrentlySelectedSong; this.r確定されたスコア = this.actSongList.r現在選択中のスコア; this.nChoosenSongDifficulty[0] = this.actSongList.n現在選択中の曲の現在の難易度レベル; - this.str確定された曲のジャンル = this.rChoosenSong.strジャンル; + this.str確定された曲のジャンル = this.rChoosenSong.songGenre; if ((this.rChoosenSong != null) && (this.r確定されたスコア != null)) { this.eフェードアウト完了時の戻り値 = E戻り値.選曲した; - this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 + this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 base.ePhaseID = CStage.EPhase.SongSelect_FadeOutToNowLoading; - } - // TJAPlayer3.Skin.bgm選曲画面.t停止する(); + } + // TJAPlayer3.Skin.bgm選曲画面.t停止する(); CSongSelectSongManager.stopSong(); } - public void t曲を選択する(int nCurrentLevel, int player) { - // Second assignation + public void t曲を選択する(int nCurrentLevel, int player) { + // Second assignation this.rChoosenSong = this.actSongList.rCurrentlySelectedSong; this.r確定されたスコア = this.actSongList.r現在選択中のスコア; this.nChoosenSongDifficulty[player] = nCurrentLevel; - this.str確定された曲のジャンル = this.rChoosenSong.strジャンル; + this.str確定された曲のジャンル = this.rChoosenSong.songGenre; if ((this.rChoosenSong != null) && (this.r確定されたスコア != null)) { this.eフェードアウト完了時の戻り値 = E戻り値.選曲した; - this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 + this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 base.ePhaseID = CStage.EPhase.SongSelect_FadeOutToNowLoading; - } - - // TJAPlayer3.Skin.bgm選曲画面.t停止する(); + } + + // TJAPlayer3.Skin.bgm選曲画面.t停止する(); CSongSelectSongManager.stopSong(); - } - - // Foreach randomly selectable songs + } + + // Foreach randomly selectable songs private List t指定された曲が存在する場所の曲を列挙する_子リスト含む(CSongListNode song, ref List mandatory) { List list = new List(); song = song.rParentNode; if ((song == null) && (OpenTaiko.Songs管理.list曲ルート.Count > 0)) { foreach (CSongListNode c曲リストノード in OpenTaiko.Songs管理.list曲ルート) { - if ((c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE) || (c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE_MIDI)) { - // Don't add Dan/Tower charts for Random + if ((c曲リストノード.nodeType == CSongListNode.ENodeType.SCORE) || (c曲リストノード.nodeType == CSongListNode.ENodeType.SCORE_MIDI)) { + // Don't add Dan/Tower charts for Random int diff = this.actSongList.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(c曲リストノード); - if (diff < (int)Difficulty.Tower) { - // Check if mandatory diffs are present - var score = c曲リストノード.arスコア[diff]; + if (diff < (int)Difficulty.Tower) { + // Check if mandatory diffs are present + var score = c曲リストノード.score[diff]; bool requiredDiffsExist = true; foreach (int df in mandatory) { if (score.譜面情報.nレベル[df] < 0) { @@ -1613,7 +1613,7 @@ internal class CStage選曲 : CStage { } } - if ((c曲リストノード.list子リスト != null) && OpenTaiko.ConfigIni.bIncludeSubfoldersOnRandomSelect) { + if ((c曲リストノード.childrenList != null) && OpenTaiko.ConfigIni.bIncludeSubfoldersOnRandomSelect) { this.t指定された曲の子リストの曲を列挙する_孫リスト含む(c曲リストノード, ref list, ref mandatory); } } @@ -1624,15 +1624,15 @@ internal class CStage選曲 : CStage { } public void t指定された曲の子リストの曲を列挙する_孫リスト含む(CSongListNode r親, ref List list, ref List mandatory, bool dan = false, Difficulty difficulty = Difficulty.Dan) { - if ((r親 != null) && (r親.list子リスト != null)) { - foreach (CSongListNode c曲リストノード in r親.list子リスト) { - if ((c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE) || (c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE_MIDI)) { - // Don't add Dan/Tower charts for Random + if ((r親 != null) && (r親.childrenList != null)) { + foreach (CSongListNode c曲リストノード in r親.childrenList) { + if ((c曲リストノード.nodeType == CSongListNode.ENodeType.SCORE) || (c曲リストノード.nodeType == CSongListNode.ENodeType.SCORE_MIDI)) { + // Don't add Dan/Tower charts for Random int diff = this.actSongList.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(c曲リストノード); - if (dan ? diff == (int)difficulty : diff < (int)Difficulty.Tower) { - // Check if mandatory diffs are present - var score = c曲リストノード.arスコア[diff]; + if (dan ? diff == (int)difficulty : diff < (int)Difficulty.Tower) { + // Check if mandatory diffs are present + var score = c曲リストノード.score[diff]; bool requiredDiffsExist = true; foreach (int df in mandatory) { if (score.譜面情報.nレベル[df] < 0) { @@ -1648,13 +1648,13 @@ internal class CStage選曲 : CStage { } } - if ((c曲リストノード.list子リスト != null) && OpenTaiko.ConfigIni.bIncludeSubfoldersOnRandomSelect) { + if ((c曲リストノード.childrenList != null) && OpenTaiko.ConfigIni.bIncludeSubfoldersOnRandomSelect) { this.t指定された曲の子リストの曲を列挙する_孫リスト含む(c曲リストノード, ref list, ref mandatory, dan, difficulty); } } } - } - - //----------------- + } + + //----------------- #endregion } diff --git a/OpenTaiko/src/Stages/06.SongLoading/CStage曲読み込み.cs b/OpenTaiko/src/Stages/06.SongLoading/CStage曲読み込み.cs index 2339e777..eb58fbd5 100644 --- a/OpenTaiko/src/Stages/06.SongLoading/CStage曲読み込み.cs +++ b/OpenTaiko/src/Stages/06.SongLoading/CStage曲読み込み.cs @@ -134,7 +134,7 @@ internal class CStage曲読み込み : CStage { #region [ 初めての進行描画 ] //----------------------------- if (base.IsFirstDraw) { - Cスコア cスコア1 = OpenTaiko.stageSongSelect.r確定されたスコア; + CScore cスコア1 = OpenTaiko.stageSongSelect.r確定されたスコア; if (this.sd読み込み音 != null) { if (OpenTaiko.Skin.sound曲読込開始音.bExclusive && (CSkin.CSystemSound.r最後に再生した排他システムサウンド != null)) { CSkin.CSystemSound.r最後に再生した排他システムサウンド.tStop(); @@ -259,7 +259,7 @@ internal class CStage曲読み込み : CStage { int xFactor = 0; float yFactor = 1f; - int currentTowerType = Array.IndexOf(OpenTaiko.Skin.Game_Tower_Names, OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTowerType); + int currentTowerType = Array.IndexOf(OpenTaiko.Skin.Game_Tower_Names, OpenTaiko.stageSongSelect.rChoosenSong.score[5].譜面情報.nTowerType); if (currentTowerType < 0 || currentTowerType >= OpenTaiko.Skin.Game_Tower_Ptn) currentTowerType = 0; diff --git a/OpenTaiko/src/Stages/07.Game/CStage演奏画面共通.cs b/OpenTaiko/src/Stages/07.Game/CStage演奏画面共通.cs index 0694edba..0c373355 100644 --- a/OpenTaiko/src/Stages/07.Game/CStage演奏画面共通.cs +++ b/OpenTaiko/src/Stages/07.Game/CStage演奏画面共通.cs @@ -2847,7 +2847,7 @@ internal abstract class CStage演奏画面共通 : CStage { var panelString = string.IsNullOrEmpty(OpenTaiko.DTX.PANEL) ? OpenTaiko.DTX.TITLE.GetString("") : OpenTaiko.DTX.PANEL; this.actPanel.SetPanelString(panelString, - OpenTaiko.stageSongSelect.rChoosenSong.str本当のジャンル, + OpenTaiko.stageSongSelect.rChoosenSong.songGenrePanel, OpenTaiko.Skin.Game_StageText, songNode: OpenTaiko.stageSongSelect.rChoosenSong); } diff --git a/OpenTaiko/src/Stages/07.Game/Taiko/CActImplBackground.cs b/OpenTaiko/src/Stages/07.Game/Taiko/CActImplBackground.cs index 6342b829..535221aa 100644 --- a/OpenTaiko/src/Stages/07.Game/Taiko/CActImplBackground.cs +++ b/OpenTaiko/src/Stages/07.Game/Taiko/CActImplBackground.cs @@ -215,7 +215,7 @@ internal class CActImplBackground : CActivity { this.bFloorChanged = CFloorManagement.LastRegisteredFloor > 0 && (CFloorManagement.LastRegisteredFloor < OpenTaiko.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] + 1); - int maxFloor = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTotalFloor; + int maxFloor = OpenTaiko.stageSongSelect.rChoosenSong.score[5].譜面情報.nTotalFloor; int nightTime = Math.Max(140, maxFloor / 2); currentFloorPositionMax140 = Math.Min(OpenTaiko.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] / (float)nightTime, 1f); @@ -316,13 +316,13 @@ internal class CActImplBackground : CActivity { if (OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower) { - int maxFloor = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTotalFloor; + int maxFloor = OpenTaiko.stageSongSelect.rChoosenSong.score[5].譜面情報.nTotalFloor; OpenTaiko.actTextConsole.Print(0, 0, CTextConsole.EFontType.White, maxFloor.ToString()); int nightTime = Math.Max(140, maxFloor / 2); - int currentTowerType = Array.IndexOf(OpenTaiko.Skin.Game_Tower_Names, OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTowerType); + int currentTowerType = Array.IndexOf(OpenTaiko.Skin.Game_Tower_Names, OpenTaiko.stageSongSelect.rChoosenSong.score[5].譜面情報.nTowerType); if (currentTowerType < 0 || currentTowerType >= OpenTaiko.Skin.Game_Tower_Ptn) currentTowerType = 0; diff --git a/OpenTaiko/src/Stages/07.Game/Taiko/CActImplScoreRank.cs b/OpenTaiko/src/Stages/07.Game/Taiko/CActImplScoreRank.cs index 066d318d..debcb5e5 100644 --- a/OpenTaiko/src/Stages/07.Game/Taiko/CActImplScoreRank.cs +++ b/OpenTaiko/src/Stages/07.Game/Taiko/CActImplScoreRank.cs @@ -178,7 +178,7 @@ class CActImplScoreRank : CActivity { } else if (OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower) { #region [Tower score ranks] - double progress = CFloorManagement.LastRegisteredFloor / ((double)OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTotalFloor); + double progress = CFloorManagement.LastRegisteredFloor / ((double)OpenTaiko.stageSongSelect.rChoosenSong.score[5].譜面情報.nTotalFloor); bool[] conditions = { diff --git a/OpenTaiko/src/Stages/07.Game/Taiko/EndAnimeScript.cs b/OpenTaiko/src/Stages/07.Game/Taiko/EndAnimeScript.cs index f4a2208b..cb946763 100644 --- a/OpenTaiko/src/Stages/07.Game/Taiko/EndAnimeScript.cs +++ b/OpenTaiko/src/Stages/07.Game/Taiko/EndAnimeScript.cs @@ -29,8 +29,8 @@ class EndAnimeScript : ScriptBG { try { float currentFloorPositionMax140 = 0; - if (OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5] != null) { - int maxFloor = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTotalFloor; + if (OpenTaiko.stageSongSelect.rChoosenSong.score[5] != null) { + int maxFloor = OpenTaiko.stageSongSelect.rChoosenSong.score[5].譜面情報.nTotalFloor; int nightTime = Math.Max(140, maxFloor / 2); currentFloorPositionMax140 = Math.Min(OpenTaiko.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] / (float)nightTime, 1f); diff --git a/OpenTaiko/src/Stages/07.Game/Taiko/ScriptBG.cs b/OpenTaiko/src/Stages/07.Game/Taiko/ScriptBG.cs index 74cae00c..0ef9cda1 100644 --- a/OpenTaiko/src/Stages/07.Game/Taiko/ScriptBG.cs +++ b/OpenTaiko/src/Stages/07.Game/Taiko/ScriptBG.cs @@ -241,8 +241,8 @@ class ScriptBG : IDisposable { try { float currentFloorPositionMax140 = 0; - if (OpenTaiko.stageSongSelect.rChoosenSong != null && OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5] != null) { - int maxFloor = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTotalFloor; + if (OpenTaiko.stageSongSelect.rChoosenSong != null && OpenTaiko.stageSongSelect.rChoosenSong.score[5] != null) { + int maxFloor = OpenTaiko.stageSongSelect.rChoosenSong.score[5].譜面情報.nTotalFloor; int nightTime = Math.Max(140, maxFloor / 2); currentFloorPositionMax140 = Math.Min(OpenTaiko.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] / (float)nightTime, 1f); diff --git a/OpenTaiko/src/Stages/08.Result/CStage結果.cs b/OpenTaiko/src/Stages/08.Result/CStage結果.cs index bd80782b..9bd260ae 100644 --- a/OpenTaiko/src/Stages/08.Result/CStage結果.cs +++ b/OpenTaiko/src/Stages/08.Result/CStage結果.cs @@ -72,7 +72,7 @@ internal class CStage結果 : CStage { public int GetTowerScoreRank() { int tmpClear = 0; - double progress = CFloorManagement.LastRegisteredFloor / ((double)OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTotalFloor); + double progress = CFloorManagement.LastRegisteredFloor / ((double)OpenTaiko.stageSongSelect.rChoosenSong.score[5].譜面情報.nTotalFloor); // Clear badges : 10% (E), 25% (D), 50% (C), 75% (B), Clear (A), FC (S), DFC (X) bool[] conditions = @@ -394,12 +394,12 @@ internal class CStage結果 : CStage { if (OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower) { diffModifier = 3; - int stars = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[(int)Difficulty.Tower].譜面情報.nレベル[(int)Difficulty.Tower]; + int stars = OpenTaiko.stageSongSelect.rChoosenSong.score[(int)Difficulty.Tower].譜面情報.nレベル[(int)Difficulty.Tower]; starRate = Math.Min(10, stars) / 2; redStarRate = Math.Max(0, stars - 10) * 4; - int maxFloors = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[(int)Difficulty.Tower].譜面情報.nTotalFloor; + int maxFloors = OpenTaiko.stageSongSelect.rChoosenSong.score[(int)Difficulty.Tower].譜面情報.nTotalFloor; double floorRate = Math.Pow(CFloorManagement.LastRegisteredFloor / (double)maxFloors, 2); double lengthBonus = Math.Max(1, maxFloors / 140.0); @@ -472,7 +472,7 @@ internal class CStage結果 : CStage { } else { for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) { int diff = OpenTaiko.stageSongSelect.nChoosenSongDifficulty[i]; - int stars = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[diff].譜面情報.nレベル[diff]; + int stars = OpenTaiko.stageSongSelect.rChoosenSong.score[diff].譜面情報.nレベル[diff]; diffModifier = Math.Max(1, Math.Min(3, diff)); @@ -651,7 +651,7 @@ internal class CStage結果 : CStage { this.EndAnime = false; if (OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower) { - this.ttkMaxFloors = new TitleTextureKey("/" + OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTotalFloor.ToString() + CLangManager.LangInstance.GetString("TOWER_FLOOR_INITIAL"), pfTowerText48, Color.Black, Color.Transparent, 700); + this.ttkMaxFloors = new TitleTextureKey("/" + OpenTaiko.stageSongSelect.rChoosenSong.score[5].譜面情報.nTotalFloor.ToString() + CLangManager.LangInstance.GetString("TOWER_FLOOR_INITIAL"), pfTowerText48, Color.Black, Color.Transparent, 700); this.ttkToutatsu = new TitleTextureKey(CLangManager.LangInstance.GetString("TOWER_FLOOR_REACHED"), pfTowerText48, Color.White, Color.Black, 700); this.ttkTen = new TitleTextureKey(CLangManager.LangInstance.GetString("TOWER_SCORE_INITIAL"), pfTowerText, Color.Black, Color.Transparent, 700); this.ttkReachedFloor = new TitleTextureKey(CFloorManagement.LastRegisteredFloor.ToString(), pfTowerText72, Color.Orange, Color.Black, 700); @@ -1227,7 +1227,7 @@ internal class CStage結果 : CStage { int xFactor = 0; float yFactor = 1f; - int currentTowerType = Array.IndexOf(OpenTaiko.Skin.Game_Tower_Names, OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTowerType); + int currentTowerType = Array.IndexOf(OpenTaiko.Skin.Game_Tower_Names, OpenTaiko.stageSongSelect.rChoosenSong.score[5].譜面情報.nTowerType); if (currentTowerType < 0 || currentTowerType >= OpenTaiko.Skin.Game_Tower_Ptn_Result) currentTowerType = 0; diff --git a/OpenTaiko/src/Stages/12.OnlineLounge/CStageOnlineLounge.cs b/OpenTaiko/src/Stages/12.OnlineLounge/CStageOnlineLounge.cs index 5023af45..3c4b117e 100644 --- a/OpenTaiko/src/Stages/12.OnlineLounge/CStageOnlineLounge.cs +++ b/OpenTaiko/src/Stages/12.OnlineLounge/CStageOnlineLounge.cs @@ -541,7 +541,7 @@ class CStageOnlineLounge : CStage { // Fetch closest Download folder node CSongListNode downloadBox = null; for (int i = 0; i < OpenTaiko.Songs管理.list曲ルート.Count; i++) { - if (OpenTaiko.Songs管理.list曲ルート[i].strジャンル == "Download") { + if (OpenTaiko.Songs管理.list曲ルート[i].songGenre == "Download") { downloadBox = OpenTaiko.Songs管理.list曲ルート[i]; if (downloadBox.rParentNode != null) downloadBox = downloadBox.rParentNode; break; @@ -550,7 +550,7 @@ class CStageOnlineLounge : CStage { // If there is at least one download folder, transfer the zip contents in it if (downloadBox != null) { - var path = downloadBox.arスコア[0].ファイル情報.フォルダの絶対パス; + var path = downloadBox.score[0].ファイル情報.フォルダの絶対パス; var genredPath = $@"{path}{Path.DirectorySeparatorChar}{song.Genre.genre}{Path.DirectorySeparatorChar}"; if (!Directory.Exists(genredPath)) { @@ -560,8 +560,8 @@ class CStageOnlineLounge : CStage { // Search a corresponding box-def if exists CSongListNode correspondingBox = null; for (int i = 0; i < OpenTaiko.Songs管理.list曲ルート.Count; i++) { - if (OpenTaiko.Songs管理.list曲ルート[i].strジャンル == song.Genre.genre - && OpenTaiko.Songs管理.list曲ルート[i].eノード種別 == CSongListNode.ENodeType.BOX) + if (OpenTaiko.Songs管理.list曲ルート[i].songGenre == song.Genre.genre + && OpenTaiko.Songs管理.list曲ルート[i].nodeType == CSongListNode.ENodeType.BOX) correspondingBox = OpenTaiko.Songs管理.list曲ルート[i]; } @@ -587,7 +587,7 @@ class CStageOnlineLounge : CStage { sw.Close(); } else { // Copy the existing box.def if available - var corPath = correspondingBox.arスコア[0].ファイル情報.フォルダの絶対パス; + var corPath = correspondingBox.score[0].ファイル情報.フォルダの絶対パス; File.Copy($@"{corPath}{Path.DirectorySeparatorChar}box.def", newBoxDef); } diff --git a/OpenTaiko/src/Stages/13.TowerSelect/CStageTowerSelect.cs b/OpenTaiko/src/Stages/13.TowerSelect/CStageTowerSelect.cs index 7e820ae1..6e2ae432 100644 --- a/OpenTaiko/src/Stages/13.TowerSelect/CStageTowerSelect.cs +++ b/OpenTaiko/src/Stages/13.TowerSelect/CStageTowerSelect.cs @@ -119,7 +119,7 @@ class CStageTowerSelect : CStage { OpenTaiko.Skin.soundDecideSFX.tPlay(); - switch (currentSong.eノード種別) { + switch (currentSong.nodeType) { case CSongListNode.ENodeType.SCORE: tSelectSong(); break; @@ -130,7 +130,7 @@ class CStageTowerSelect : CStage { tOpenFolder(currentSong); break; case CSongListNode.ENodeType.BACKBOX: { - if (OpenTaiko.Songs管理.list曲ルート.Contains(currentSong.rParentNode) && currentSong.rParentNode.strジャンル == "太鼓タワー") { + if (OpenTaiko.Songs管理.list曲ルート.Contains(currentSong.rParentNode) && currentSong.rParentNode.songGenre == "太鼓タワー") { returnTitle(); } else { tCloseFolder(currentSong); @@ -178,11 +178,11 @@ class CStageTowerSelect : CStage { public void tSelectSong() { OpenTaiko.ConfigIni.bTokkunMode = false; OpenTaiko.stageSongSelect.rChoosenSong = listSongs[nCurrentSongIndex]; - OpenTaiko.stageSongSelect.r確定されたスコア = listSongs[nCurrentSongIndex].arスコア[(int)Difficulty.Tower]; + OpenTaiko.stageSongSelect.r確定されたスコア = listSongs[nCurrentSongIndex].score[(int)Difficulty.Tower]; OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] = (int)Difficulty.Tower; - OpenTaiko.stageSongSelect.str確定された曲のジャンル = listSongs[nCurrentSongIndex].strジャンル; + OpenTaiko.stageSongSelect.str確定された曲のジャンル = listSongs[nCurrentSongIndex].songGenre; if ((OpenTaiko.stageSongSelect.rChoosenSong != null) && (OpenTaiko.stageSongSelect.r確定されたスコア != null)) { - CFloorManagement.reinitialize(OpenTaiko.stageSongSelect.rChoosenSong.arスコア[(int)Difficulty.Tower].譜面情報.nLife); + CFloorManagement.reinitialize(OpenTaiko.stageSongSelect.rChoosenSong.score[(int)Difficulty.Tower].譜面情報.nLife); this.eフェードアウト完了時の戻り値 = EReturnValue.SongChoosen; this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 base.ePhaseID = CStage.EPhase.SongSelect_FadeOutToNowLoading; @@ -197,9 +197,9 @@ class CStageTowerSelect : CStage { List songs = new List(); OpenTaiko.stageSongSelect.t指定された曲の子リストの曲を列挙する_孫リスト含む(song.rParentNode, ref songs, ref mandatoryDiffs, true, Difficulty.Tower); - song.listランダム用ノードリスト = songs; + song.randomList = songs; - int selectableSongCount = song.listランダム用ノードリスト.Count; + int selectableSongCount = song.randomList.Count; if (selectableSongCount == 0) { return false; @@ -214,12 +214,12 @@ class CStageTowerSelect : CStage { } // Third assignment - OpenTaiko.stageSongSelect.rChoosenSong = song.listランダム用ノードリスト[randomSongIndex]; + OpenTaiko.stageSongSelect.rChoosenSong = song.randomList[randomSongIndex]; OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] = (int)Difficulty.Tower; - CFloorManagement.reinitialize(OpenTaiko.stageSongSelect.rChoosenSong.arスコア[(int)Difficulty.Tower].譜面情報.nLife); - OpenTaiko.stageSongSelect.r確定されたスコア = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[OpenTaiko.stageSongSelect.actSongList.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(OpenTaiko.stageSongSelect.rChoosenSong)]; - OpenTaiko.stageSongSelect.str確定された曲のジャンル = OpenTaiko.stageSongSelect.rChoosenSong.strジャンル; + CFloorManagement.reinitialize(OpenTaiko.stageSongSelect.rChoosenSong.score[(int)Difficulty.Tower].譜面情報.nLife); + OpenTaiko.stageSongSelect.r確定されたスコア = OpenTaiko.stageSongSelect.rChoosenSong.score[OpenTaiko.stageSongSelect.actSongList.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(OpenTaiko.stageSongSelect.rChoosenSong)]; + OpenTaiko.stageSongSelect.str確定された曲のジャンル = OpenTaiko.stageSongSelect.rChoosenSong.songGenre; //TJAPlayer3.Skin.sound曲決定音.t再生する(); @@ -259,13 +259,13 @@ class CStageTowerSelect : CStage { private void tOpenFolder(CSongListNode song) { nCurrentSongIndex = 0; - listSongs = song.list子リスト; + listSongs = song.childrenList; tUpdateBarInfos(); } private void tCloseFolder(CSongListNode song) { nCurrentSongIndex = 0; - listSongs = song.rParentNode.rParentNode.list子リスト; + listSongs = song.rParentNode.rParentNode.childrenList; tUpdateBarInfos(); } @@ -277,7 +277,7 @@ class CStageTowerSelect : CStage { bar.strTitle = song.ldTitle.GetString(""); bar.strSubTitle = song.ldSubtitle.GetString(""); - bar.eノード種別 = song.eノード種別; + bar.eノード種別 = song.nodeType; bar.ttkTitle = new TitleTextureKey(bar.strTitle, pfTitleFont, Color.Black, Color.Transparent, OpenTaiko.Skin.TowerSelect_Title_MaxWidth); bar.ttkSubTitle = new TitleTextureKey(bar.strSubTitle, pfTitleFont, Color.Black, Color.Transparent, OpenTaiko.Skin.TowerSelect_SubTitle_MaxWidth);