1
0
mirror of synced 2025-02-16 10:42:39 +01:00

Fix #61, implement Timing zones mod and add mod icons for song speed

This commit is contained in:
0aubsq 2022-05-01 04:39:37 +02:00
parent cf6a73cd2b
commit 2c7ef598ee
12 changed files with 331 additions and 76 deletions

View File

@ -758,6 +758,7 @@ namespace TJAPlayer3
public STDGBVALUE<int> n表示可能な最小コンボ数;
public int[] nScrollSpeed;
public int[] nTimingZones;
public string strDTXManiaのバージョン;
public string str曲データ検索パス;
public string FontName;
@ -798,7 +799,7 @@ namespace TJAPlayer3
new CTimingZones(42, 75, 108), // Lv3 (Hard-Extreme + "Lenient" timing mod or Easy-Normal + "Strict" mod)
new CTimingZones(25, 75, 108), // Lv4 (Hard-Extreme / Tower Ex Kara-kuchi / Dan or Easy-Normal + "Rigorous" mod)
new CTimingZones(25, 58, 108), // Lv5 (Hard-Extreme + "Strict" mod (Tatsu))
new CTimingZones(25, 42, 108) // Lv6 (Hard-Extreme + "Rigorous" mod)
new CTimingZones(17, 42, 108) // Lv6 (Hard-Extreme + "Rigorous" mod)
};
public bool b大音符判定;
@ -1403,6 +1404,7 @@ namespace TJAPlayer3
this.e判定位置 = new STDGBVALUE<E判定位置>(); // #33891 2014.6.26 yyagi
this. = new STDGBVALUE<E判定文字表示位置>();
this.nScrollSpeed = new int[4] { 9, 9, 9, 9 };
this.nTimingZones = new int[4] { 2, 2, 2, 2 };
this.nInputAdjustTimeMs = 0;
this.nGlobalOffsetMs = 0;
this.nJudgeLinePosOffset = new STDGBVALUE<int>(); // #31602 2013.6.23 yyagi
@ -1427,6 +1429,7 @@ namespace TJAPlayer3
for (int i = 0; i < 4; i++)
{
this.nScrollSpeed[i] = 9;
this.nTimingZones[i] = 2;
}
this.n演奏速度 = 20;
@ -1999,6 +2002,12 @@ namespace TJAPlayer3
sw.WriteLine("DrumsScrollSpeed3P={0}", this.nScrollSpeed[2]);
sw.WriteLine("DrumsScrollSpeed4P={0}", this.nScrollSpeed[3]);
sw.WriteLine();
sw.WriteLine("; Timing Zones (0-1 : Lenient, 2 : Regular, 3-4 : Strict");
sw.WriteLine("TimingZones1P={0}", this.nTimingZones[0]);
sw.WriteLine("TimingZones2P={0}", this.nTimingZones[1]);
sw.WriteLine("TimingZones3P={0}", this.nTimingZones[2]);
sw.WriteLine("TimingZones4P={0}", this.nTimingZones[3]);
sw.WriteLine();
sw.WriteLine( "; 演奏速度(540)(→x5/20x40/20)" );
sw.WriteLine( "PlaySpeed={0}", this.n演奏速度 );
sw.WriteLine();
@ -2794,17 +2803,15 @@ namespace TJAPlayer3
{
this..Drums = (E判定文字表示位置) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 2, (int) this..Drums );
}
#region [Mods]
#region [Scroll Speed]
else if ( str3.Equals( "DrumsScrollSpeed" ) )
else if (str3.Equals("DrumsScrollSpeed") || str3.Equals("DrumsScrollSpeed1P"))
{
this.nScrollSpeed[0] = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 0x7cf, this.nScrollSpeed[0] );
}
else if (str3.Equals("DrumsScrollSpeed1P"))
{
this.nScrollSpeed[0] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x7cf, this.nScrollSpeed[0]);
}
else if (str3.Equals("DrumsScrollSpeed2P"))
{
this.nScrollSpeed[1] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x7cf, this.nScrollSpeed[1]);
@ -2819,8 +2826,36 @@ namespace TJAPlayer3
}
#endregion
else if( str3.Equals( "PlaySpeed" ) )
#region [Timing Zones]
else if (str3.Equals("TimingZones1P"))
{
this.nTimingZones[0] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, this.nTimingZones[0]);
}
else if (str3.Equals("TimingZones2P"))
{
this.nTimingZones[1] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, this.nTimingZones[1]);
}
else if (str3.Equals("TimingZones3P"))
{
this.nTimingZones[2] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, this.nTimingZones[2]);
}
else if (str3.Equals("TimingZones4P"))
{
this.nTimingZones[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, this.nTimingZones[3]);
}
#endregion
#endregion
else if ( str3.Equals( "PlaySpeed" ) )
{
this.n演奏速度 = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 5, 400, this.n演奏速度 );
}

