1
0
mirror of synced 2024-11-24 07:30:21 +01:00
This commit is contained in:
0auBSQ 2023-12-13 18:13:42 +09:00
commit ad232b7532
3 changed files with 60 additions and 9 deletions

View File

@ -2272,7 +2272,7 @@ namespace TJAPlayer3
#region [ _拍線の挿入 ]
if (this.listChip.Count > 0)
{
this.listChip.Sort(); // 高速化のためにはこれを削りたいが、listChipの最後がn発声位置の終端である必要があるので、
//this.listChip.Sort(); // 高速化のためにはこれを削りたいが、listChipの最後がn発声位置の終端である必要があるので、
// 保守性確保を優先してここでのソートは残しておく
// なお、093時点では、このソートを削除しても動作するようにはしてある。
// (ここまでの一部チップ登録を、listChip.Add(c)から同Insert(0,c)に変更してある)
@ -2369,7 +2369,7 @@ namespace TJAPlayer3
else if (chip.nチャンネル番号 == 0xF1) { }
else if (chip.nチャンネル番号 == 0xF2) { }
else if (chip.nチャンネル番号 == 0xFF) { }
else if (chip.nチャンネル番号 == 0xDD) { chip.n発声時刻ms = ms + ((int)(((625 * (chip.n発声位置 - n発声位置)) * this.dbBarLength) / bpm)); }
//else if (chip.nチャンネル番号 == 0xDD) { chip.n発声時刻ms = ms + ((int)(((625 * (chip.n発声位置 - n発声位置)) * this.dbBarLength) / bpm)); }
else if (chip.nチャンネル番号 == 0xDF) { chip.n発声時刻ms = ms + ((int)(((625 * (chip.n発声位置 - n発声位置)) * this.dbBarLength) / bpm)); }
else if (chip.nチャンネル番号 < 0x93)
chip.n発声時刻ms = ms + ((int)(((625 * (chip.n発声位置 - n発声位置)) * this.dbBarLength) / bpm));
@ -6550,6 +6550,7 @@ namespace TJAPlayer3
}
else
{
/*
if (this.b小節線を挿入している == false)
{
// 小節線にもやってあげないと
@ -6637,6 +6638,52 @@ namespace TJAPlayer3
#endregion
}
*/
int measureTime = (int)this.dbNowTime;
void addMeasureLine(ECourse course)
{
CChip chip = new CChip();
chip.n発声位置 = ((this.n現在の小節数) * 384);
chip.nチャンネル番号 = 0x50;
chip.n発声時刻ms = measureTime;
chip.n整数値 = this.n現在の小節数;
chip.n文字数 = n文字数;
chip.n整数値_内部番号 = this.n現在の小節数;
chip.dbBPM = this.dbNowBPM;
chip.fNow_Measure_m = this.fNow_Measure_m;
chip.fNow_Measure_s = this.fNow_Measure_s;
chip.IsEndedBranching = IsEndedBranching;
chip.dbSCROLL = this.dbNowScroll;
chip.dbSCROLL_Y = this.dbNowScrollY;
chip.fBMSCROLLTime = (float)this.dbNowBMScollTime;
chip.eScrollMode = eScrollMode;
chip.nコース = course;
chip.b可視 = true;
chip.bHideBarLine = this.bBARLINECUE[0] == 1;
#region [ ]
if (IsEndedBranching)
{
if (this.IsBranchBarDraw[(int)course])
chip.bBranch = true;
}
else
{
if (this.IsBranchBarDraw[(int)n現在のコース])
chip.bBranch = true;
}
#endregion
this.listChip.Add(chip);
#region [ ]
if (IsEndedBranching)
this.IsBranchBarDraw[(int)course] = false;
else this.IsBranchBarDraw[(int)n現在のコース] = false;
#endregion
}
for (int n = 0; n < InputText.Length; n++)
{
@ -6945,6 +6992,10 @@ namespace TJAPlayer3
this.listChip.Add(chip);
}
if (i == 0)
{
addMeasureLine(chip.nコース);
}
}
}
@ -8429,7 +8480,7 @@ namespace TJAPlayer3
listChip.AddRange(listAddMixerChannel);
listChip.AddRange(listRemoveMixerChannel);
listChip.AddRange(listRemoveTiming);
listChip.Sort();
//listChip.Sort();
}
private void DebugOut_CChipList(List<CChip> c)
{

View File

@ -3724,7 +3724,7 @@ namespace TJAPlayer3
//this.t進行描画_チップ_Taiko連打(configIni, ref dTX, ref pChip);
//2015.04.13 kairera0467 ここを外さないと恋文2000の連打に対応できず、ここをつけないと他のコースと重なっている連打をどうにもできない。
//常時実行メソッドに渡したら対応できた!?
//if ((!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0)))
//if ((!pChip.bHit && ( time < 0 )))
{
if( ( pChip.n発声時刻ms <= (int)n現在時刻ms && pChip.nーツ終了時刻ms >= (int)n現在時刻ms ) )
{
@ -3910,7 +3910,6 @@ namespace TJAPlayer3
#region [ 50: ]
case 0x50: // 小節線
{
if ( !pChip.bHit && time < 0)
{
//if (nPlayer == 0) TJAPlayer3.BeatScaling = new CCounter(0, 1000, 120.0 / pChip.dbBPM / 2.0, TJAPlayer3.Timer);

View File

@ -1978,6 +1978,9 @@ namespace TJAPlayer3
}
#endregion
long __dbt = (long)(SoundManager.PlayTimer.NowTimeMs * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
long time = pChip.n発声時刻ms - __dbt;
if( pChip.dbSCROLL_Y != 0.0 )
{
var dbSCROLL = pChip.eScrollMode == EScrollMode.BMSCROLL ? 1.0 : pChip.dbSCROLL;
@ -1986,8 +1989,6 @@ namespace TJAPlayer3
double _scrollSpeed = pChip.dbSCROLL_Y * (this.act譜面スクロール速度.db現在の譜面スクロール速度[nPlayer] + 1.0) / 10.0;
long __dbt = (long)(SoundManager.PlayTimer.NowTimeMs * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
long time = pChip.n発声時刻ms - __dbt;
float play_bpm_time = this.GetNowPBMTime(dTX, 0);
y += NotesManager.GetNoteY(pChip, time * pChip.dbBPM, _scrollSpeed, TJAPlayer3.Skin.Game_Notes_Interval, play_bpm_time, pChip.eScrollMode, false);
@ -2005,7 +2006,7 @@ namespace TJAPlayer3
}
}
if ( pChip.nバーからの距離dot.Drums < 0 )
if ( time < 0 )
{
this.actGame.st叩ききりまショー.b最初のチップが叩かれた = true;
}