Skip to content

Commit

Permalink
誤差防止のため、発声時刻を格納していた変数のうちの1つをfloat型からdouble型に変更。また、これが効いたのかSECTIONバグが発…
Browse files Browse the repository at this point in the history
…声しなくなったため一時的にSECTION命令を復活
  • Loading branch information
kairera0467 committed Apr 14, 2018
1 parent 6b6f321 commit d6a09bd
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
19 changes: 10 additions & 9 deletions DTXManiaプロジェクト/コード/スコア、曲/CDTX.cs
Original file line number Diff line number Diff line change
Expand Up @@ -363,11 +363,11 @@ public class CChip : IComparable<CDTX.CChip>, ICloneable
public int n総移動時間;
public int n透明度 = 0xff;
public int n発声位置;
public float f発声位置;
public double db発声位置;
public double fBMSCROLLTime;
public double fBMSCROLLTime_end;
public int n発声時刻ms;
public float f発声時刻ms;
public double db発声時刻ms;
public int nノーツ終了位置;
public int nノーツ終了時刻ms;
public int nノーツ出現時刻ms;
Expand All @@ -378,7 +378,6 @@ public class CChip : IComparable<CDTX.CChip>, ICloneable
public CDTX.CAVI rAVI;
public CDTX.CAVIPAN rAVIPan;
public CDTX.CDirectShow rDShow;
public double db発声時刻;
public double db判定終了時刻;//連打系音符で使用
public double dbProcess_Time;
public int nPlayerSide;
Expand Down Expand Up @@ -439,9 +438,9 @@ public void t初期化()
this.nList上の位置 = 0;
this.db実数値 = 0.0;
this.n発声位置 = 0;
this.f発声位置 = 0.0f;
this.db発声位置 = 0.0f;
this.n発声時刻ms = 0;
this.f発声時刻ms = 0.0f;
this.db発声時刻ms = 0.0f;
this.fBMSCROLLTime = 0;
this.nノーツ終了位置 = 0;
this.nノーツ終了時刻ms = 0;
Expand Down Expand Up @@ -2616,7 +2615,7 @@ public void t入力_全入力文字列から( string str全入力文字列, stri
foreach ( CChip chip in this.listChip )
{
chip.n発声時刻ms = (int) ( ( (double) chip.n発声時刻ms ) / _db再生速度 );
chip.f発声時刻ms = (float)( ( (float) chip.n発声時刻ms ) / _db再生速度 );
chip.db発声時刻ms = (float)( ( (double) chip.n発声時刻ms ) / _db再生速度 );
chip.nノーツ終了時刻ms = (int) ( ( (double) chip.nノーツ終了時刻ms ) / _db再生速度 );
}
}
Expand Down Expand Up @@ -3595,7 +3594,7 @@ private void t命令を挿入する(string InputText)
chip.nチャンネル番号 = 0xDD;
chip.n発声位置 = ((this.n現在の小節数 - 1) * 384);
chip.n発声時刻ms = (int)this.dbNowTime;
chip.f発声時刻ms = (float)this.dbNowTime;
chip.db発声時刻ms = this.dbNowTime;
chip.n整数値_内部番号 = 1;

// チップを配置。
Expand Down Expand Up @@ -3702,7 +3701,7 @@ private void t命令を挿入する(string InputText)
chip.nチャンネル番号 = 0xDE;
chip.n発声位置 = ((this.n現在の小節数 - 1) * 384);
chip.n発声時刻ms = (int)(this.dbNowTime - ((15000.0 / this.dbNowBPM * (this.fNow_Measure_s / this.fNow_Measure_m)) * 16.0 )); //ここの時間設定は前の小節の開始時刻である必要があるのだが...
chip.f発声時刻ms = (float)this.dbNowTime;
chip.db発声時刻ms = this.dbNowTime;
//chip.n発声時刻ms = (int)this.dbLastTime;
chip.dbSCROLL = this.dbNowScroll;
chip.dbBPM = this.dbNowBPM;
Expand Down Expand Up @@ -3907,6 +3906,7 @@ private void t入力_行解析譜面_V4(string InputText)
chip.nチャンネル番号 = 0x50;
chip.n発声位置 = ( ( this.n現在の小節数 ) * 384 );
chip.n発声時刻ms = (int)this.dbNowTime;
chip.db発声時刻ms = this.dbNowTime;
chip.n整数値_内部番号 = this.n現在の小節数;
chip.dbBPM = this.dbNowBPM;
chip.dbSCROLL = this.dbNowScroll;
Expand Down Expand Up @@ -4000,8 +4000,9 @@ private void t入力_行解析譜面_V4(string InputText)
chip.bShow = true;
chip.nチャンネル番号 = 0x10 + nObjectNum;
chip.n発声位置 = (int)((this.n現在の小節数 * 384.0) + ((384.0 * n) / n文字数));
chip.f発声位置 = (float)this.dbNowTime;
chip.db発声位置 = this.dbNowTime;
chip.n発声時刻ms = (int)this.dbNowTime;
chip.db発声時刻ms = this.dbNowTime;
//chip.fBMSCROLLTime = (float)(( this.dbBarLength ) * (16.0f / this.n各小節の文字数[this.n現在の小節数]));
chip.fBMSCROLLTime = (float)this.dbNowBMScollTime;
chip.n整数値 = nObjectNum;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3166,7 +3166,7 @@ protected bool t進行描画_チップ( E楽器パート ePlayMode, int nPlayer
case 0xDD: //譜面分岐条件リセット
if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
{
//this.tBranchReset( nPlayer ); // 2018.03.31 kairera0467 listChipソート時の問題が解決できないため、SECTION命令での分岐条件リセットを一時廃止します。
this.tBranchReset( nPlayer ); // 2018.03.31 kairera0467 listChipソート時の問題が解決できないため、SECTION命令での分岐条件リセットを一時廃止します。
pChip.bHit = true;
}
break;
Expand Down

0 comments on commit d6a09bd

Please sign in to comment.