View File

@ -276,6 +276,13 @@ namespace TJAPlayer3
[406] = "Download Puchicharas",
[407] = "Online Multiplayer",
[500] = "Timing",
[501] = "Loose",
[502] = "Lenient",
[503] = "Normal",
[504] = "Strict",
[505] = "Rigorous",
[1000] = "Reached floor",
[1001] = "F",
[1002] = "P",

View File

@ -267,6 +267,13 @@ namespace TJAPlayer3
[406] = "Télécharger des Puchicharas",
[407] = "Multijoueur en ligne",
[500] = "Timing",
[501] = "Laxiste",
[502] = "Permissif",
[503] = "Normal",
[504] = "Strict",
[505] = "Rigoureux",
[1000] = "Étage atteint",
[1001] = "",
[1002] = "P",

View File

@ -330,6 +330,13 @@ namespace TJAPlayer3
[406] = "プチキャラダウンロード",
[407] = "オンラインマルチプレイヤー",
[500] = "タイミング",
[501] = "緩い",
[502] = "易しい",
[503] = "通常",
[504] = "厳しい",
[505] = "過酷",
[1000] = "到達階数",
[1001] = "階",
[1002] = "点",

View File

@ -777,6 +777,12 @@ namespace TJAPlayer3
Mod_Timing[i] = TxC(GAME + MODICONS + @"Timing\" + i.ToString() + @".png");
}
Mod_SongSpeed = new CTexture[2];
for (int i = 0; i < Mod_SongSpeed.Length; i++)
{
Mod_SongSpeed[i] = TxC(GAME + MODICONS + @"SongSpeed\" + i.ToString() + @".png");
}
Mod_Auto = TxC(GAME + MODICONS + @"Auto.png");
Mod_None = TxC(GAME + MODICONS + @"None.png");
@ -1672,7 +1678,8 @@ namespace TJAPlayer3
#region [21_ModIcons]
public CTexture[] Mod_Timing,
public CTexture[] Mod_Timing,
Mod_SongSpeed,
HiSp;
public CTexture Mod_None,
Mod_Auto;

View File

@ -61,10 +61,16 @@ namespace TJAPlayer3
OptionType[1] = OptionTypeTx(CLangManager.LangInstance.GetString(9009), Color.White, Color.Black);
OptionType[2] = OptionTypeTx(CLangManager.LangInstance.GetString(9010), Color.White, Color.Black);
OptionType[3] = OptionTypeTx(CLangManager.LangInstance.GetString(9011), Color.White, Color.Black);
OptionType[4] = OptionTypeTx(CLangManager.LangInstance.GetString(9012), Color.White, Color.Black);
OptionType[5] = OptionTypeTx(CLangManager.LangInstance.GetString(9013), Color.White, Color.Black);
OptionType[6] = OptionTypeTx(CLangManager.LangInstance.GetString(9014), Color.White, Color.Black);
OptionType[7] = OptionTypeTx(CLangManager.LangInstance.GetString(9015), Color.White, Color.Black);
OptionType[4] = OptionTypeTx(CLangManager.LangInstance.GetString(500), Color.White, Color.Black);
OptionType[5] = OptionTypeTx(CLangManager.LangInstance.GetString(9012), Color.White, Color.Black);
OptionType[6] = OptionTypeTx(CLangManager.LangInstance.GetString(9013), Color.White, Color.Black);
OptionType[7] = OptionTypeTx(CLangManager.LangInstance.GetString(9014), Color.White, Color.Black);
OptionType[8] = OptionTypeTx(CLangManager.LangInstance.GetString(9015), Color.White, Color.Black);
for (int i = 0; i < 5; i++)
{
txTiming[i] = OptionTypeTx(CLangManager.LangInstance.GetString(501 + i), Color.White, Color.Black);
}
for (int i = 0; i < OptionType.Length; i++)
OptionType[i].vc拡大縮小倍率.X = 0.96f;
@ -93,6 +99,9 @@ namespace TJAPlayer3
if (this.b活性化してない)
return 0;
if (ctOpen.n現在の値 == 0)
Init(player);
ctOpen.t進行();
ctClose.t進行();
@ -114,31 +123,41 @@ namespace TJAPlayer3
#endregion
// Temporary textures, to reimplement to fit the new menu
TJAPlayer3.Tx.Difficulty_Option.t2D描画(TJAPlayer3.app.Device, 0, y);
TJAPlayer3.Tx.Difficulty_Option_Select.t2D描画(TJAPlayer3.app.Device, 0, y + NowCount * 40.7f);
float baseX = (player == 0) ? 200 : 1180;
float baseY = 659.9f + y - nOptionCount * 40.7f;
var _textures = new CTexture[]
{
txSpeed[nSpeedCount],
txSwitch[nStealth],
txSwitch[nAbekobe],
txRandom[nRandom],
txTiming[nTiming],
txGameMode[nGameMode],
txSwitch[nAutoMode],
txNone,
txNone,
};
TJAPlayer3.Tx.Difficulty_Option_Select.t2D描画(TJAPlayer3.app.Device, baseX - 200, baseY - 375 + NowCount * 40.7f);
for (int i = 0; i < OptionType.Length; i++)
{
OptionType[i].t2D描画(TJAPlayer3.app.Device, 16, 379 + i * 40.8f + y);
OptionType[i].t2D描画(TJAPlayer3.app.Device, baseX - 184, baseY + 4 + i * 40.8f);
}
txSpeed[nSpeedCount].t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y);
txSwitch[nStealth].t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y + 1 * 40.7f);
txSwitch[nAbekobe].t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y + 2 * 40.7f);
txRandom[nRandom].t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y + 3 * 40.7f);
txGameMode[nGameMode].t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y + 4 * 40.7f);
txSwitch[nAutoMode].t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y + 5 * 40.7f);
for (int i = 6; i < 8; i++)
{
txNone.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y + i * 40.7f);
for (int i = 0; i < _textures.Length; i++)
{
_textures[i]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, baseX, baseY + i * 40.7f);
}
if (ctClose.n現在の値 >= 50)
{
Decision();
Decision(player);
NowCount = 0;
ctOpen.t停止();
ctOpen.n現在の値 = 0;
@ -152,17 +171,30 @@ namespace TJAPlayer3
if (!ctClose.b進行中)
{
if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue)) { OptionSelect(true); TJAPlayer3.Skin.sound変更音.t再生する(); };
if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue)) { OptionSelect(false); TJAPlayer3.Skin.sound変更音.t再生する(); };
bool _leftDrum = (player == 0)
? TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue)
: TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P);
if ((TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed)) && ctOpen.n現在の値 >= ctOpen.n終了値)
bool _rightDrum = (player == 0)
? TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue)
: TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P);
bool _centerDrum = (player == 0)
? (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed))
: (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed2P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed2P));
if (_leftDrum) { OptionSelect(true); TJAPlayer3.Skin.sound変更音.t再生する(); };
if (_rightDrum) { OptionSelect(false); TJAPlayer3.Skin.sound変更音.t再生する(); };
if (_centerDrum && ctOpen.n現在の値 >= ctOpen.n終了値)
{
TJAPlayer3.Skin.sound決定音.t再生する();
if (NowCount < 7)
if (NowCount < nOptionCount)
{
NowCount++;
}
else if (NowCount >= 7 && !bEnd)
else if (NowCount >= nOptionCount && !bEnd)
{
bEnd = true;
ctClose.t開始(0, 50, 6, TJAPlayer3.Timer);
@ -172,13 +204,15 @@ namespace TJAPlayer3
#endregion
return 0;
}
public int nOptionCount = 8;
public CCounter ctOpen;
public CCounter ctClose;
public CTexture[] OptionType = new CTexture[8];
public CTexture[] OptionType = new CTexture[9];
public int NowCount;
public int[] NowCountType = new int[8];
@ -203,6 +237,9 @@ namespace TJAPlayer3
public CTexture[] txSwitch = new CTexture[2];
public CTexture[] txTiming = new CTexture[5];
public int nTiming = 2;
public CTexture OptionTypeTx(string str文字, Color forecolor, Color backcolor)
{
using (var bmp = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 13).DrawPrivateFont(str文字, forecolor, backcolor))
@ -211,21 +248,26 @@ namespace TJAPlayer3
}
}
private void ShiftVal(bool left, ref int value, int capUp, int capDown)
{
if (left)
{
if (value > capDown) value--;
else value = capUp;
}
else
{
if (value < capUp) value++;
else value = capDown;
}
}
public void OptionSelect(bool left)
{
switch (NowCount)
{
case 0:
if (left)
{
if (nSpeedCount > 0) nSpeedCount--;
else nSpeedCount = 15;
}
else
{
if (nSpeedCount < 15) nSpeedCount++;
else nSpeedCount = 0;
}
ShiftVal(left, ref nSpeedCount, 15, 0);
break;
case 1:
if (nStealth == 0) nStealth = 1;
@ -236,59 +278,152 @@ namespace TJAPlayer3
else nAbekobe = 0;
break;
case 3:
if (left)
{
if (nRandom > 0) nRandom--;
else nRandom = 2;
}
else
{
if (nRandom < 2) nRandom++;
else nRandom = 0;
}
ShiftVal(left, ref nRandom, 2, 0);
break;
case 4:
ShiftVal(left, ref nTiming, 4, 0);
break;
case 5:
if (nGameMode == 0) nGameMode = 1;
else nGameMode = 0;
break;
case 5:
case 6:
if (nAutoMode == 0) nAutoMode = 1;
else nAutoMode = 0;
break;
}
}
public void Decision()
public void Init(int player)
{
int actual = TJAPlayer3.GetActualPlayer(player);
#region [ Speed ]
int speed = TJAPlayer3.ConfigIni.nScrollSpeed[actual];
if (speed <= 4)
nSpeedCount = 0;
else if (speed <= 19)
nSpeedCount = speed - 8;
else if (speed <= 24)
nSpeedCount = 12;
else if (speed <= 29)
nSpeedCount = 13;
else if (speed <= 34)
nSpeedCount = 14;
else
nSpeedCount = 15;
#endregion
#region [ Doron ]
if (TJAPlayer3.ConfigIni.eSTEALTH == Eステルスモード.OFF)
nStealth = 0;
else if (TJAPlayer3.ConfigIni.eSTEALTH == Eステルスモード.DORON)
nStealth = 1;
#endregion
#region [ Random ]
var rand_ = TJAPlayer3.ConfigIni.eRandom.Taiko;
if (rand_ == Eランダムモード.HYPERRANDOM)
{
nRandom = 2;
nAbekobe = 1;
}
else if (rand_ == Eランダムモード.SUPERRANDOM)
{
nRandom = 2;
nAbekobe = 0;
}
else if (rand_ == Eランダムモード.RANDOM)
{
nRandom = 1;
nAbekobe = 0;
}
else if (rand_ == Eランダムモード.MIRROR)
{
nRandom = 0;
nAbekobe = 1;
}
else if (rand_ == Eランダムモード.OFF)
{
nRandom = 0;
nAbekobe = 0;
}
#endregion
#region [ Timing ]
nTiming = TJAPlayer3.ConfigIni.nTimingZones[actual];
#endregion
#region [ GameMode ]
if (TJAPlayer3.ConfigIni.bTokkunMode == true)
nGameMode = 1;
else
nGameMode = 0;
#endregion
#region [ AutoMode ]
bool _auto = (player == 0)
? TJAPlayer3.ConfigIni.b太鼓パートAutoPlay
: TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P;
if (_auto == true)
nAutoMode = 1;
else
nAutoMode = 0;
#endregion
}
public void Decision(int player)
{
int actual = TJAPlayer3.GetActualPlayer(player);
#region [ Speed ]
if (nSpeedCount == 0)
{
TJAPlayer3.ConfigIni.nScrollSpeed[TJAPlayer3.GetActualPlayer(0)] = 4;
TJAPlayer3.ConfigIni.nScrollSpeed[actual] = 4;
}
else if (nSpeedCount > 0 && nSpeedCount <= 11)
{
TJAPlayer3.ConfigIni.nScrollSpeed[TJAPlayer3.GetActualPlayer(0)] = nSpeedCount + 8;
TJAPlayer3.ConfigIni.nScrollSpeed[actual] = nSpeedCount + 8;
}
else if (nSpeedCount == 12)
{
TJAPlayer3.ConfigIni.nScrollSpeed[TJAPlayer3.GetActualPlayer(0)] = 24;
TJAPlayer3.ConfigIni.nScrollSpeed[actual] = 24;
}
else if (nSpeedCount == 13)
{
TJAPlayer3.ConfigIni.nScrollSpeed[TJAPlayer3.GetActualPlayer(0)] = 29;
TJAPlayer3.ConfigIni.nScrollSpeed[actual] = 29;
}
else if (nSpeedCount == 14)
{
TJAPlayer3.ConfigIni.nScrollSpeed[TJAPlayer3.GetActualPlayer(0)] = 34;
TJAPlayer3.ConfigIni.nScrollSpeed[actual] = 34;
}
else if (nSpeedCount == 15)
{
TJAPlayer3.ConfigIni.nScrollSpeed[TJAPlayer3.GetActualPlayer(0)] = 39;
TJAPlayer3.ConfigIni.nScrollSpeed[actual] = 39;
}
#endregion
#region [ Doron ]
if (nStealth == 0)
{
TJAPlayer3.ConfigIni.eSTEALTH = Eステルスモード.OFF;
@ -297,9 +432,12 @@ namespace TJAPlayer3
{
TJAPlayer3.ConfigIni.eSTEALTH = Eステルスモード.DORON;
}
#endregion
#region [ Random ]
if(nRandom == 2 && nAbekobe == 1)
if (nRandom == 2 && nAbekobe == 1)
{
TJAPlayer3.ConfigIni.eRandom.Taiko = Eランダムモード.HYPERRANDOM;
}
@ -322,10 +460,19 @@ namespace TJAPlayer3
else if (nRandom == 0 && nAbekobe == 0)
{
TJAPlayer3.ConfigIni.eRandom.Taiko = Eランダムモード.OFF;
}
}
#endregion
#region [ Timing ]
TJAPlayer3.ConfigIni.nTimingZones[actual] = nTiming;
#endregion
#region [ GameMode ]
if(nGameMode == 0)
if (nGameMode == 0)
{
TJAPlayer3.ConfigIni.bTokkunMode = false;
}
@ -333,16 +480,26 @@ namespace TJAPlayer3
{
TJAPlayer3.ConfigIni.bTokkunMode = true;
}
#endregion
#region [ AutoMode ]
if(nAutoMode == 1)
if (nAutoMode == 1)
{
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = true;
if (player == 0)
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = true;
else
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = true;
}
else
{
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = false;
if (player == 0)
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = false;
else
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = false;
}
#endregion
}

