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

Fix #152 and branch score issues (except dan for now)

This commit is contained in:
0aubsq 2022-08-25 11:30:52 +02:00
parent bf3c7e4549
commit b9bcca4fc8
4 changed files with 134 additions and 159 deletions

View File

@ -1245,6 +1245,7 @@ namespace TJAPlayer3
private int nNowRoll = 0;
private int nNowRollCount = 0;
private int[] nNowRollCountBranch = new int[3];
private int[] n連打チップ_temp = new int[3];
public int nOFFSET = 0;
@ -1340,7 +1341,7 @@ namespace TJAPlayer3
public bool bGOGOTIME; //2018.03.11 kairera0467
public bool[] IsBranchBarDraw = new bool[4]; // 仕様変更により、黄色lineの表示法を変更.2020.04.21.akasoko26
public bool IsEndedBranching; // BRANCHENDが呼び出されたかどうか
public bool IsEndedBranching = true; // BRANCHENDが呼び出されたかどうか
public Dan_C[] Dan_C;
public bool IsEnabledFixSENote;
@ -2364,6 +2365,8 @@ namespace TJAPlayer3
int nBar = 0;
int nCount = 0;
this.nNowRollCount = 0;
for (int i = 0; i < this.nNowRollCountBranch.Length; i++)
this.nNowRollCountBranch[i] = 0;
List<STLYRIC> tmplistlyric = new List<STLYRIC>();
int BGM番号 = 0;
@ -2393,6 +2396,8 @@ namespace TJAPlayer3
nCount++;
this.nNowRollCount++;
for (int i = 0; i < this.nNowRollCountBranch.Length; i++)
this.nNowRollCountBranch[i]++;
switch (ch)
{
@ -4404,6 +4409,8 @@ namespace TJAPlayer3
else
{
this.nNowRollCount = listChip.Count;
for (int i = 0; i < this.nNowRollCountBranch.Length; i++)
this.nNowRollCountBranch[i] = listChip_Branch[i].Count;
nNowRoll = nObjectNum;
}
}
@ -4448,9 +4455,11 @@ namespace TJAPlayer3
chip.bGOGOTIME = this.bGOGOTIME;
if (NotesManager.IsBalloon(chip) || NotesManager.IsKusudama(chip))
{
//this.n現在のコースをswitchで分岐していたため風船の値がうまく割り当てられていない 2020.04.21 akasoko26
{
//this.n現在のコースをswitchで分岐していたため風船の値がうまく割り当てられていない 2020.04.21 akasoko26
#region [Balloons]
switch (chip.nコース)
{
case ECourse.eNormal:
@ -4466,12 +4475,6 @@ namespace TJAPlayer3
this.listBalloon_Normal_数値管理++;
break;
}
//else if( this.listBalloon.Count != 0 )
//{
// chip.nBalloon = this.listBalloon[ this.listBalloon_Normal_数値管理 ];
// this.listBalloon_Normal_数値管理++;
// break;
//}
break;
case ECourse.eExpert:
if (this.listBalloon_Expert.Count == 0)
@ -4486,12 +4489,6 @@ namespace TJAPlayer3
this.listBalloon_Expert_数値管理++;
break;
}
//else if( this.listBalloon.Count != 0 )
//{
// chip.nBalloon = this.listBalloon[ this.listBalloon_Normal_数値管理 ];
// this.listBalloon_Normal_数値管理++;
// break;
//}
break;
case ECourse.eMaster:
if (this.listBalloon_Master.Count == 0)
@ -4506,14 +4503,11 @@ namespace TJAPlayer3
this.listBalloon_Master_数値管理++;
break;
}
//else if( this.listBalloon.Count != 0 )
//{
// chip.nBalloon = this.listBalloon[ this.listBalloon_Normal_数値管理 ];
// this.listBalloon_Normal_数値管理++;
// break;
//}
break;
}
}
#endregion
}
if (NotesManager.IsRollEnd(chip))
{
@ -4525,12 +4519,30 @@ namespace TJAPlayer3
chip.nーツ移動開始時刻ms = listChip[nNowRollCount].nーツ移動開始時刻ms;
chip.n連打音符State = nNowRoll;
listChip[nNowRollCount].nーツ終了位置 = (this.n現在の小節数 * 384) + ((384 * n) / n文字数);
listChip[nNowRollCount].nーツ終了時刻ms = (int)this.dbNowTime;
listChip[nNowRollCount].fBMSCROLLTime_end = (int)this.dbNowBMScollTime;
if (!IsEndedBranching || i == 0)
{
listChip[nNowRollCount].nーツ終了位置 = (this.n現在の小節数 * 384) + ((384 * n) / n文字数);
listChip[nNowRollCount].nーツ終了時刻ms = (int)this.dbNowTime;
listChip[nNowRollCount].fBMSCROLLTime_end = (int)this.dbNowBMScollTime;
}
else if (!IsEndedBranching)
{
listChip_Branch[(int)chip.nコース][nNowRollCountBranch[(int)chip.nコース]].nーツ終了位置 = (this.n現在の小節数 * 384) + ((384 * n) / n文字数);
listChip_Branch[(int)chip.nコース][nNowRollCountBranch[(int)chip.nコース]].nーツ終了時刻ms = (int)this.dbNowTime;
listChip_Branch[(int)chip.nコース][nNowRollCountBranch[(int)chip.nコース]].fBMSCROLLTime_end = (int)this.dbNowBMScollTime;
}
else
{
listChip_Branch[i][nNowRollCountBranch[i]].nーツ終了位置 = (this.n現在の小節数 * 384) + ((384 * n) / n文字数);
listChip_Branch[i][nNowRollCountBranch[i]].nーツ終了時刻ms = (int)this.dbNowTime;
listChip_Branch[i][nNowRollCountBranch[i]].fBMSCROLLTime_end = (int)this.dbNowBMScollTime;
}
//listChip[ nNowRollCount ].dbBPM = this.dbNowBPM;
//listChip[ nNowRollCount ].dbSCROLL = this.dbNowSCROLL;
nNowRoll = 0;
if (!IsEndedBranching || i == 2)
nNowRoll = 0;
//continue;
}
@ -4582,25 +4594,33 @@ namespace TJAPlayer3
#region [ ]
//譜面分岐がない譜面でも値は加算されてしまうがしゃあない
//分岐を開始しない間は共通譜面としてみなす。
if (IsEndedBranching)
this.nーツ数_Branch[i]++;
else this.nーツ数_Branch[(int)chip.nコース]++;
if (!IsEndedBranching && !this.b分岐を一回でも開始した)
if (IsEndedBranching)
{
this.nーツ数_Branch[i]++;
if (i == 0)
{
if (this.n参照中の難易度 == (int)Difficulty.Dan)
{
this.nDan_NotesCount[DanSongs.Number - 1]++;
}
this.nーツ数[3]++;
}
}
else
{
//IsEndedBranching==false = forloopが行われていないときのみ
for (int l = 0; l < 3; l++)
this.nーツ数_Branch[l]++;
this.nーツ数_Branch[(int)chip.nコース]++;
if (!this.b分岐を一回でも開始した)
{
//IsEndedBranching==false = forloopが行われていないときのみ
for (int l = 0; l < 3; l++)
this.nーツ数_Branch[l]++;
}
}
if (this.n参照中の難易度 == (int)Difficulty.Dan)
{
this.nDan_NotesCount[DanSongs.Number - 1]++;
}
this.nーツ数[3]++;
#endregion
}
else if (NotesManager.IsBalloon(chip) || NotesManager.IsKusudama(chip))
@ -4621,12 +4641,18 @@ namespace TJAPlayer3
Array.Resize(ref nDan_NotesCount, nDan_NotesCount.Length + 1);
// Array.Resize(ref nDan_BallonCount, nDan_BallonCount.Length + 1);
this.listChip.Add(chip);
if(IsEndedBranching)
this.listChip_Branch[i].Add(chip);
else
this.listChip_Branch[(int)chip.nコース].Add(chip);
if (IsEndedBranching)
{
this.listChip_Branch[i].Add(chip);
if (i == 0)
this.listChip.Add(chip);
}
else
{
this.listChip_Branch[(int)chip.nコース].Add(chip);
this.listChip.Add(chip);
}
}
}
@ -5372,42 +5398,7 @@ namespace TJAPlayer3
/// </summary>
private int CharConvertNote(string str)
{
return (NotesManager.GetNoteValueFromChar(str));
/*
switch (str)
{
case "0":
return 0;
case "1":
return 1;
case "2":
return 2;
case "3":
return 3;
case "4":
return 4;
case "5":
return 5;
case "6":
return 6;
case "7":
return 7;
case "8":
return 8;
case "9":
return 7; //2017.01.30 DD 芋連打を風船連打扱いに
case "A": //2017.08.22 kairera0467 手つなぎ
return 10;
case "B":
return 11;
case "F":
return 15;
default:
return -1;
}
*/
return (NotesManager.GetNoteValueFromChar(str));
}
private int strConvertCourse(string str)

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Text;
using FDK;
using System.Diagnostics;
using System.Linq;
namespace TJAPlayer3
{
@ -13,6 +14,7 @@ namespace TJAPlayer3
public double dbBPM;
public readonly int[] NowMeasure = new int[2];
public double dbSCROLL;
public int[] _chipCounts = new int[2];
// コンストラクタ
@ -32,6 +34,10 @@ namespace TJAPlayer3
}
this.dbBPM = TJAPlayer3.DTX.BASEBPM;
this.dbSCROLL = 1.0;
_chipCounts[0] = TJAPlayer3.DTX.listChip.Where(num => NotesManager.IsMissableNote(num)).Count();
_chipCounts[1] = TJAPlayer3.DTX.listChip_Branch[2].Where(num => NotesManager.IsMissableNote(num)).Count();
base.On活性化();
}
public override int On進行描画()
@ -55,11 +61,11 @@ namespace TJAPlayer3
y -= 0x10;
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "Frame: {0:####0} fps", TJAPlayer3.FPS.n現在のFPS ) );
y -= 0x10;
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "NoteN: {0:####0}", TJAPlayer3.DTX.nーツ数[0] ) );
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "NoteN: {0:####0}", TJAPlayer3.DTX.nーツ数_Branch[0] ) );
y -= 0x10;
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "NoteE: {0:####0}", TJAPlayer3.DTX.nーツ数[1] ) );
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "NoteE: {0:####0}", TJAPlayer3.DTX.nーツ数_Branch[1] ) );
y -= 0x10;
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "NoteM: {0:####0}", TJAPlayer3.DTX.nーツ数[2] ) );
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "NoteM: {0:####0}", TJAPlayer3.DTX.nーツ数_Branch[2] ) );
y -= 0x10;
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "NoteC: {0:####0}", TJAPlayer3.DTX.nーツ数[3] ) );
y -= 0x10;
@ -68,14 +74,17 @@ namespace TJAPlayer3
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "SCOREMODE: {0:####0}", TJAPlayer3.DTX.nScoreModeTmp ) );
y -= 0x10;
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "SCROLLMODE: {0:####0}", Enum.GetName(typeof(EScrollMode), TJAPlayer3.ConfigIni.eScrollMode ) ) );
//CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "Sound CPU : {0:####0.00}%", CDTXMania.Sound管理.GetCPUusage() ) );
//y -= 0x10;
//CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "Sound Mixing: {0:####0}", CDTXMania.Sound管理.GetMixingStreams() ) );
//y -= 0x10;
//CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "Sound Streams: {0:####0}", CDTXMania.Sound管理.GetStreams() ) );
//y -= 0x10;
y -= 0x10;
TJAPlayer3.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別., string.Format( "ListChip: {0:####0}", _chipCounts[0]));
y -= 0x10;
TJAPlayer3.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別., string.Format( "ListChipM: {0:####0}", _chipCounts[1]));
//CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "Sound CPU : {0:####0.00}%", CDTXMania.Sound管理.GetCPUusage() ) );
//y -= 0x10;
//CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "Sound Mixing: {0:####0}", CDTXMania.Sound管理.GetMixingStreams() ) );
//y -= 0x10;
//CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "Sound Streams: {0:####0}", CDTXMania.Sound管理.GetStreams() ) );
//y -= 0x10;
}
}
}

