From 81058bde0d9bfab9d982b974998026b93b6ad72d Mon Sep 17 00:00:00 2001 From: 0aubsq <0aubsq@gmail.com> Date: Wed, 13 Oct 2021 23:47:09 +0200 Subject: [PATCH] (Pre. v.0.4.3) Display current floor while playing Tower maps and changed the frame image --- TJAPlayer3/Stages/01.StartUp/TextureLoader.cs | 3 +- .../05.SongSelect/CActSelect曲リスト.cs | 3 + .../07.Game/Taiko/CAct演奏DrumsMtaiko.cs | 18 +-- .../Stages/07.Game/Taiko/CAct演奏Drums背景.cs | 141 ++++++++++++++---- Test/System | 2 +- 5 files changed, 122 insertions(+), 45 deletions(-) diff --git a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs index 4ad3e904..fcf371ed 100644 --- a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs +++ b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs @@ -473,10 +473,11 @@ namespace TJAPlayer3 #endregion #region 太鼓 - Taiko_Background = new CTexture[3]; + Taiko_Background = new CTexture[4]; Taiko_Background[0] = TxC(GAME + TAIKO + @"1P_Background.png"); Taiko_Background[1] = TxC(GAME + TAIKO + @"2P_Background.png"); Taiko_Background[2] = TxC(GAME + TAIKO + @"Dan_Background.png"); + Taiko_Background[3] = TxC(GAME + TAIKO + @"Tower_Background.png"); Taiko_Frame = new CTexture[3]; Taiko_Frame[0] = TxC(GAME + TAIKO + @"1P_Frame.png"); Taiko_Frame[1] = TxC(GAME + TAIKO + @"2P_Frame.png"); diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs index 7b6208fe..cb8a5fef 100644 --- a/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs @@ -1673,6 +1673,9 @@ namespace TJAPlayer3 // (A) スクロールが停止しているときの選択曲バーの描画。 #region [ タイトル名テクスチャを描画。] + + // Fonts here + //----------------- if (this.stバー情報[nパネル番号].strタイトル文字列 != "" && this.ttk選択している曲の曲名 == null) this.ttk選択している曲の曲名 = this.ttk曲名テクスチャを生成する(this.stバー情報[nパネル番号].strタイトル文字列, this.stバー情報[nパネル番号].ForeColor, this.stバー情報[nパネル番号].BackColor, stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? this.pfBoxName : this.pfMusicName); diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMtaiko.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMtaiko.cs index 624e535c..eff6692e 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMtaiko.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMtaiko.cs @@ -83,21 +83,15 @@ namespace TJAPlayer3 this.nHS = TJAPlayer3.ConfigIni.n譜面スクロール速度.Drums < 8 ? TJAPlayer3.ConfigIni.n譜面スクロール速度.Drums : 7; - if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) - { - if (TJAPlayer3.Tx.Taiko_Background[2] != null) - TJAPlayer3.Tx.Taiko_Background[2].t2D描画(TJAPlayer3.app.Device, 0, 184); - } + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + TJAPlayer3.Tx.Taiko_Background[2]?.t2D描画(TJAPlayer3.app.Device, 0, 184); + else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower) + TJAPlayer3.Tx.Taiko_Background[3]?.t2D描画(TJAPlayer3.app.Device, 0, 184); else { - if (TJAPlayer3.Tx.Taiko_Background[0] != null) - TJAPlayer3.Tx.Taiko_Background[0].t2D描画(TJAPlayer3.app.Device, 0, 184); - + TJAPlayer3.Tx.Taiko_Background[0]?.t2D描画(TJAPlayer3.app.Device, 0, 184); if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay) - { - if (TJAPlayer3.Tx.Taiko_Background[1] != null) - TJAPlayer3.Tx.Taiko_Background[1].t2D描画(TJAPlayer3.app.Device, 0, 360); - } + TJAPlayer3.Tx.Taiko_Background[1]?.t2D描画(TJAPlayer3.app.Device, 0, 360); } if(TJAPlayer3.Tx.Taiko_Base != null ) diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums背景.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums背景.cs index d9049de6..857a176b 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums背景.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums背景.cs @@ -1,5 +1,8 @@ using System; using FDK; +using System.Drawing; +using SlimDX; +using static TJAPlayer3.CActSelect曲リスト; namespace TJAPlayer3 { @@ -36,11 +39,31 @@ namespace TJAPlayer3 public override void On活性化() { + if (!this.b活性化してない) + return; + + if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName)) + { + this.pfTowerText = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 28); + } + else + { + this.pfTowerText = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 28); + } + + this.ttkTouTatsuKaiSuu = new TitleTextureKey("到達階数", pfTowerText, Color.White, Color.Black, 700); + this.ttkKai = new TitleTextureKey("階", pfTowerText, Color.White, Color.Black, 700); + base.On活性化(); } public override void On非活性化() { + if (this.b活性化してない) + return; + + TJAPlayer3.t安全にDisposeする(ref pfTowerText); + TJAPlayer3.t安全にDisposeする(ref this.ct上背景FIFOタイマー); for (int i = 0; i < 2; i++) { @@ -54,34 +77,38 @@ namespace TJAPlayer3 public override void OnManagedリソースの作成() { - this.ct上背景スクロール用タイマー1st = new CCounter[2]; - this.ct上背景スクロール用タイマー2nd = new CCounter[2]; - this.ct上背景スクロール用タイマー3rd = new CCounter[2]; - this.ct上背景クリアインタイマー = new CCounter[2]; - ct上背景スクロール用タイマー1stDan = new CCounter[4]; - - for (int i = 0; i < 2; i++) - { - if (TJAPlayer3.Tx.Background_Up_3rd[i] != null) - { - this.ct上背景スクロール用タイマー1st[i] = new CCounter(1, TJAPlayer3.Tx.Background_Up_1st[i].szテクスチャサイズ.Width, 16, TJAPlayer3.Timer); - this.ct上背景スクロール用タイマー2nd[i] = new CCounter(1, TJAPlayer3.Tx.Background_Up_2nd[i].szテクスチャサイズ.Height, 70, TJAPlayer3.Timer); - this.ct上背景スクロール用タイマー3rd[i] = new CCounter(1, 600, 3, TJAPlayer3.Timer); - this.ct上背景クリアインタイマー[i] = new CCounter(); - } + if (!base.b活性化してない) + { + this.ct上背景スクロール用タイマー1st = new CCounter[2]; + this.ct上背景スクロール用タイマー2nd = new CCounter[2]; + this.ct上背景スクロール用タイマー3rd = new CCounter[2]; + this.ct上背景クリアインタイマー = new CCounter[2]; + ct上背景スクロール用タイマー1stDan = new CCounter[4]; + + for (int i = 0; i < 2; i++) + { + if (TJAPlayer3.Tx.Background_Up_3rd[i] != null) + { + this.ct上背景スクロール用タイマー1st[i] = new CCounter(1, TJAPlayer3.Tx.Background_Up_1st[i].szテクスチャサイズ.Width, 16, TJAPlayer3.Timer); + this.ct上背景スクロール用タイマー2nd[i] = new CCounter(1, TJAPlayer3.Tx.Background_Up_2nd[i].szテクスチャサイズ.Height, 70, TJAPlayer3.Timer); + this.ct上背景スクロール用タイマー3rd[i] = new CCounter(1, 600, 3, TJAPlayer3.Timer); + this.ct上背景クリアインタイマー[i] = new CCounter(); + } + } + + this.ct上背景スクロール用タイマー1stDan[0] = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[1].szテクスチャサイズ.Width, 8.453f * 2, TJAPlayer3.Timer); + this.ct上背景スクロール用タイマー1stDan[1] = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[2].szテクスチャサイズ.Width, 10.885f * 2, TJAPlayer3.Timer); + this.ct上背景スクロール用タイマー1stDan[2] = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[3].szテクスチャサイズ.Width, 11.4f * 2, TJAPlayer3.Timer); + this.ct上背景スクロール用タイマー1stDan[3] = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[5].szテクスチャサイズ.Width, 33.88f, TJAPlayer3.Timer); + this.ct上背景スクロール用タイマー2stDan = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[4].szテクスチャサイズ.Width + 200, 10, TJAPlayer3.Timer); + + if (TJAPlayer3.Tx.Background_Down_Scroll != null) + this.ct下背景スクロール用タイマー1 = new CCounter(1, TJAPlayer3.Tx.Background_Down_Scroll.szテクスチャサイズ.Width, 4, TJAPlayer3.Timer); + + this.ct上背景FIFOタイマー = new CCounter(); + + base.OnManagedリソースの作成(); } - - this.ct上背景スクロール用タイマー1stDan[0] = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[1].szテクスチャサイズ.Width, 8.453f * 2, TJAPlayer3.Timer); - this.ct上背景スクロール用タイマー1stDan[1] = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[2].szテクスチャサイズ.Width, 10.885f * 2, TJAPlayer3.Timer); - this.ct上背景スクロール用タイマー1stDan[2] = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[3].szテクスチャサイズ.Width, 11.4f * 2, TJAPlayer3.Timer); - this.ct上背景スクロール用タイマー1stDan[3] = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[5].szテクスチャサイズ.Width, 33.88f, TJAPlayer3.Timer); - this.ct上背景スクロール用タイマー2stDan = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[4].szテクスチャサイズ.Width + 200, 10, TJAPlayer3.Timer); - - if (TJAPlayer3.Tx.Background_Down_Scroll != null) - this.ct下背景スクロール用タイマー1 = new CCounter(1, TJAPlayer3.Tx.Background_Down_Scroll.szテクスチャサイズ.Width, 4, TJAPlayer3.Timer); - - this.ct上背景FIFOタイマー = new CCounter(); - base.OnManagedリソースの作成(); } public override void OnManagedリソースの解放() @@ -92,11 +119,16 @@ namespace TJAPlayer3 //CDTXMania.tテクスチャの解放( ref this.tx下背景クリアメイン ); //CDTXMania.tテクスチャの解放( ref this.tx下背景クリアサブ1 ); //Trace.TraceInformation("CActDrums背景 リソースの開放"); - base.OnManagedリソースの解放(); + if (!base.b活性化してない) + base.OnManagedリソースの解放(); } public override int On進行描画() { + if (base.b活性化してない) + return 0; + + this.ct上背景FIFOタイマー.t進行(); for (int i = 0; i < 2; i++) @@ -132,8 +164,9 @@ namespace TJAPlayer3 #region 1P-2P-上背景 - if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) { + // Multiple background handling will be here #region [ 通常背景 ] for (int i = 0; i < 2; i++) @@ -283,12 +316,51 @@ namespace TJAPlayer3 #endregion } - } - + } + + #endregion + + + #region [Tower background informations] + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower) + { + TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkTouTatsuKaiSuu).t2D描画(TJAPlayer3.app.Device, 550, 32); + TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkKai).t2D描画(TJAPlayer3.app.Device, 750, 104); + + #region [Floor number] + + string floorStr = TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0].ToString(); + + int len = floorStr.Length; + + int digitLength = TJAPlayer3.Tx.Taiko_Combo[0].szテクスチャサイズ.Width / 10; + + TJAPlayer3.Tx.Taiko_Combo[0].color4 = new Color4(1f, 0.6f, 0.2f); + TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.X = 1.4f; + TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.Y = 1.4f; + + for (int idx = len - 1; idx >= 0; idx--) + { + int currentNum = int.Parse(floorStr[idx].ToString()); + + TJAPlayer3.Tx.Taiko_Combo[0].t2D描画(TJAPlayer3.app.Device, 756 - ((digitLength - 8) * (len - idx) * 1.4f), + 84, + new Rectangle(digitLength * currentNum, 0, + digitLength, TJAPlayer3.Tx.Taiko_Combo[0].szテクスチャサイズ.Height)); + } + + TJAPlayer3.Tx.Taiko_Combo[0].color4 = new Color4(1f, 1f, 1f); + + #endregion + + } + #endregion } else { + // Not 拝啓 but 背景 w, apparently Kanji typos are pretty common, "Dear DanI" lol #region [ 段位拝啓 ] TJAPlayer3.Tx.Background_Up_Dan[0].t2D描画(TJAPlayer3.app.Device, 0, 0); @@ -312,6 +384,9 @@ namespace TJAPlayer3 } #endregion + + + #region 1P-下背景 if (!TJAPlayer3.stage演奏ドラム画面.bDoublePlay) { @@ -364,6 +439,10 @@ namespace TJAPlayer3 //private CTexture tx下背景メイン; //private CTexture tx下背景クリアメイン; //private CTexture tx下背景クリアサブ1; + private TitleTextureKey ttkTouTatsuKaiSuu; + private TitleTextureKey ttkKai; + private CPrivateFastFont pfTowerText; + private EFIFOモード eFadeMode; //----------------- #endregion diff --git a/Test/System b/Test/System index 692b1dc0..9c9d5c70 160000 --- a/Test/System +++ b/Test/System @@ -1 +1 @@ -Subproject commit 692b1dc05b083e1a8ad2eb57911d0b215ce5a8b0 +Subproject commit 9c9d5c709f0a81fbe3bd9fd3c90822741d57f268