1
0
mirror of synced 2025-02-17 19:09:25 +01:00

Add SE Notes for Konga notes, mine and purple note, Add Easy/Normal timezones for Dan songs using those difficulties, fix some parsing bugs

This commit is contained in:
0aubsq 2022-05-16 20:11:38 +02:00
parent 1fb8b24849
commit 0b1b700a79
4 changed files with 78 additions and 17 deletions

View File

@ -84,6 +84,13 @@ namespace TJAPlayer3
return tex;
}
internal CTexture TxCAbsolute(string FileName)
{
var tex = TJAPlayer3.tテクスチャの生成(FileName);
listTexture.Add(tex);
return tex;
}
internal CTextureAf TxCAf(string FileName)
{
var tex = TJAPlayer3.tテクスチャの生成Af(CSkin.Path(BASE + FileName));
@ -343,7 +350,13 @@ namespace TJAPlayer3
Note_Swap = TxC(GAME + @"Swap.png");
Judge_Frame = TxC(GAME + @"Notes.png");
SENotes = TxC(GAME + @"SENotes.png");
SENotes = new CTexture[2];
SENotes[0] = TxC(GAME + @"SENotes.png");
SENotes[1] = TxC(GAME + @"SENotes_Konga.png");
SENotesExtension = TxC(GAME + @"SENotes_Extension.png");
Notes_Arm = TxC(GAME + @"Notes_Arm.png");
Judge = TxC(GAME + @"Judge.png");
ChipEffect = TxC(GAME + @"ChipEffect.png");
@ -1588,7 +1601,7 @@ namespace TJAPlayer3
public CTexture Judge_Frame,
Note_Mine,
Note_Swap,
SENotes,
SENotesExtension,
Notes_Arm,
ChipEffect,
ScoreRank,
@ -1596,7 +1609,8 @@ namespace TJAPlayer3
public CTexture Judge_Meter,
Bar,
Bar_Branch;
public CTexture[] Notes;
public CTexture[] Notes,
SENotes;
#endregion

View File

@ -796,12 +796,36 @@ namespace TJAPlayer3
int diff = TJAPlayer3.stage選曲.n確定された曲の難易度[player];
// To change later to adapt to Tower Ama-kuchi
diff = Math.Min(diff, (int)Difficulty.Oni);
//diff = Math.Min(diff, (int)Difficulty.Oni);
int actual = TJAPlayer3.GetActualPlayer(player);
int timingShift = TJAPlayer3.ConfigIni.nTimingZones[actual];
CConfigIni.CTimingZones tz = (diff <= (int)Difficulty.Normal) ? TJAPlayer3.ConfigIni.tzLevels[timingShift] : TJAPlayer3.ConfigIni.tzLevels[2 + timingShift];
int timingShift = TJAPlayer3.ConfigIni.nTimingZones[actual];
bool _timingzonesAreEasy = false;
// Diff = Normal or Easy
if (diff <= (int)Difficulty.Normal)
{
_timingzonesAreEasy = true;
}
// Diff = Dan and current song is Normal or Easy
if (diff == (int)Difficulty.Dan)
{
int _nb = TJAPlayer3.stage演奏ドラム画面.actDan.NowShowingNumber;
var _danSongs = TJAPlayer3.stage選曲.r確定された曲.DanSongs;
if (_nb < _danSongs.Count)
{
var _currentDiff = _danSongs[_nb].Difficulty;
if (_currentDiff <= (int)Difficulty.Normal)
_timingzonesAreEasy = true;
}
}
CConfigIni.CTimingZones tz = (_timingzonesAreEasy == true) ? TJAPlayer3.ConfigIni.tzLevels[timingShift] : TJAPlayer3.ConfigIni.tzLevels[2 + timingShift];
if (nDeltaTime <= tz.nGoodZone * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))
{

View File

@ -1833,7 +1833,9 @@ namespace TJAPlayer3
case 0x101:
{
NotesManager.DisplayNote(nPlayer, x, y, pChip, num9);
TJAPlayer3.Tx.SENotes?.t2D描画(device, x - 2, y + nSenotesY, new Rectangle(0, 30 * pChip.nSenote, 136, 30));
NotesManager.DisplaySENotes(nPlayer, x - 2, y + nSenotesY, pChip);
//TJAPlayer3.Tx.SENotes[(int)_gt]?.t2D描画(device, x - 2, y + nSenotesY, new Rectangle(0, 30 * pChip.nSenote, 136, 30));
break;
}
@ -1853,7 +1855,7 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Notes_Arm?.t2D描画(device, x + 60, (y - 14) - nHand);
}
NotesManager.DisplayNote(nPlayer, x, y, pChip, num9);
TJAPlayer3.Tx.SENotes?.t2D描画(device, x - 2, y + nSenotesY,
TJAPlayer3.Tx.SENotes[(int)_gt]?.t2D描画(device, x - 2, y + nSenotesY,
new Rectangle(0, pChip.nチャンネル番号 == 0x1A ? 390 : 420, 136, 30));
}
break;
@ -2088,15 +2090,15 @@ namespace TJAPlayer3
{
NotesManager.DisplayRoll(nPlayer, x, y, pChip, num9, normalColor, effectedColor, x末端);
if (TJAPlayer3.Tx.SENotes != null)
if (TJAPlayer3.Tx.SENotes[(int)_gt] != null)
{
int _shift = NotesManager.IsBigRoll(pChip) ? 26 : 0;
TJAPlayer3.Tx.SENotes.vc拡大縮小倍率.X = x末端 - x - 44 - _shift;
TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x + 90 + _shift, y + nSenotesY, new Rectangle(60, 240, 1, 30));
TJAPlayer3.Tx.SENotes.vc拡大縮小倍率.X = 1.0f;
TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x + 30 + _shift, y + nSenotesY, new Rectangle(0, 240, 60, 30));
TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x - (_shift / 13), y + nSenotesY, new Rectangle(0, 30 * pChip.nSenote, 136, 30));
TJAPlayer3.Tx.SENotes[(int)_gt].vc拡大縮小倍率.X = x末端 - x - 44 - _shift;
TJAPlayer3.Tx.SENotes[(int)_gt].t2D描画(TJAPlayer3.app.Device, x + 90 + _shift, y + nSenotesY, new Rectangle(60, 240, 1, 30));
TJAPlayer3.Tx.SENotes[(int)_gt].vc拡大縮小倍率.X = 1.0f;
TJAPlayer3.Tx.SENotes[(int)_gt].t2D描画(TJAPlayer3.app.Device, x + 30 + _shift, y + nSenotesY, new Rectangle(0, 240, 60, 30));
TJAPlayer3.Tx.SENotes[(int)_gt].t2D描画(TJAPlayer3.app.Device, x - (_shift / 13), y + nSenotesY, new Rectangle(0, 30 * pChip.nSenote, 136, 30));
}
}
@ -2111,13 +2113,14 @@ namespace TJAPlayer3
x = (349 + pChip.nバーからのーツ末端距離dot);
NotesManager.DisplayNote(nPlayer, x, y, pChip, num9, 260);
NotesManager.DisplaySENotes(nPlayer, x - 2, y + nSenotesY, pChip);
/*
if (TJAPlayer3.ConfigIni.eSTEALTH != Eステルスモード.DORON)
TJAPlayer3.Tx.Notes[(int)_gt].t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(1430, num9, 260, 130));
*/
TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x - 2, y + nSenotesY, new Rectangle(0, 30 * pChip.nSenote, 136, 30));
//TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x - 2, y + nSenotesY, new Rectangle(0, 30 * pChip.nSenote, 136, 30));
}
}
if (NotesManager.IsRollEnd(pChip))
@ -2142,7 +2145,7 @@ namespace TJAPlayer3
{
//if( CDTXMania.ConfigIni.eSTEALTH != Eステルスモード.DORON )
// CDTXMania.Tx.Notes.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( n, num9, 130, 130 ) );//大音符:1170
TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x + 56, y + nSenotesY, new Rectangle(58, 270, 78, 30));
TJAPlayer3.Tx.SENotes[(int)_gt]?.t2D描画(TJAPlayer3.app.Device, x + 56, y + nSenotesY, new Rectangle(58, 270, 78, 30));
}
}

View File

@ -45,7 +45,8 @@ namespace TJAPlayer3
for (int i = 0; i < s.Length; i++)
{
if (GetNoteValueFromChar(s.Substring(i, 1)) == -1)
if (GetNoteValueFromChar(s.Substring(i, 1)) == -1
&& s.Substring(i, 1) != ",")
return false;
}
@ -304,6 +305,25 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Notes[(int)_gt].color4 = normalColor;
}
// SENotes
public static void DisplaySENotes(int player, int x, int y, CDTX.CChip chip)
{
EGameType _gt = TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(player)];
if (IsMine(chip))
{
TJAPlayer3.Tx.SENotesExtension?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 30, 136, 30));
}
else if (IsPurpleNote(chip) && _gt != EGameType.KONGA)
{
TJAPlayer3.Tx.SENotesExtension?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, 136, 30));
}
else
{
TJAPlayer3.Tx.SENotes[(int)_gt]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 30 * chip.nSenote, 136, 30));
}
}
#endregion