View File

@ -136,72 +136,46 @@ namespace TJAPlayer3
}
}
if (TJAPlayer3.DTX.bチップがある.Branch)
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
nNoteCount[0] = TJAPlayer3.DTX.listChip_Branch[2].Where(num => NotesManager.IsMissableNote(num)).Count();
for (int i = 0; i < TJAPlayer3.DTX.listChip_Branch[2].Count; i++)
{
var chip = TJAPlayer3.DTX.listChip_Branch[2][i];
//nBalloonCount[0] += TJAPlayer3.DTX.listChip_Branch[2][i].nRollCount;
nBalloonCount[0] += TJAPlayer3.DTX.listChip_Branch[2][i].nBalloon;
if (NotesManager.IsRoll(chip))
{
nRollTimeMs[0] += (chip.nーツ終了時刻ms - chip.n発声時刻ms) / 1000.0;
}
//pChip.n発声時刻ms
}
}
else
{
nNoteCount[0] = TJAPlayer3.DTX.listChip.Where(num => NotesManager.IsMissableNote(num)).Count();
for (int i = 0; i < TJAPlayer3.DTX.listChip.Count; i++)
{
var chip = TJAPlayer3.DTX.listChip[i];
//nBalloonCount[0] += TJAPlayer3.DTX.listChip[i].nRollCount;
nBalloonCount[0] += TJAPlayer3.DTX.listChip[i].nBalloon;
if (NotesManager.IsRoll(chip))
{
nRollTimeMs[0] += (chip.nーツ終了時刻ms - chip.n発声時刻ms) / 1000.0;
}
}
}
var _dtx = (i == 0) ? TJAPlayer3.DTX : TJAPlayer3.DTX_2P;
if (TJAPlayer3.ConfigIni.nPlayerCount == 2)
{
if (TJAPlayer3.DTX_2P.bチップがある.Branch)
{
nNoteCount[1] = TJAPlayer3.DTX_2P.listChip_Branch[2].Where(num => NotesManager.IsMissableNote(num)).Count();
for (int i = 0; i < TJAPlayer3.DTX_2P.listChip_Branch[2].Count; i++)
{
var chip = TJAPlayer3.DTX_2P.listChip_Branch[2][i];
//nBalloonCount[1] += TJAPlayer3.DTX_2P.listChip_Branch[2][i].nRollCount;
nBalloonCount[1] += TJAPlayer3.DTX_2P.listChip_Branch[2][i].nBalloon;
if (NotesManager.IsRoll(chip))
{
nRollTimeMs[1] += (chip.nーツ終了時刻ms - chip.n発声時刻ms) / 1000.0;
}
}
}
else
{
nNoteCount[1] = TJAPlayer3.DTX_2P.listChip.Where(num => NotesManager.IsMissableNote(num)).Count();
for (int i = 0; i < TJAPlayer3.DTX_2P.listChip.Count; i++)
{
var chip = TJAPlayer3.DTX_2P.listChip[i];
//nBalloonCount[1] += TJAPlayer3.DTX_2P.listChip[i].nRollCount;
nBalloonCount[1] += TJAPlayer3.DTX_2P.listChip[i].nBalloon;
if (NotesManager.IsRoll(chip))
{
nRollTimeMs[1] += (chip.nーツ終了時刻ms - chip.n発声時刻ms) / 1000.0;
}
}
}
}
int _totalNotes = 0;
int _totalBalloons = 0;
double _totalRolls = 0;
/*
for (int j = 0; j < (_dtx.bチップがある.Branch ? 2 : 1); j++)
{
var _list = (j == 0) ? _dtx.listChip : _dtx.listChip_Branch[2];
_totalNotes += _list.Where(num => NotesManager.IsMissableNote(num)).Count();
for (int k = 0; k < _list.Count; k++)
{
var _chip = _list[k];
_totalBalloons += _chip.nBalloon;
if (NotesManager.IsRoll(_chip))
_totalRolls += (_chip.nーツ終了時刻ms - _chip.n発声時刻ms) / 1000.0;
}
}
*/
var _list = (_dtx.bチップがある.Branch) ? _dtx.listChip_Branch[2] : _dtx.listChip;
_totalNotes += _list.Where(num => NotesManager.IsMissableNote(num)).Count();
for (int k = 0; k < _list.Count; k++)
{
var _chip = _list[k];
_totalBalloons += _chip.nBalloon;
if (NotesManager.IsRoll(_chip))
_totalRolls += (_chip.nーツ終了時刻ms - _chip.n発声時刻ms) / 1000.0;
}
nNoteCount[i] = _totalNotes;
nBalloonCount[i] = _totalBalloons;
nRollTimeMs[i] = _totalRolls;
}
for (int k = 0; k < TJAPlayer3.ConfigIni.nPlayerCount; k++)
{
@ -4184,7 +4158,8 @@ namespace TJAPlayer3
}
else
{
dTX.listChip[A].b可視 = false;
if (!dTX.listChip[A].IsEndedBranching)
dTX.listChip[A].b可視 = false;
}
//共通なため分岐させない.
dTX.listChip[A].eNoteState = ENoteState.none;

Binary file not shown.