1
0
mirror of synced 2025-01-18 17:14:07 +01:00

ow the edge

This commit is contained in:
0auBSQ 2024-10-18 23:08:55 +09:00
parent b29b7b20b6
commit cd8e916e70
5 changed files with 239 additions and 202 deletions

View File

@ -107,7 +107,7 @@ namespace FDK {
varying vec2 texcoord;
float randomGrayscale(vec2 uv) {
return fract(sin(dot(uv.xy * 10.0, vec2(12.9898, 78.233))) * (43758.5453 * time * 0.02));
return fract(sin(dot(uv.xy * 10.0, vec2(12.9898, 78.233))) * (43758.5453 * (time + 1.0) * 0.02));
}
@ -130,6 +130,7 @@ namespace FDK {
if (useNoiseEffect == 1) {
float n = randomGrayscale(rect);
texColor.rgb = vec3(n);
texColor.a = 1.0;
}
gl_FragColor = texColor;

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -1,31 +1,33 @@
0 - Wood
1 - Orange
2 - Purple
3 - Green
4 - Red
5 - Blue
6 - Gray
7 - Rainbow
8 - Space
9 - Diamond
10 - ?
11 - Gold
12 - Pearl
13 - Platinum
14 - Kohaku (Character plate)
15 - Dashy (Character plate)
16 - Blue
17 - Red
18 - Sky Purple
19 - AI
20 - Cyan
21 - OpTk Yellow (Roll)
22 - Bol white
23 - Saturated blue
24 - Saturated green
25 - OpTk Chapter I
26 - OpTk Chapter II
27 - OpTk Chapter III
28 - OpTk Light
29 - OpTk Dark
30 - NEP0
0 - Wood
1 - Orange
2 - Purple
3 - Green
4 - Red
5 - Blue
6 - Gray
7 - Rainbow
8 - Space
9 - Diamond
10 - ?
11 - Gold
12 - Pearl
13 - Platinum
14 - Kohaku (Character plate)
15 - Dashy (Character plate)
16 - Blue
17 - Red
18 - Sky Purple
19 - AI
20 - Cyan
21 - OpTk Yellow (Roll)
22 - Bol white
23 - Saturated blue
24 - Saturated green
25 - OpTk Chapter I
26 - OpTk Chapter II
27 - OpTk Chapter III
28 - OpTk Light
29 - OpTk Dark
30 - NEP0
31 - DRT Sky
32 - OpTk Chapter IV

View File

@ -1,132 +1,137 @@
using FDK;
using Color = System.Drawing.Color;
namespace OpenTaiko {
public sealed class TitleTextureKey {
// Static
private static readonly Dictionary<TitleTextureKey, CTexture> _titledictionary
= new Dictionary<TitleTextureKey, CTexture>();
public static CTexture ResolveTitleTexture(TitleTextureKey titleTextureKey) {
if (!_titledictionary.TryGetValue(titleTextureKey, out var texture)) {
texture = GenerateTitleTexture(titleTextureKey);
_titledictionary.Add(titleTextureKey, texture);
}
return texture;
}
public static CTexture ResolveTitleTexture(TitleTextureKey titleTextureKey, bool bVertical, bool keepCenter = false) {
if (!_titledictionary.TryGetValue(titleTextureKey, out var texture)) {
if (bVertical)
texture = GenerateTitleTextureTate(titleTextureKey, keepCenter);
else
texture = GenerateTitleTexture(titleTextureKey, keepCenter);
_titledictionary.Add(titleTextureKey, texture);
}
return texture;
}
public static CTexture ResolveTitleTextureTate(TitleTextureKey titleTextureKey) {
if (!_titledictionary.TryGetValue(titleTextureKey, out var texture)) {
texture = GenerateTitleTextureTate(titleTextureKey);
_titledictionary.Add(titleTextureKey, texture);
}
return texture;
}
private static CTexture GenerateTitleTextureTate(TitleTextureKey titleTextureKey, bool keepCenter = false) {
using (var bmp = titleTextureKey.cPrivateFastFont.DrawText_V(
titleTextureKey.str, titleTextureKey.forecolor, titleTextureKey.backcolor, titleTextureKey.secondEdge, 30, keepCenter)) {
CTexture tx文字テクスチャ = OpenTaiko.tテクスチャの生成(bmp, false);
if (tx文字テクスチャ.szTextureSize.Height > titleTextureKey.maxWidth) {
//tx文字テクスチャ.vc拡大縮小倍率.X = (float)(((double)titleTextureKey.maxWidth) / tx文字テクスチャ.szテクスチャサイズ.Height);
tx文字テクスチャ.vcScaleRatio.X = 1.0f;
tx文字テクスチャ.vcScaleRatio.Y = (float)(((double)titleTextureKey.maxWidth) / tx文字テクスチャ.szTextureSize.Height);
}
return tx文字テクスチャ;
}
}
private static CTexture GenerateTitleTexture(TitleTextureKey titleTextureKey, bool keepCenter = false) {
using (var bmp = titleTextureKey.cPrivateFastFont.DrawText(
titleTextureKey.str, titleTextureKey.forecolor, titleTextureKey.backcolor, titleTextureKey.secondEdge, 30, keepCenter)) {
CTexture tx文字テクスチャ = OpenTaiko.tテクスチャの生成(bmp, false);
if (tx文字テクスチャ.szTextureSize.Width > titleTextureKey.maxWidth) {
tx文字テクスチャ.vcScaleRatio.X = (float)(((double)titleTextureKey.maxWidth) / tx文字テクスチャ.szTextureSize.Width);
tx文字テクスチャ.vcScaleRatio.Y = 1.0f;// (float) (((double) titleTextureKey.maxWidth) / tx文字テクスチャ.szテクスチャサイズ.Width);
}
return tx文字テクスチャ;
}
}
private static void ClearTitleTextureCache() {
// Was initially used when disposing the song select screen (at the end of the program), probably unused
foreach (var titleTexture in _titledictionary.Values) {
titleTexture.Dispose();
}
_titledictionary.Clear();
}
// Non-static
public readonly string str;
public readonly CCachedFontRenderer cPrivateFastFont;
public readonly Color forecolor;
public readonly Color backcolor;
public readonly int maxWidth;
public readonly Color? secondEdge;
public TitleTextureKey(string str文字, CCachedFontRenderer cPrivateFastFont, Color forecolor, Color backcolor, int maxHeight, Color? secondEdge = null) {
this.str = str文字;
this.cPrivateFastFont = cPrivateFastFont;
this.forecolor = forecolor;
this.backcolor = backcolor;
this.maxWidth = maxHeight;
this.secondEdge = secondEdge;
}
private bool Equals(TitleTextureKey other) {
return string.Equals(str, other.str) &&
cPrivateFastFont.Equals(other.cPrivateFastFont) &&
forecolor.Equals(other.forecolor) &&
backcolor.Equals(other.backcolor) &&
secondEdge.Equals(other.secondEdge) &&
maxWidth == other.maxWidth;
}
public override bool Equals(object obj) {
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
return obj is TitleTextureKey other && Equals(other);
}
public override int GetHashCode() {
unchecked {
var hashCode = str.GetHashCode();
hashCode = (hashCode * 397) ^ cPrivateFastFont.GetHashCode();
hashCode = (hashCode * 397) ^ forecolor.GetHashCode();
hashCode = (hashCode * 397) ^ backcolor.GetHashCode();
hashCode = (hashCode * 397) ^ maxWidth;
if (secondEdge != null)
hashCode = (hashCode * 397) ^ secondEdge.GetHashCode();
return hashCode;
}
}
public static bool operator ==(TitleTextureKey left, TitleTextureKey right) {
return Equals(left, right);
}
public static bool operator !=(TitleTextureKey left, TitleTextureKey right) {
return !Equals(left, right);
}
}
}
using FDK;
using Color = System.Drawing.Color;
namespace OpenTaiko {
public sealed class TitleTextureKey {
// Static
private static readonly Dictionary<TitleTextureKey, CTexture> _titledictionary
= new Dictionary<TitleTextureKey, CTexture>();
public static CTexture ResolveTitleTexture(TitleTextureKey titleTextureKey) {
if (titleTextureKey == null) return null;
if (!_titledictionary.TryGetValue(titleTextureKey, out var texture)) {
texture = GenerateTitleTexture(titleTextureKey);
_titledictionary.Add(titleTextureKey, texture);
}
return texture;
}
public static CTexture ResolveTitleTexture(TitleTextureKey titleTextureKey, bool bVertical, bool keepCenter = false) {
if (titleTextureKey == null) return null;
if (!_titledictionary.TryGetValue(titleTextureKey, out var texture)) {
if (bVertical)
texture = GenerateTitleTextureTate(titleTextureKey, keepCenter);
else
texture = GenerateTitleTexture(titleTextureKey, keepCenter);
_titledictionary.Add(titleTextureKey, texture);
}
return texture;
}
public static CTexture ResolveTitleTextureTate(TitleTextureKey titleTextureKey) {
if (titleTextureKey == null) return null;
if (!_titledictionary.TryGetValue(titleTextureKey, out var texture)) {
texture = GenerateTitleTextureTate(titleTextureKey);
_titledictionary.Add(titleTextureKey, texture);
}
return texture;
}
private static CTexture GenerateTitleTextureTate(TitleTextureKey titleTextureKey, bool keepCenter = false) {
if (titleTextureKey == null) return null;
using (var bmp = titleTextureKey.cPrivateFastFont.DrawText_V(
titleTextureKey.str, titleTextureKey.forecolor, titleTextureKey.backcolor, titleTextureKey.secondEdge, 30, keepCenter)) {
CTexture tx文字テクスチャ = OpenTaiko.tテクスチャの生成(bmp, false);
if (tx文字テクスチャ.szTextureSize.Height > titleTextureKey.maxWidth) {
//tx文字テクスチャ.vc拡大縮小倍率.X = (float)(((double)titleTextureKey.maxWidth) / tx文字テクスチャ.szテクスチャサイズ.Height);
tx文字テクスチャ.vcScaleRatio.X = 1.0f;
tx文字テクスチャ.vcScaleRatio.Y = (float)(((double)titleTextureKey.maxWidth) / tx文字テクスチャ.szTextureSize.Height);
}
return tx文字テクスチャ;
}
}
private static CTexture GenerateTitleTexture(TitleTextureKey titleTextureKey, bool keepCenter = false) {
if (titleTextureKey == null) return null;
using (var bmp = titleTextureKey.cPrivateFastFont.DrawText(
titleTextureKey.str, titleTextureKey.forecolor, titleTextureKey.backcolor, titleTextureKey.secondEdge, 30, keepCenter)) {
CTexture tx文字テクスチャ = OpenTaiko.tテクスチャの生成(bmp, false);
if (tx文字テクスチャ.szTextureSize.Width > titleTextureKey.maxWidth) {
tx文字テクスチャ.vcScaleRatio.X = (float)(((double)titleTextureKey.maxWidth) / tx文字テクスチャ.szTextureSize.Width);
tx文字テクスチャ.vcScaleRatio.Y = 1.0f;// (float) (((double) titleTextureKey.maxWidth) / tx文字テクスチャ.szテクスチャサイズ.Width);
}
return tx文字テクスチャ;
}
}
private static void ClearTitleTextureCache() {
// Was initially used when disposing the song select screen (at the end of the program), probably unused
foreach (var titleTexture in _titledictionary.Values) {
titleTexture.Dispose();
}
_titledictionary.Clear();
}
// Non-static
public readonly string str;
public readonly CCachedFontRenderer cPrivateFastFont;
public readonly Color forecolor;
public readonly Color backcolor;
public readonly int maxWidth;
public readonly Color? secondEdge;
public TitleTextureKey(string str文字, CCachedFontRenderer cPrivateFastFont, Color forecolor, Color backcolor, int maxHeight, Color? secondEdge = null) {
this.str = str文字;
this.cPrivateFastFont = cPrivateFastFont;
this.forecolor = forecolor;
this.backcolor = backcolor;
this.maxWidth = maxHeight;
this.secondEdge = secondEdge;
}
private bool Equals(TitleTextureKey other) {
return string.Equals(str, other.str) &&
cPrivateFastFont.Equals(other.cPrivateFastFont) &&
forecolor.Equals(other.forecolor) &&
backcolor.Equals(other.backcolor) &&
secondEdge.Equals(other.secondEdge) &&
maxWidth == other.maxWidth;
}
public override bool Equals(object obj) {
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
return obj is TitleTextureKey other && Equals(other);
}
public override int GetHashCode() {
unchecked {
var hashCode = str.GetHashCode();
hashCode = (hashCode * 397) ^ cPrivateFastFont.GetHashCode();
hashCode = (hashCode * 397) ^ forecolor.GetHashCode();
hashCode = (hashCode * 397) ^ backcolor.GetHashCode();
hashCode = (hashCode * 397) ^ maxWidth;
if (secondEdge != null)
hashCode = (hashCode * 397) ^ secondEdge.GetHashCode();
return hashCode;
}
}
public static bool operator ==(TitleTextureKey left, TitleTextureKey right) {
return Equals(left, right);
}
public static bool operator !=(TitleTextureKey left, TitleTextureKey right) {
return !Equals(left, right);
}
}
}

View File

@ -193,8 +193,8 @@ namespace OpenTaiko {
}
public void tResetTitleKey() {
this.ttk選択している曲の曲名 = null;
this.ttk選択している曲のサブタイトル = null;
this.ttkSelectedSongTitle = null;
this.ttkSelectedSongSubtitle = null;
this.ttkSelectedSongMaker = null;
this.ttkSelectedSongBPM = null;
}
@ -553,8 +553,8 @@ namespace OpenTaiko {
this.t選択曲が変更された(false); // スクロールバー用に今何番目を選択しているかを更新
this.ttk選択している曲の曲名 = null;
this.ttk選択している曲のサブタイトル = null;
this.ttkSelectedSongTitle = null;
this.ttkSelectedSongSubtitle = null;
OpenTaiko.stageSongSelect.tNotifySelectedSongChange(); // スクロール完了=選択曲変更!
ctBarOpen.Start(0, 260, 2, OpenTaiko.Timer);
@ -1326,22 +1326,31 @@ namespace OpenTaiko {
//-----------------
#endregion
var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(stバー情報[nパネル番号].reference);
var HiddenIndex = OpenTaiko.Databases.DBSongUnlockables.tGetSongHiddenIndex(stバー情報[nパネル番号].reference);
var _title = TitleTextureKey.ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル, OpenTaiko.Skin.SongSelect_VerticalText);
if (HiddenIndex >= DBSongUnlockables.EHiddenIndex.BLURED) {
_title.bUseNoiseEffect = true;
}
#region [ ]
if (ctDifficultyIn.CurrentValue >= 1000 && OpenTaiko.stageSongSelect.actDifficultySelectionScreen.bIsDifficltSelect)
TitleTextureKey.ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル, OpenTaiko.Skin.SongSelect_VerticalText).Opacity = (int)255.0f - (ctDifficultyIn.CurrentValue - 1000);
_title.Opacity = (int)255.0f - (ctDifficultyIn.CurrentValue - 1000);
else
TitleTextureKey.ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル, OpenTaiko.Skin.SongSelect_VerticalText).Opacity = 255;
_title.Opacity = 255;
if (ctScrollCounter.CurrentValue != ctScrollCounter.EndValue)
TitleTextureKey.ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル, OpenTaiko.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(
_title.t2D拡大率考慮中央基準描画(
xAnime - Box_X + GetTitleOffsetX(this.stバー情報[nパネル番号].eバー種別), y - Box_Y + GetTitleOffsetY(this.stバー情報[nパネル番号].eバー種別));
else if (n見た目の行番号 != barCenterNum)
TitleTextureKey.ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル, OpenTaiko.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(
_title.t2D拡大率考慮中央基準描画(
xAnime - Box_X + GetTitleOffsetX(this.stバー情報[nパネル番号].eバー種別), y - Box_Y + GetTitleOffsetY(this.stバー情報[nパネル番号].eバー種別));
#endregion
var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(stバー情報[nパネル番号].reference);
var HiddenIndex = OpenTaiko.Databases.DBSongUnlockables.tGetSongHiddenIndex(stバー情報[nパネル番号].reference);
if (HiddenIndex >= DBSongUnlockables.EHiddenIndex.BLURED) {
_title.bUseNoiseEffect = false;
}
if (HiddenIndex >= DBSongUnlockables.EHiddenIndex.GRAYED) {
OpenTaiko.Tx.SongSelect_Bar_Genre_Locked_Top?.t2D描画(xAnime - (int)Box_X, y - ((int)Box_Y));
@ -1889,59 +1898,76 @@ namespace OpenTaiko {
fNowScrollAnime));
if ((i == barCenterNum) && ctScrollCounter.CurrentValue == ctScrollCounter.EndValue) {
CTexture tx選択している曲のサブタイトル = null;
CTexture txSelectedSongSubtitle = null;
// (A) スクロールが停止しているときの選択曲バーの描画。
var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(rCurrentlySelectedSong);
var HiddenIndex = OpenTaiko.Databases.DBSongUnlockables.tGetSongHiddenIndex(rCurrentlySelectedSong);
#region [ Nastiest Song Title display method I ever saw]
// Fonts here
//-----------------
if (rCurrentlySelectedSong.ldTitle.GetString("") != "" && this.ttk選択している曲の曲名 == null)
this.ttk選択している曲の曲名 = this.ttkGenerateSongNameTexture(rCurrentlySelectedSong.ldTitle.GetString(""), rCurrentlySelectedSong.ForeColor, rCurrentlySelectedSong.BackColor, rCurrentlySelectedSong.eード種別 == CSongListNode.ENodeType.BOX ? this.pfBoxName : this.pfMusicName);
if (rCurrentlySelectedSong.ldSubtitle.GetString("") != "" && this.ttk選択している曲のサブタイトル == null)
this.ttk選択している曲のサブタイトル = this.ttkGenerateSubtitleTexture(rCurrentlySelectedSong.ldSubtitle.GetString(""), rCurrentlySelectedSong.ForeColor, rCurrentlySelectedSong.BackColor);
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);
if (rCurrentlySelectedSong.ldSubtitle.GetString("") != "" && this.ttkSelectedSongSubtitle == null)
this.ttkSelectedSongSubtitle = this.ttkGenerateSubtitleTexture(rCurrentlySelectedSong.ldSubtitle.GetString(""), rCurrentlySelectedSong.ForeColor, rCurrentlySelectedSong.BackColor);
if (rCurrentlySelectedSong.strMaker != "" && this.ttkSelectedSongMaker == null)
this.ttkSelectedSongMaker = this.ttkGenerateMakerTexture(rCurrentlySelectedSong.strMaker, rCurrentlySelectedSong.ForeColor, rCurrentlySelectedSong.BackColor);
if (this.ttkSelectedSongBPM == null)
this.ttkSelectedSongBPM = this.ttkGenerateBPMTexture(rCurrentlySelectedSong, rCurrentlySelectedSong.ForeColor, rCurrentlySelectedSong.BackColor); ;
if (this.ttk選択している曲のサブタイトル != null)
tx選択している曲のサブタイトル = TitleTextureKey.ResolveTitleTexture(ttk選択している曲のサブタイトル, OpenTaiko.Skin.SongSelect_VerticalText);
if (this.ttkSelectedSongSubtitle != null)
txSelectedSongSubtitle = TitleTextureKey.ResolveTitleTexture(ttkSelectedSongSubtitle, OpenTaiko.Skin.SongSelect_VerticalText);
var _title = TitleTextureKey.ResolveTitleTexture(this.ttkSelectedSongTitle, OpenTaiko.Skin.SongSelect_VerticalText);
if (HiddenIndex >= DBSongUnlockables.EHiddenIndex.GRAYED && _title != null) {
_title.bUseNoiseEffect = true;
}
//サブタイトルがあったら700
if (ttk選択している曲の曲名 != null) {
if (ttkSelectedSongTitle != null) {
if (!ctBoxOpen.IsEnded)
TitleTextureKey.ResolveTitleTexture(this.ttk選択している曲の曲名, OpenTaiko.Skin.SongSelect_VerticalText).Opacity = (int)(ctBoxOpen.CurrentValue >= 1200 && ctBoxOpen.CurrentValue <= 1620 ? 255 - (ctBoxOpen.CurrentValue - 1200) * 2.55f :
_title.Opacity = (int)(ctBoxOpen.CurrentValue >= 1200 && ctBoxOpen.CurrentValue <= 1620 ? 255 - (ctBoxOpen.CurrentValue - 1200) * 2.55f :
ctBoxOpen.CurrentValue >= 2000 ? (ctBoxOpen.CurrentValue - 2000) * 2.55f : ctBoxOpen.CurrentValue <= 1200 ? 255 : 0);
else {
if (!OpenTaiko.stageSongSelect.actDifficultySelectionScreen.bIsDifficltSelect)
TitleTextureKey.ResolveTitleTexture(this.ttk選択している曲の曲名, OpenTaiko.Skin.SongSelect_VerticalText).Opacity = 255;
_title.Opacity = 255;
else if (ctDifficultyIn.CurrentValue >= 1000)
TitleTextureKey.ResolveTitleTexture(this.ttk選択している曲の曲名, OpenTaiko.Skin.SongSelect_VerticalText).Opacity = (int)255.0f - (ctDifficultyIn.CurrentValue - 1000);
_title.Opacity = (int)255.0f - (ctDifficultyIn.CurrentValue - 1000);
}
}
if (this.ttk選択している曲のサブタイトル != null) {
if (this.ttkSelectedSongSubtitle != null) {
if (HiddenIndex >= DBSongUnlockables.EHiddenIndex.GRAYED) {
txSelectedSongSubtitle.bUseNoiseEffect = true;
}
if (!ctBoxOpen.IsEnded)
tx選択している曲のサブタイトル.Opacity = (int)(ctBoxOpen.CurrentValue >= 1200 && ctBoxOpen.CurrentValue <= 1620 ? 255 - (ctBoxOpen.CurrentValue - 1200) * 2.55f :
txSelectedSongSubtitle.Opacity = (int)(ctBoxOpen.CurrentValue >= 1200 && ctBoxOpen.CurrentValue <= 1620 ? 255 - (ctBoxOpen.CurrentValue - 1200) * 2.55f :
ctBoxOpen.CurrentValue >= 2000 ? (ctBoxOpen.CurrentValue - 2000) * 2.55f : ctBoxOpen.CurrentValue <= 1200 ? 255 : 0);
else {
if (!OpenTaiko.stageSongSelect.actDifficultySelectionScreen.bIsDifficltSelect)
tx選択している曲のサブタイトル.Opacity = (int)(BarAnimeCount * 255.0f);
txSelectedSongSubtitle.Opacity = (int)(BarAnimeCount * 255.0f);
else if (ctDifficultyIn.CurrentValue >= 1000)
tx選択している曲のサブタイトル.Opacity = (int)255.0f - (ctDifficultyIn.CurrentValue - 1000);
txSelectedSongSubtitle.Opacity = (int)255.0f - (ctDifficultyIn.CurrentValue - 1000);
}
tx選択している曲のサブタイトル.t2D拡大率考慮中央基準描画(
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));
if (this.ttk選択している曲の曲名 != null) {
TitleTextureKey.ResolveTitleTexture(this.ttk選択している曲の曲名, OpenTaiko.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(
if (HiddenIndex >= DBSongUnlockables.EHiddenIndex.GRAYED) {
txSelectedSongSubtitle.bUseNoiseEffect = false;
}
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),
@ -1949,8 +1975,8 @@ namespace OpenTaiko {
(rCurrentlySelectedSong.eード種別 != CSongListNode.ENodeType.BACKBOX ? (rCurrentlySelectedSong.eード種別 == CSongListNode.ENodeType.BOX ? centerMove : centerMove / 1.1f) : 0));
}
} else {
if (this.ttk選択している曲の曲名 != null) {
TitleTextureKey.ResolveTitleTexture(this.ttk選択している曲の曲名, OpenTaiko.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(
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),
@ -1958,11 +1984,14 @@ namespace OpenTaiko {
(rCurrentlySelectedSong.eード種別 != CSongListNode.ENodeType.BACKBOX ? (rCurrentlySelectedSong.eード種別 == CSongListNode.ENodeType.BOX ? centerMove : centerMove / 1.1f) : 0));
}
}
if (HiddenIndex >= DBSongUnlockables.EHiddenIndex.GRAYED && _title != null) {
_title.bUseNoiseEffect = false;
}
//-----------------
#endregion
var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(rCurrentlySelectedSong);
var HiddenIndex = OpenTaiko.Databases.DBSongUnlockables.tGetSongHiddenIndex(rCurrentlySelectedSong);
if (HiddenIndex >= DBSongUnlockables.EHiddenIndex.GRAYED) {
DrawBarCenter(OpenTaiko.Tx.SongSelect_Bar_Genre_Locked_Top, OpenTaiko.Skin.SongSelect_Bar_X[barCenterNum], OpenTaiko.Skin.SongSelect_Bar_Y[barCenterNum], centerMoveX, centerMove, false, false, false);
@ -2297,8 +2326,8 @@ namespace OpenTaiko {
private STバー情報[] stバー情報 = new STバー情報[OpenTaiko.Skin.SongSelect_Bar_Count];
private CTexture txSongNotFound, txEnumeratingSongs;
private TitleTextureKey ttk選択している曲の曲名;
private TitleTextureKey ttk選択している曲のサブタイトル;
private TitleTextureKey ttkSelectedSongTitle;
private TitleTextureKey ttkSelectedSongSubtitle;
public TitleTextureKey ttkSelectedSongBPM;
public TitleTextureKey ttkSelectedSongMaker;
@ -2910,12 +2939,12 @@ namespace OpenTaiko {
private void tResetTitleTextureKey() {
if (this.ttk選択している曲の曲名 != null) {
this.ttk選択している曲の曲名 = null;
if (this.ttkSelectedSongTitle != null) {
this.ttkSelectedSongTitle = null;
this.b選択曲が変更された = false;
}
if (this.ttk選択している曲のサブタイトル != null) {
this.ttk選択している曲のサブタイトル = null;
if (this.ttkSelectedSongSubtitle != null) {
this.ttkSelectedSongSubtitle = null;
this.b選択曲が変更された = false;
}
if (this.ttkSelectedSongMaker != null) {