View File

@ -197,7 +197,7 @@ namespace TJAPlayer3
if (this.ctBarAnimeIn.b終了値に達した)
{
if (!bSelect[0] && !bOption[0])
if (!bSelect[0] && !isOnOption())
{
if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow))
{
@ -250,7 +250,7 @@ namespace TJAPlayer3
}
}
if (!bSelect[1] && !bOption[1] && TJAPlayer3.ConfigIni.nPlayerCount > 1)
if (!bSelect[1] && !isOnOption() && TJAPlayer3.ConfigIni.nPlayerCount > 1)
{
if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P))
{
@ -478,6 +478,11 @@ namespace TJAPlayer3
}
}
private bool isOnOption()
{
return bOption[1] || bOption[0];
}
public int nStrジャンルtoNum(string strジャンル)
{
return TJAPlayer3.stage選曲.act曲リスト.nStrジャンルtoNumBox(strジャンル);

View File

@ -792,8 +792,9 @@ namespace TJAPlayer3
// To change later to adapt to Tower Ama-kuchi
diff = Math.Min(diff, (int)Difficulty.Oni);
// To do : Add -2 ~ +2 mod modifiers
CConfigIni.CTimingZones tz = (diff <= (int)Difficulty.Normal) ? TJAPlayer3.ConfigIni.tzLevels[2] : TJAPlayer3.ConfigIni.tzLevels[4];
int timingShift = TJAPlayer3.ConfigIni.nTimingZones[player];
CConfigIni.CTimingZones tz = (diff <= (int)Difficulty.Normal) ? TJAPlayer3.ConfigIni.tzLevels[timingShift] : TJAPlayer3.ConfigIni.tzLevels[2 + timingShift];
if (nDeltaTime <= tz.nGoodZone * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))
{

View File

@ -18,8 +18,8 @@ namespace TJAPlayer3
PLACEHOLDER_tDisplayNoneIcon(x + 60, y, player); // 3rd icon
PLACEHOLDER_tDisplayNoneIcon(x + 90, y, player); // 4th icon
PLACEHOLDER_tDisplayNoneIcon(x, y + 30, player); // 5th icon
PLACEHOLDER_tDisplayNoneIcon(x + 30, y + 30, player); // 6th icon
PLACEHOLDER_tDisplayNoneIcon(x + 60, y + 30, player); // 7th icon
tDisplayTimingIcon(x + 30, y + 30, actual); // 6th icon
tDisplaySongSpeedIcon(x + 60, y + 30, player); // 7th icon
tDisplayAutoIcon(x + 90, y + 30, player); // 8th icon
}
@ -35,8 +35,8 @@ namespace TJAPlayer3
PLACEHOLDER_tDisplayNoneIcon(x + 60, y, player); // 3rd icon
PLACEHOLDER_tDisplayNoneIcon(x + 90, y, player); // 4th icon
PLACEHOLDER_tDisplayNoneIcon(x + 120, y, player); // 5th icon
PLACEHOLDER_tDisplayNoneIcon(x + 150, y, player); // 6th icon
PLACEHOLDER_tDisplayNoneIcon(x + 180, y, player); // 7th icon
tDisplayTimingIcon(x + 150, y, actual); // 6th icon
tDisplaySongSpeedIcon(x + 180, y, player); // 7th icon
tDisplayAutoIcon(x + 210, y, player); // 8th icon
if (TJAPlayer3.Tx.Mod_None != null)
@ -77,6 +77,26 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Mod_None?.t2D描画(TJAPlayer3.app.Device, x, y);
}
static private void tDisplaySongSpeedIcon(int x, int y, int player)
{
if (TJAPlayer3.ConfigIni.n演奏速度 > 20)
TJAPlayer3.Tx.Mod_SongSpeed[1]?.t2D描画(TJAPlayer3.app.Device, x, y);
else if (TJAPlayer3.ConfigIni.n演奏速度 < 20)
TJAPlayer3.Tx.Mod_SongSpeed[0]?.t2D描画(TJAPlayer3.app.Device, x, y);
else
TJAPlayer3.Tx.Mod_None?.t2D描画(TJAPlayer3.app.Device, x, y);
}
static private void tDisplayTimingIcon(int x, int y, int player)
{
int zones = TJAPlayer3.ConfigIni.nTimingZones[player];
if (zones != 2)
TJAPlayer3.Tx.Mod_Timing[zones]?.t2D描画(TJAPlayer3.app.Device, x, y);
else
TJAPlayer3.Tx.Mod_None?.t2D描画(TJAPlayer3.app.Device, x, y);
}
static private void PLACEHOLDER_tDisplayNoneIcon(int x, int y, int player)
{
TJAPlayer3.Tx.Mod_None?.t2D描画(TJAPlayer3.app.Device, x, y);

View File

@ -227,6 +227,15 @@
406 : Download puchicharas button
407 : Online multiplayer button
# Mod specific (005XX)
500 : "Timing" mod name
501 : "Loose" timing mod option
502 : "Lenient" timing mod option
503 : "Normal" timing mod option
504 : "Strict" timing mod option
505 : "Rigorous" timing mod option
# In-game pause menu (0090X)
900 : Continue

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB