1
0
mirror of synced 2025-01-19 01:24:08 +01:00

Fix #66, Fix Branch accuracy calculation, remove dead code

This commit is contained in:
0aubsq 2021-11-20 22:01:34 +01:00
parent 9c1e1604a7
commit 415ae1f923
5 changed files with 39 additions and 112 deletions

View File

@ -1264,18 +1264,6 @@ for (int i = 0; i < 3; i++) {
case CStage.Eステージ.:
#region [ *** ]
//-----------------------------
//long n1 = FDK.CSound管理.rc演奏用タイマ.nシステム時刻ms;
//long n2 = FDK.CSound管理.SoundDevice.n経過時間ms;
//long n3 = FDK.CSound管理.SoundDevice.tmシステムタイマ.nシステム時刻ms;
//long n4 = FDK.CSound管理.rc演奏用タイマ.n現在時刻;
//long n5 = FDK.CSound管理.SoundDevice.n経過時間を更新したシステム時刻ms;
//swlist1.Add( Convert.ToInt32(n1) );
//swlist2.Add( Convert.ToInt32(n2) );
//swlist3.Add( Convert.ToInt32( n3 ) );
//swlist4.Add( Convert.ToInt32( n4 ) );
//swlist5.Add( Convert.ToInt32( n5 ) );
#region [ DTXVモード中にDTXCreatorから指示を受けた場合の処理 ]
if ( DTXVmode.Enabled && DTXVmode.Refreshed )

View File

@ -89,65 +89,6 @@ namespace TJAPlayer3
}
}
#endregion
#region [ t演奏結果を格納する_太鼓() ]
public void t演奏結果を格納する_太鼓( out CScoreIni.C演奏記録 Drums )
{
Drums = new CScoreIni.C演奏記録();
//if ( CDTXMania.DTX.bチップがある.Drums )
{
Drums.nスコア = (long) this.actScore.Get( E楽器パート.DRUMS, 0 );
Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( TJAPlayer3.DTX.LEVEL.Drums, TJAPlayer3.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.actCombo.n現在のコンボ数.P2, E楽器パート.DRUMS, bIsAutoPlay );
Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( TJAPlayer3.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.nヒット数_Auto含まない.Drums.Great, this.nヒット数_Auto含まない.Drums.Good, this.nヒット数_Auto含まない.Drums.Poor, this.nヒット数_Auto含まない.Drums.Miss, E楽器パート.DRUMS, bIsAutoPlay );
Drums.nPerfect数 = this.nヒット数_Auto含まない.Taiko.Perfect;
Drums.nGreat数 = this.nヒット数_Auto含まない.Taiko.Great;
Drums.nGood数 = this.nヒット数_Auto含まない.Taiko.Good;
Drums.nPoor数 = this.nヒット数_Auto含まない.Taiko.Poor;
Drums.nMiss数 = this.nヒット数_Auto含まない.Taiko.Miss;
Drums.nPerfect数_Auto含まない = this.nヒット数_Auto含まない.Taiko.Perfect;
Drums.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Taiko.Great;
Drums.nGood数_Auto含まない = this.nヒット数_Auto含まない.Taiko.Good;
Drums.nPoor数_Auto含まない = this.nヒット数_Auto含まない.Taiko.Poor;
Drums.nMiss数_Auto含まない = this.nヒット数_Auto含まない.Taiko.Miss;
Drums.n連打数 = this.n合計連打数[ 0 ];
Drums.n最大コンボ数 = this.actCombo.n現在のコンボ数.P2;
Drums.n全チップ数 = TJAPlayer3.DTX.nーツ数[ 3 ];
for ( int i = 0; i < (int) Eレーン.MAX; i++ )
{
Drums.bAutoPlay[ i ] = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay;
}
Drums.bTight = TJAPlayer3.ConfigIni.bTight;
for ( int i = 0; i < 3; i++ )
{
Drums.bSudden[ i ] = TJAPlayer3.ConfigIni.bSudden[ i ];
Drums.bHidden[ i ] = TJAPlayer3.ConfigIni.bHidden[ i ];
Drums.eInvisible[ i ] = TJAPlayer3.ConfigIni.eInvisible[ i ];
Drums.bReverse[ i ] = TJAPlayer3.ConfigIni.bReverse[ i ];
Drums.eRandom[ i ] = TJAPlayer3.ConfigIni.eRandom[ i ];
Drums.bLight[ i ] = TJAPlayer3.ConfigIni.bLight[ i ];
Drums.bLeft[ i ] = TJAPlayer3.ConfigIni.bLeft[ i ];
Drums.f譜面スクロール速度[ i ] = ( (float) ( TJAPlayer3.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f;
}
Drums.eDark = TJAPlayer3.ConfigIni.eDark;
Drums.n演奏速度分子 = TJAPlayer3.ConfigIni.n演奏速度;
Drums.n演奏速度分母 = 20;
Drums.bSTAGEFAILED有効 = TJAPlayer3.ConfigIni.bSTAGEFAILED有効;
Drums.eダメージレベル = TJAPlayer3.ConfigIni.eダメージレベル;
Drums.b演奏にキーボードを使用した = this.b演奏にキーボードを使った;
Drums.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った;
Drums.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った;
Drums.b演奏にマウスを使用した = this.b演奏にマウスを使った;
Drums.nPerfectになる範囲ms = TJAPlayer3.nPerfect範囲ms;
Drums.nGreatになる範囲ms = TJAPlayer3.nGreat範囲ms;
Drums.nGoodになる範囲ms = TJAPlayer3.nGood範囲ms;
Drums.nPoorになる範囲ms = TJAPlayer3.nPoor範囲ms;
Drums.strDTXManiaのバージョン = TJAPlayer3.VERSION;
Drums. = DateTime.Now.ToString();
Drums.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Drums );
Drums.fゲージ = (float)this.actGauge.db現在のゲージ値[ 0 ];
}
}
#endregion
// CStage 実装
@ -315,15 +256,19 @@ namespace TJAPlayer3
this.bUseBranch = new bool[]{ false, false, false, false };
this.n現在のコース = new CDTX.ECourse[4];
this.n次回のコース = new CDTX.ECourse[4];
for (int i = 0; i < 2; i++)
{
this.b強制的に分岐させた[i] = false;
this.CChartScore[i] = new CBRANCHSCORE();
TJAPlayer3.stage演奏ドラム画面.actMtaiko.After[i] = CDTX.ECourse.eNormal;
TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.stBranch[i].nAfter = CDTX.ECourse.eNormal;
TJAPlayer3.stage演奏ドラム画面.actMtaiko.Before[i] = CDTX.ECourse.eNormal;
TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.stBranch[i].nBefore = CDTX.ECourse.eNormal;
}
for (int i = 0; i < CBranchScore.Length; i++)
{
this.CBranchScore[i] = new CBRANCHSCORE();
@ -331,6 +276,8 @@ namespace TJAPlayer3
//大音符分岐時の情報をまとめるため
this.CBranchScore[i].cBigNotes = new CBRANCHSCORE();
}
this.nレーン用表示コース = new CDTX.ECourse[4];
this.b連打中 = new bool[] { false, false, false, false };
this.n現在の連打数 = new int[]{ 0, 0, 0, 0 };
@ -776,6 +723,8 @@ namespace TJAPlayer3
protected E判定表示優先度 e判定表示優先度;
public CBRANCHSCORE[] CBranchScore = new CBRANCHSCORE[6];
public CBRANCHSCORE[] CChartScore = new CBRANCHSCORE[2];
public bool[] bIsGOGOTIME = new bool[4];
public bool[] bUseBranch = new bool[ 4 ];
public CDTX.ECourse[] n現在のコース = new CDTX.ECourse[4]; //0:普通譜面 1:玄人譜面 2:達人譜面
@ -1226,7 +1175,10 @@ namespace TJAPlayer3
this.n連打[actDan.NowShowingNumber]++;
this.n現在の連打数[ nPlayer ]++;
this.CBranchScore[ nPlayer ].nRoll++;
this.CChartScore[nPlayer].nRoll++;
this.n合計連打数[ nPlayer ]++;
if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) this.actRollChara.Start(nPlayer);
@ -1685,6 +1637,8 @@ namespace TJAPlayer3
case E判定.Perfect:
{
this.CBranchScore[nPlayer].nGreat++;
this.CChartScore[nPlayer].nGreat++;
if ( nPlayer == 0 ) this.nヒット数_Auto含まない.Drums.Perfect++;
this.actCombo.n現在のコンボ数[nPlayer]++;
@ -1705,13 +1659,14 @@ namespace TJAPlayer3
case E判定.Good:
{
this.CBranchScore[nPlayer].nGood++;
this.CChartScore[nPlayer].nGood++;
if ( nPlayer == 0 ) this.nヒット数_Auto含まない.Drums.Great++;
this.actCombo.n現在のコンボ数[ nPlayer ]++;
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
this.n可[actDan.NowShowingNumber]++;
//this.actCombo.ctコンボ加算 = new CCounter( 0, 8, 10, CDTXMania.Timer );
//this.actCombo.ctコンボ加算.t進行();
if (this.actCombo.ctコンボ加算[nPlayer].b終了値に達してない)
{
this.actCombo.ctコンボ加算[nPlayer].n現在の値 = 1;
@ -1736,6 +1691,8 @@ namespace TJAPlayer3
CFloorManagement.damage();
this.CBranchScore[nPlayer].nMiss++;
this.CChartScore[nPlayer].nMiss++;
if ( nPlayer == 0 ) this.nヒット数_Auto含まない.Drums.Miss++;
this.actCombo.n現在のコンボ数[ nPlayer ] = 0;
this.actComboVoice.tReset(nPlayer);
@ -1762,7 +1719,10 @@ namespace TJAPlayer3
{
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
this.n良[actDan.NowShowingNumber]++;
this.CBranchScore[nPlayer].nGreat++;
this.CChartScore[nPlayer].nGreat++;
if ( nPlayer == 0 ) this.nヒット数_Auto含む.Drums.Perfect++;
this.actCombo.n現在のコンボ数[ nPlayer ]++;
//this.actCombo.ctコンボ加算.t進行();
@ -1788,6 +1748,8 @@ namespace TJAPlayer3
CFloorManagement.damage();
this.CBranchScore[nPlayer].nMiss++;
this.CChartScore[nPlayer].nMiss++;
this.actCombo.n現在のコンボ数[ nPlayer ] = 0;
this.actComboVoice.tReset(nPlayer);
//for (int i = 0; i < 2; i++)
@ -2071,6 +2033,7 @@ namespace TJAPlayer3
//キーを押したときにスコア情報 + nAddScoreを置き換える様に
this.CBranchScore[nPlayer].nScore = (int)(this.actScore.GetScore(nPlayer) + nAddScore);
this.CChartScore[nPlayer].nScore = (int)(this.actScore.GetScore(nPlayer) + nAddScore);
}
@ -4143,6 +4106,8 @@ namespace TJAPlayer3
public void tBranchJudge(CDTX.CChip pChip, CBRANCHSCORE cBRANCHSCORE, int nスコア, int n連打数, int n良, int n可, int n不可, int nPlayer)
{
// Branch check score here
if (this.b強制的に分岐させた[nPlayer]) return;
var e種類 = pChip.e分岐の種類;
@ -4157,12 +4122,12 @@ namespace TJAPlayer3
{
if ((n良 + n可 + n不可) != 0)
{
dbRate = ((double)n良 / (double)(n良 + n可 + n不可)) * 100.0;
dbRate = (((double)n良 + (double)n可 * 0.5) / (double)(n良 + n可 + n不可)) * 100.0;
}
}
else if (e種類 == CDTX.E分岐種類.eスコア分岐)
{
dbRate = nスコア;
dbRate = nスコア;
}
else if (e種類 == CDTX.E分岐種類.e連打分岐)
{

View File

@ -35,9 +35,9 @@ namespace TJAPlayer3
{
if (CFloorManagement.CurrentNumberOfLives > 0)
{
if (TJAPlayer3.stage演奏ドラム画面.CBranchScore[0].nMiss == 0)
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0)
{
if (TJAPlayer3.stage演奏ドラム画面.CBranchScore[0].nGood == 0)
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0)
this.Mode[0] = EndMode.StageDondaFullCombo;
else
this.Mode[0] = EndMode.StageFullCombo;
@ -56,9 +56,9 @@ namespace TJAPlayer3
// 段位認定モード、クリア成功
// this.Mode[0] = EndMode.StageCleared;
if (TJAPlayer3.stage演奏ドラム画面.CBranchScore[0].nMiss == 0)
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0)
{
if (TJAPlayer3.stage演奏ドラム画面.CBranchScore[0].nGood == 0)
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0)
this.Mode[0] = EndMode.StageDondaFullCombo;
else
this.Mode[0] = EndMode.StageFullCombo;
@ -83,10 +83,10 @@ namespace TJAPlayer3
{
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 80)
{
if (TJAPlayer3.stage演奏ドラム画面.CBranchScore[i].nMiss == 0)
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss == 0)
//if (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss == 0)
{
if (TJAPlayer3.stage演奏ドラム画面.CBranchScore[i].nGood == 0)
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGood == 0)
//if (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great == 0)
{
this.Mode[i] = EndMode.StageDondaFullCombo;

View File

@ -466,8 +466,7 @@ namespace TJAPlayer3
//this.t進行描画_DANGER();
//this.t進行描画_判定ライン();
if (!TJAPlayer3.ConfigIni.bNoInfo && TJAPlayer3.ConfigIni.bTokkunMode)
this.t進行描画_ネームプレート();
if( TJAPlayer3.ConfigIni.ShowChara )
this.actChara.On進行描画();
@ -2213,32 +2212,7 @@ namespace TJAPlayer3
}
}
//if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.F8 ) )
//{
//this.actChipFireD.Start紙吹雪();
//this.actDancer.t入退場( 0, 0, 0.4 );
//}
if (!this.bStartFlag)
{
//CSound管理.rc演奏用タイマ.n現在時刻ms = 80000;
}
this.bStartFlag = true;
}
private bool bStartFlag;
private void t進行描画_ネームプレート()
{
//if( this.txNamePlate != null )
//this.txNamePlate.t2D描画( CDTXMania.app.Device, 0, 100 );
//if(CDTXMania.Tx.Taiko_NamePlate[0] != null) CDTXMania.Tx.Taiko_NamePlate[0].t2D描画(CDTXMania.app.Device, 0, 100);
//if(CDTXMania.stage演奏ドラム画面.bDoublePlay && CDTXMania.Tx.Taiko_NamePlate[1] != null) CDTXMania.Tx.Taiko_NamePlate[0].t2D描画(CDTXMania.app.Device, 0, 600);
//if ( CDTXMania.stage演奏ドラム画面.bDoublePlay )
//{
// if( this.txNamePlate2P != null )
// this.txNamePlate2P.t2D描画( CDTXMania.app.Device, 314, 636 );
//}
}
private void t進行描画_リアルタイム判定数表示()

View File

@ -440,10 +440,10 @@ namespace TJAPlayer3
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 80)
{
clearModifier = modifiers[1] * diffModifier;
if (TJAPlayer3.stage演奏ドラム画面.CBranchScore[i].nMiss == 0)
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss == 0)
{
clearModifier = modifiers[2] * diffModifier;
if (TJAPlayer3.stage演奏ドラム画面.CBranchScore[i].nGood == 0)
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGood == 0)
clearModifier = modifiers[3] * diffModifier;
}
}
@ -470,9 +470,9 @@ namespace TJAPlayer3
#endregion
nTotalHits = TJAPlayer3.stage演奏ドラム画面.CBranchScore[i].nGood + TJAPlayer3.stage演奏ドラム画面.CBranchScore[i].nMiss + TJAPlayer3.stage演奏ドラム画面.CBranchScore[i].nGreat;
nTotalHits = TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGood + TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss + TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGreat;
dAccuracyRate = Math.Pow((50 * TJAPlayer3.stage演奏ドラム画面.CBranchScore[i].nGood + 100 * TJAPlayer3.stage演奏ドラム画面.CBranchScore[i].nGreat) / (double)(100 * nTotalHits), 3);
dAccuracyRate = Math.Pow((50 * TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGood + 100 * TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGreat) / (double)(100 * nTotalHits), 3);
if (clearModifier < 0)
this.nEarnedMedalsCount[i] = 5;