• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

DTXManiaXG(Ver.K)4.00Series


Commit MetaInfo

修订版8187ef5a16aff9b4e4ca69d1b3859c39bf4cc33a (tree)
时间2020-09-22 15:42:47
作者kairera0467 <gennsou76573@gmai...>
Commiterkairera0467

Log Message

4.10a
#xxxxx 5レーンギター、ロングノーツ対応の準備(ロングノーツ関係は封印しているため動作しません)
#xxxxx アセンブリバージョンの変更
#xxxxx Guitarステータスパネルの不具合対策
#xxxxx CConfigIniのSoundDeviceTypeの説明文をWASAPI共有を含めたものに更新。
#xxxxx Matixx風表示でGuitar演奏をすると1ノーツ目の判定文字が表示された瞬間に強制終了する不具合の修正

更改概述

  • delete: "DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/AssemblyInfo.cs"
  • delete: "DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CDTX.cs"
  • delete: "DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/GITADORA/CActSelect\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253GITADORA.cs"
  • delete: "DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CStage\346\274\224\345\245\217\347\224\273\351\235\242\345\205\261\351\200\232.cs"
  • delete: "DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/GITADORA/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253GD.cs"
  • delete: "DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/GITADORA/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227GD.cs"
  • delete: "DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/GITADORA/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CStage\346\274\224\345\245\217\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242GD.cs"
  • delete: "DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs"
  • delete: "DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs"
  • delete: "DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CConfigIni.cs"
  • delete: "DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CDTXMania.cs"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXCreator.exe"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXCreator.exe.config"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXManiaGR.exe"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/dll/FDK.dll"

差异

--- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/AssemblyInfo.cs"
+++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/Properties/AssemblyInfo.cs"
@@ -11,7 +11,7 @@ using System.Resources;
1111 [assembly: AssemblyConfiguration("")]
1212 [assembly: AssemblyCompany("")]
1313 [assembly: AssemblyProduct("DTXManiaGR")]
14-[assembly: AssemblyCopyright( "Copyright (C) 2012-2019 DTXManiaXG(Ver.K) Develop Team" )]
14+[assembly: AssemblyCopyright( "Copyright (C) 2012-2020 DTXManiaXG(Ver.K) Develop Team" )]
1515 [assembly: AssemblyTrademark("")]
1616 [assembly: AssemblyCulture("")]
1717
@@ -33,8 +33,8 @@ using System.Resources;
3333 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
3434 // 既定値にすることができます:
3535 // [assembly: AssemblyVersion("1.0.*")]
36-[assembly: AssemblyVersion( "4.1.0.0" )]
37-[assembly: AssemblyFileVersion( "4.1.0.0" )]
36+[assembly: AssemblyVersion( "4.1.0.1" )]
37+[assembly: AssemblyFileVersion( "4.1.0.1" )]
3838 [assembly: NeutralResourcesLanguageAttribute("ja-JP")]
3939
4040 // このアセンブリは「ライブラリ」である(難読化ツールへの指示)。
--- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CDTX.cs"
+++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\202\263\343\202\242\343\200\201\346\233\262/CDTX.cs"
@@ -405,9 +405,8 @@ namespace DTXMania
405405 {
406406 public bool bHit;
407407 public bool b可視 = true;
408- public bool bボーナスチップ = false;
409- public bool bロングノーツ = false; // 2020.05.19 kairera0467
410- public bool bロングノーツHit中 = false; // 2020.05.19 kairera0467 enumにしたいが...
408+ public bool bボーナスチップ = false;
409+ public bool bロングノートHit中 = false; // 2020.05.19 kairera0467 enumにしたいが...
411410 public double dbチップサイズ倍率 = 1.0;
412411 public double db実数値;
413412 public EAVI種別 eAVI種別;
@@ -415,7 +414,7 @@ namespace DTXMania
415414 public E楽器パート e楽器パート = E楽器パート.UNKNOWN;
416415 public int nチャンネル番号;
417416 public STDGBVALUE<int> nバーからの距離dot; // 2019.9.7 kairera0467
418- public STDGBVALUE<int> nバーからの終端距離dot; // 2019.9.7 kairera0467
417+ public STDGBVALUE<int> nバーからの終端距離dot; // 2019.9.7 kairera0467
419418 public int n整数値;
420419 public int n整数値_内部番号;
421420 public int n総移動時間;
@@ -424,7 +423,7 @@ namespace DTXMania
424423 public int n発声時刻ms;
425424 public int n発声終了位置; // 2019.9.7 kairera0467
426425 public int n発声終了時刻ms; // 2019.9.7 kairera0467
427- public int nLag; // 2011.2.1 yyagi
426+ public int nLag; // 2011.2.1 yyagi
428427 public int nCurrentComboForGhost; // 2015.9.29 chnmr0
429428 public CDTX.CAVI rAVI;
430429 public CDTX.CAVIPAN rAVIPan;
@@ -432,13 +431,27 @@ namespace DTXMania
432431 public CDTX.CBGAPAN rBGAPan;
433432 public CDTX.CBMP rBMP;
434433 public CDTX.CBMPTEX rBMPTEX;
434+ public CChip chipロングノート終端;
435+ public bool bGuitar可視チップ;
436+ public bool bBass可視チップ;
437+ public bool bGuitarBass_Open
438+ {
439+ get
440+ {
441+ if( nチャンネル番号 == 0x20 || nチャンネル番号 == 0xA0 )
442+ {
443+ return true;
444+ }
445+ return false;
446+ }
447+ }
435448 public bool bBPMチップである
436449 {
437450 get
438451 {
439452 return (
440- this.nチャンネル番号 == (int) Ech定義.BPM ||
441- this.nチャンネル番号 == (int) Ech定義.BPMEx
453+ this.nチャンネル番号 == (int)Ech定義.BPM ||
454+ this.nチャンネル番号 == (int)Ech定義.BPMEx
442455 );
443456 }
444457 }
@@ -446,7 +459,7 @@ namespace DTXMania
446459 {
447460 get
448461 {
449- switch( this.nチャンネル番号 )
462+ switch (this.nチャンネル番号)
450463 {
451464 case 0x01:
452465 case 0x11:
@@ -459,8 +472,8 @@ namespace DTXMania
459472 case 0x18:
460473 case 0x19:
461474 case 0x1a:
462- case 0x1b:
463- case 0x1c:
475+ case 0x1b:
476+ case 0x1c:
464477 case 0x1f:
465478 case 0x20:
466479 case 0x21:
@@ -470,7 +483,7 @@ namespace DTXMania
470483 case 0x25:
471484 case 0x26:
472485 case 0x27:
473- case 0x28:
486+ case 0x28:
474487 case 0x2f:
475488 case 0x31:
476489 case 0x32:
@@ -482,8 +495,8 @@ namespace DTXMania
482495 case 0x38:
483496 case 0x39:
484497 case 0x3a:
485- case 0x3b:
486- case 0x3c:
498+ case 0x3b:
499+ case 0x3c:
487500 case 0x61:
488501 case 0x62:
489502 case 0x63:
@@ -537,7 +550,7 @@ namespace DTXMania
537550 case 0xa5:
538551 case 0xa6:
539552 case 0xa7:
540- case 0xa8:
553+ case 0xa8:
541554 case 0xA9:
542555 case 0xAA:
543556 case 0xAB:
@@ -557,10 +570,34 @@ namespace DTXMania
557570 case 0xba:
558571 case 0xbb:
559572 case 0xbc:
573+ case 0xC5:
574+ case 0xC6:
575+ case 0xC8:
576+ case 0xC9:
577+ case 0xCA:
578+ case 0xCB:
579+ case 0xCC:
580+ case 0xCD:
581+ case 0xCE:
582+ case 0xCF:
560583 case 0xD0:
561584 case 0xD1:
562585 case 0xD2:
563586 case 0xD3:
587+ case 0xDA:
588+ case 0xDB:
589+ case 0xDC:
590+ case 0xDD:
591+ case 0xDE:
592+ case 0xDF:
593+ case 0xE1:
594+ case 0xE2:
595+ case 0xE3:
596+ case 0xE4:
597+ case 0xE5:
598+ case 0xE6:
599+ case 0xE7:
600+ case 0xE8:
564601 return true;
565602 }
566603 return false;
@@ -571,19 +608,26 @@ namespace DTXMania
571608 get
572609 {
573610 int num = this.nチャンネル番号;
574- if( ( ( ( num != 1 ) && ( ( 0x61 > num ) || ( num > 0x69 ) ) ) && ( ( 0x70 > num ) || ( num > 0x79 ) ) ) && ( ( 0x80 > num ) || ( num > 0x89 ) ) )
611+ if ((((num != 1) && ((0x61 > num) || (num > 0x69))) && ((0x70 > num) || (num > 0x79))) && ((0x80 > num) || (num > 0x89)))
575612 {
576- return ( ( 0x90 <= num ) && ( num <= 0x92 ) );
613+ return ((0x90 <= num) && (num <= 0x92));
577614 }
578615 return true;
579616 }
580617 }
581- public bool bIsAutoPlayed; // 2011.6.10 yyagi
582- public bool b演奏終了後も再生が続くチップである; // #32248 2013.10.14 yyagi
583- public bool b空打ちチップである; // #34029 2014.7.15 yyagi
584- public int n楽器パートでの出現順; // #35411 2015.08.20 chnmr0
585- public bool bTargetGhost判定済み; // #35411 2015.08.22 chnmr0
618+ public bool bIsAutoPlayed; // 2011.6.10 yyagi
619+ public bool b演奏終了後も再生が続くチップである; // #32248 2013.10.14 yyagi
620+ public bool b空打ちチップである; // #34029 2014.7.15 yyagi
621+ public int n楽器パートでの出現順; // #35411 2015.08.20 chnmr0
622+ public bool bTargetGhost判定済み; // #35411 2015.08.22 chnmr0
586623
624+ public bool bロングノート // 2020.05.19 kairera0467
625+ {
626+ get
627+ {
628+ return chipロングノート終端 != null;
629+ }
630+ }
587631 public CChip()
588632 {
589633 this.nバーからの距離dot = new STDGBVALUE<int>() {
@@ -615,6 +659,9 @@ namespace DTXMania
615659 this.nバーからの距離dot.Guitar = 0;
616660 this.nバーからの距離dot.Bass = 0;
617661 this.n総移動時間 = 0;
662+ this.chipロングノート終端 = null;
663+ this.bGuitar可視チップ = false;
664+ this.bBass可視チップ = false;
618665 }
619666 public override string ToString()
620667 {
@@ -1942,6 +1989,32 @@ namespace DTXMania
19421989 }
19431990 }
19441991 }
1992+ /// <summary>
1993+ /// 事実上DTXManiaALからの移植
1994+ /// </summary>
1995+ private void tロングノーツフラグを立てる()
1996+ {
1997+ // TODO:盛り込む処理(ALレギュレなので遵守)
1998+ // -黄色連打みたいなフラグ管理(7000700,みたいな記述法になってるから)
1999+ // -途中に別のギターチップ入ってたらロングを無効にする処理(7010700,なら1010000,に置き換えみたいな)
2000+ foreach( CChip chip in this.listChip )
2001+ {
2002+ if( chip.nチャンネル番号 == 0x2C || chip.nチャンネル番号 == 0x2D )
2003+ {
2004+ if( chip.chipロングノート終端 == null )
2005+ {
2006+ foreach( CChip chip2 in this.listChip )
2007+ {
2008+ if( chip.n発声位置 == chip2.n発声位置 && chip2.e楽器パート == ( chip.nチャンネル番号 == 0x2C ? E楽器パート.GUITAR : E楽器パート.BASS ) )
2009+ {
2010+ chip.chipロングノート終端 = chip2;
2011+ break;
2012+ }
2013+ }
2014+ }
2015+ }
2016+ }
2017+ }
19452018 public void tWave再生位置自動補正()
19462019 {
19472020 foreach( CWAV cwav in this.listWAV.Values )
@@ -2572,58 +2645,65 @@ namespace DTXMania
25722645 bHasP = true;
25732646 break;
25742647 case 0x9D:
2648+ case 0xDA:
25752649 bHasG = true;
25762650 bHasP = true;
25772651 break;
25782652 case 0x9E:
2653+ case 0xDB:
25792654 bHasG = true;
25802655 bHasB = true;
25812656 bHasP = true;
25822657 break;
25832658 case 0x9F:
2659+ case 0xDC:
25842660 bHasR = true;
25852661 bHasP = true;
25862662 break;
25872663
25882664 case 0xA9:
2665+ case 0xDD:
25892666 bHasR = true;
25902667 bHasB = true;
25912668 bHasP = true;
25922669 break;
25932670 case 0xAA:
2671+ case 0xDE:
25942672 bHasR = true;
25952673 bHasG = true;
25962674 bHasP = true;
25972675 break;
25982676 case 0xAB:
2677+ case 0xDF:
25992678 bHasR = true;
26002679 bHasG = true;
26012680 bHasB = true;
26022681 bHasP = true;
26032682 break;
26042683 case 0xAC:
2684+ case 0xE1:
26052685 bHasY = true;
26062686 bHasP = true;
26072687 break;
26082688 case 0xAD:
2609- bHasB = true;
2689+ case 0xE2:
2690+ bHasB = true;
26102691 bHasY = true;
26112692 bHasP = true;
26122693 break;
26132694 case 0xAE:
2695+ case 0xE3:
26142696 bHasG = true;
26152697 bHasY = true;
26162698 bHasP = true;
26172699 break;
2618- //2017.7.16 kairera0467 Wikiのチャンネル定義表上ではギターGBYPだが、BassWailing Soundと重複しているので一旦コメントアウトしておく。
2619- //case 0xAF:
2700+ case 0xAF:
26202701 case 0xE4:
26212702 bHasG = true;
26222703 bHasB = true;
26232704 bHasY = true;
26242705 bHasP = true;
26252706 break;
2626-
26272707 case 0xD0:
26282708 case 0xE5:
26292709 bHasR = true;
@@ -3189,6 +3269,7 @@ namespace DTXMania
31893269 int n発声位置 = 0;
31903270 int ms = 0;
31913271 int nBar = 0;
3272+ STDGBVALUE<CChip> chipLN処理中 = new STDGBVALUE<CChip>();
31923273 foreach ( CChip chip in this.listChip )
31933274 {
31943275 chip.n発声時刻ms = ms + ( (int) ( ( ( 0x271 * ( chip.n発声位置 - n発声位置 ) ) * dbBarLength ) / bpm ) );
@@ -3258,6 +3339,53 @@ namespace DTXMania
32583339 }
32593340 continue;
32603341 }
3342+#if DEBUG
3343+ case 0x2C: // ロングノーツ
3344+ case 0x2D:
3345+ {
3346+ int part = chip.nチャンネル番号 == 0x2C ? (int)E楽器パート.GUITAR : (int)E楽器パート.BASS;
3347+ if ( chipLN処理中[ part ] == null )
3348+ {
3349+ // 同じ発声位置にあるギター/ベースチップを検索
3350+ // 始点チップとしてchipLN処理中[part]に入れる
3351+ foreach( CChip chip2 in this.listChip )
3352+ {
3353+ if( chip2.n発声位置 == chip.n発声位置 &&
3354+ ((part == (int)E楽器パート.GUITAR && chip2.bGuitar可視チップ) ||
3355+ (part == (int)E楽器パート.BASS && chip2.bBass可視チップ)) &&
3356+ !chip2.bGuitarBass_Open && !(chip2.nチャンネル番号 == 0x2C || chip2.nチャンネル番号 == 0x2D) )
3357+ {
3358+ chipLN処理中[ part ] = chip2;
3359+ break;
3360+ }
3361+ }
3362+ }
3363+ else
3364+ {
3365+ // LN処理中のチップより先にあり、currentと同じかそれより前にあるLNチップを検索
3366+ //
3367+ foreach( CChip chip2 in this.listChip )
3368+ {
3369+ if( chip2.n発声位置 > chipLN処理中[ part ].n発声位置 &&
3370+ chip2.n発声位置 <= chip.n発声位置 &&
3371+ (( part == (int)E楽器パート.GUITAR && chip2.bGuitar可視チップ ) ||
3372+ ( part == (int)E楽器パート.BASS && chip2.bBass可視チップ ) ) )
3373+ {
3374+ //chipLN処理中[ part ] = null;
3375+ break;
3376+ }
3377+ }
3378+ if( chipLN処理中[ part ] != null )
3379+ {
3380+ chipLN処理中[ part ].chipロングノート終端 = chip;
3381+ chipLN処理中[ part ] = null;
3382+ //chip.chipロングノート終端 = chipLN処理中[ part ];
3383+ //chipLN処理中[ part ] = null;
3384+ }
3385+ }
3386+ continue;
3387+ }
3388+#endif
32613389 default:
32623390 {
32633391 if( chip.nチャンネル番号 >= 0x4C && chip.nチャンネル番号 <= 0x4F )
@@ -3358,15 +3486,8 @@ namespace DTXMania
33583486 {
33593487 this.bCLASSIC譜面である.Drums = true;
33603488 }
3361- //Guitar、Bassは未実装
3362- //if()
3363- {
3364- this.bCLASSIC譜面である.Guitar = true;
3365- }
3366- //if
3367- {
3368- this.bCLASSIC譜面である.Bass = true;
3369- }
3489+ this.bCLASSIC譜面である.Guitar = !this.bチップがある.YPGuitar;
3490+ this.bCLASSIC譜面である.Bass = !this.bチップがある.YPBass;
33703491 #endregion
33713492 //span = (TimeSpan) ( DateTime.Now - timeBeginLoad );
33723493 //Trace.TraceInformation( "ch番号集合確認: {0}", span.ToString() );
@@ -6526,13 +6647,15 @@ namespace DTXMania
65266647 {
65276648 chip.e楽器パート = E楽器パート.DRUMS;
65286649 }
6529- if( ( nチャンネル番号 >= 0x20 && nチャンネル番号 <= 0x27 ) || ( nチャンネル番号 >= 0x93 && nチャンネル番号 <= 0x9F ) || ( nチャンネル番号 >= 0xA9 && nチャンネル番号 <= 0xAF ) || ( nチャンネル番号 >= 0xD0 && nチャンネル番号 <= 0xD3 ) || ( nチャンネル番号 == 0x2A ) )
6650+ if( ( nチャンネル番号 >= 0x20 && nチャンネル番号 <= 0x27 ) || ( nチャンネル番号 >= 0x93 && nチャンネル番号 <= 0x9F ) || ( nチャンネル番号 >= 0xA9 && nチャンネル番号 <= 0xAF ) || ( nチャンネル番号 >= 0xD0 && nチャンネル番号 <= 0xD3 ) || ( nチャンネル番号 == 0x2A ) /*|| nチャンネル番号 == 0x2C*/ )
65306651 {
65316652 chip.e楽器パート = E楽器パート.GUITAR;
6653+ chip.bGuitar可視チップ = true;
65326654 }
65336655 if( ( nチャンネル番号 >= 0xA0 && nチャンネル番号 <= 0xA7 ) || ( nチャンネル番号 == 0xC5 ) || ( nチャンネル番号 == 0xC6 ) || ( nチャンネル番号 >= 0xC8 && nチャンネル番号 <= 0xCF ) || ( nチャンネル番号 >= 0xDA && nチャンネル番号 <= 0xDF ) || ( nチャンネル番号 >= 0xE1 && nチャンネル番号 <= 0xE8 ) )
65346656 {
65356657 chip.e楽器パート = E楽器パート.BASS;
6658+ chip.bBass可視チップ = true;
65366659 }
65376660 //-----------------
65386661 #endregion
--- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/GITADORA/CActSelect\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253GITADORA.cs"
+++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/GITADORA/CActSelect\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253GITADORA.cs"
@@ -336,7 +336,7 @@ namespace DTXMania
336336 //this.t大文字表示(73 + this.n本体X[ j ] + (i * 143), 19 + this.n本体Y[j] - y差分[i], string.Format("{0:0}", n難易度整数[i]));
337337 //this.t小文字表示(102 + this.n本体X[ j ] + (i * 143), 37 + this.n本体Y[j] - y差分[i], string.Format("{0,2:00}", n難易度小数[i]));
338338 //this.tx難易度数字XG.t2D描画(CDTXMania.app.Device, 94 + this.n本体X[j] + (i * 143), 51 + this.n本体Y[j] - y差分[i], new Rectangle(145, 54, 7, 8));
339- this.tレベル値の描画_中( 547, 626 - ( i * 60 ), string.Format("{0:0}", n難易度整数[i]) + "." + string.Format("{0,2:00}", n難易度小数[i]) );
339+ this.tレベル値の描画_中( 547 - (j == 1 ? 236 : 0), 626 - ( i * 60 ), string.Format("{0:0}", n難易度整数[i]) + "." + string.Format("{0,2:00}", n難易度小数[i]) );
340340 }
341341 //else if ((this.str難易度ラベル[i] != null && !this.b現在選択中の曲に譜面がある[i][j]) || CDTXMania.stage選曲XG.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.RANDOM)
342342 //{
@@ -389,7 +389,7 @@ namespace DTXMania
389389 //}
390390 //-----------------
391391 #endregion
392- this.t難易度カーソル描画( 426, base.n現在選択中の曲の難易度 );
392+ this.t難易度カーソル描画( 426 - (j == 1 ? 236 : 0), base.n現在選択中の曲の難易度 );
393393
394394 if( CDTXMania.stage選曲GITADORA.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE )
395395 {
--- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CStage\346\274\224\345\245\217\347\224\273\351\235\242\345\205\261\351\200\232.cs"
+++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CStage\346\274\224\345\245\217\347\224\273\351\235\242\345\205\261\351\200\232.cs"
@@ -1059,7 +1059,11 @@ namespace DTXMania
10591059 }
10601060 continue; // ほんの僅かながら高速化
10611061 }
1062- else if ( ( ( nChannel == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( 0x20 <= nChannel ) && ( nChannel <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannel ) ) )
1062+ else if ( ( ( nChannel == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) ||
1063+ ( ( ( 0x20 <= nChannel ) && ( nChannel <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannel ) ) ||
1064+ ( ( ( 0x93 <= nChannel ) && ( nChannel <= 0x9F ) ) && ( chip.nチャンネル番号 == nChannel ) ) ||
1065+ ( ( ( 0xA9 <= nChannel ) && ( nChannel <= 0xAF ) ) && ( chip.nチャンネル番号 == nChannel ) ) ||
1066+ ( ( ( 0xD0 <= nChannel ) && ( nChannel <= 0xD3 ) ) && ( chip.nチャンネル番号 == nChannel ) ) )
10631067 {
10641068 if ( chip.n発声時刻ms > nTime )
10651069 {
@@ -1067,7 +1071,12 @@ namespace DTXMania
10671071 }
10681072 nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future;
10691073 }
1070- else if ( ( ( nChannel == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( 0xa0 <= nChannel ) && ( nChannel <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannel ) ) )
1074+ else if ( ( ( nChannel == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) ||
1075+ ( ( ( 0xa0 <= nChannel ) && ( nChannel <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannel ) ) ||
1076+ ( ( ( 0xC5 <= nChannel ) && ( nChannel <= 0xC6 ) ) && ( chip.nチャンネル番号 == nChannel ) ) ||
1077+ ( ( ( 0xC8 <= nChannel ) && ( nChannel <= 0xCF ) ) && ( chip.nチャンネル番号 == nChannel ) ) ||
1078+ ( ( ( 0xDA <= nChannel ) && ( nChannel <= 0xDF ) ) && ( chip.nチャンネル番号 == nChannel ) ) ||
1079+ ( ( ( 0xE1 <= nChannel ) && ( nChannel <= 0xE8 ) ) && ( chip.nチャンネル番号 == nChannel ) ) )
10711080 {
10721081 if ( chip.n発声時刻ms > nTime )
10731082 {
@@ -1093,15 +1102,32 @@ namespace DTXMania
10931102 break;
10941103 }
10951104 }
1096- else if ( ( ( nChannel == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( 0x20 <= nChannel ) && ( nChannel <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannel ) ) )
1105+ else if ( ( ( nChannel == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) ||
1106+ ( ( ( 0x20 <= nChannel ) && ( nChannel <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannel ) ) ||
1107+ ( ( ( 0x93 <= nChannel ) && ( nChannel <= 0x9F ) ) && ( chip.nチャンネル番号 == nChannel ) ) ||
1108+ ( ( ( 0xA9 <= nChannel ) && ( nChannel <= 0xAF ) ) && ( chip.nチャンネル番号 == nChannel ) ) ||
1109+ ( ( ( 0xD0 <= nChannel ) && ( nChannel <= 0xD3 ) ) && ( chip.nチャンネル番号 == nChannel ) ) )
10971110 {
1098- if ( ( 0x20 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x28 ) )
1111+ if ( ( 0x20 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x28 ) ||
1112+ ( 0x93 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x9F ) ||
1113+ ( 0xA9 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0xAF ) ||
1114+ ( 0xD0 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0xD3 ) )
10991115 {
11001116 break;
11011117 }
11021118 }
1103- else if ( ( ( ( nChannel == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( 0xa0 <= nChannel ) && ( nChannel <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannel ) ) )
1104- && ( ( 0xa0 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0xa8 ) ) )
1119+ else if ( ( ( ( nChannel == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) ||
1120+ ( ( ( 0xa0 <= nChannel ) && ( nChannel <= 0xa8 ) ||
1121+ ( 0xC5 <= nChannel ) && ( nChannel <= 0xC6 ) ||
1122+ ( 0xC8 <= nChannel ) && ( nChannel <= 0xCF ) ||
1123+ ( 0xDA <= nChannel ) && ( nChannel <= 0xDF ) ||
1124+ ( 0xE1 <= nChannel ) && ( nChannel <= 0xE8 ) )
1125+ && ( chip.nチャンネル番号 == nChannel ) )
1126+ && ( ( 0xa0 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0xa8 ) ||
1127+ ( 0xC5 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0xC6 ) ||
1128+ ( 0xC8 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0xCF ) ||
1129+ ( 0xDA <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0xDF ) ||
1130+ ( 0xE1 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0xa8 ) ) ) )
11051131 {
11061132 break;
11071133 }
@@ -1781,9 +1807,12 @@ namespace DTXMania
17811807 }
17821808 continue;
17831809 }
1784- else if ( ( ( ( nChannel == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( ( ( 0x20 <= nChannel ) && ( nChannel <= 0x28 ) ) && ( chip.nチャンネル番号 == nChannel ) ) ||
1785- ( nChannel >= 0x93 && nChannel <= 0x9F ) || ( nChannel >= 0xA9 && nChannel <= 0xAF ) || ( nChannel >= 0xD0 && nChannel <= 0xD3 )
1786- ) )
1810+ else if ( ( ( ( nChannel == 0x2f ) && ( chip.e楽器パート == E楽器パート.GUITAR ) ) || ( (
1811+ ( 0x20 <= nChannel ) && ( nChannel <= 0x28 ) ||
1812+ ( nChannel >= 0x93 && nChannel <= 0x9F ) ||
1813+ ( nChannel >= 0xA9 && nChannel <= 0xAF ) ||
1814+ ( nChannel >= 0xD0 && nChannel <= 0xD3 )
1815+ ) && ( chip.nチャンネル番号 == nChannel ) ) ) )
17871816 {
17881817 if ( chip.n発声時刻ms > nTime )
17891818 {
@@ -1791,7 +1820,13 @@ namespace DTXMania
17911820 }
17921821 nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future;
17931822 }
1794- else if ( ( ( ( nChannel == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( ( ( 0xa0 <= nChannel ) && ( nChannel <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannel ) ) ) )
1823+ else if ( ( ( ( nChannel == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( (
1824+ ( 0xa0 <= nChannel ) && ( nChannel <= 0xa8 ) ||
1825+ ( 0xC5 <= nChannel ) && ( nChannel <= 0xC6 ) ||
1826+ ( 0xC8 <= nChannel ) && ( nChannel <= 0xCF ) ||
1827+ ( 0xDA <= nChannel ) && ( nChannel <= 0xDF ) ||
1828+ ( 0xE1 <= nChannel ) && ( nChannel <= 0xE8 )
1829+ ) && ( chip.nチャンネル番号 == nChannel ) ) ) )
17951830 {
17961831 if ( chip.n発声時刻ms > nTime )
17971832 {
@@ -1826,8 +1861,13 @@ namespace DTXMania
18261861 )
18271862 ||
18281863 (
1829- ( ( nChannel == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) ||
1830- ( ( ( nChannel >= 0xA0 ) && ( nChannel <= 0xa8 ) ) && ( chip.nチャンネル番号 == nChannel ) )
1864+ ( ( nChannel == 0xaf ) && ( chip.e楽器パート == E楽器パート.BASS ) ) || ( (
1865+ ( nChannel >= 0xA0 ) && ( nChannel <= 0xA8 ) ||
1866+ ( nChannel >= 0xC5 ) && ( nChannel <= 0xC6 ) ||
1867+ ( nChannel >= 0xC8 ) && ( nChannel <= 0xCF ) ||
1868+ ( nChannel >= 0xDA ) && ( nChannel <= 0xDF ) ||
1869+ ( nChannel >= 0xE1 ) && ( nChannel <= 0xA8 )
1870+ ) && ( chip.nチャンネル番号 == nChannel ) )
18311871 )
18321872 )
18331873 )
@@ -2324,6 +2364,13 @@ namespace DTXMania
23242364 pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CSound管理.rc演奏用タイマ.n現在時刻 ) * ScrollSpeedDrums );
23252365 pChip.nバーからの距離dot.Guitar = (int) ( ( pChip.n発声時刻ms - CSound管理.rc演奏用タイマ.n現在時刻 ) * ScrollSpeedGuitar );
23262366 pChip.nバーからの距離dot.Bass = (int) ( ( pChip.n発声時刻ms - CSound管理.rc演奏用タイマ.n現在時刻 ) * ScrollSpeedBass );
2367+
2368+ // 2020.08.09 kairera0467 ロングノーツ
2369+ if( pChip.chipロングノート終端 != null )
2370+ {
2371+ pChip.chipロングノート終端.nバーからの距離dot.Guitar = (int) ( ( pChip.chipロングノート終端.n発声時刻ms - CSound管理.rc演奏用タイマ.n現在時刻 ) * ScrollSpeedGuitar );
2372+ pChip.chipロングノート終端.nバーからの距離dot.Bass = (int) ( ( pChip.chipロングノート終端.n発声時刻ms - CSound管理.rc演奏用タイマ.n現在時刻 ) * ScrollSpeedBass );
2373+ }
23272374 if ( Math.Min( Math.Min( pChip.nバーからの距離dot.Drums, pChip.nバーからの距離dot.Guitar ), pChip.nバーからの距離dot.Bass ) > 600 )
23282375 {
23292376 break;
@@ -2802,6 +2849,31 @@ namespace DTXMania
28022849 case 0xa5:
28032850 case 0xa6:
28042851 case 0xa7:
2852+
2853+ case 0xC5:
2854+ case 0xC6:
2855+ case 0xC8:
2856+ case 0xC9:
2857+ case 0xCA:
2858+ case 0xCB:
2859+ case 0xCC:
2860+ case 0xCD:
2861+ case 0xCE:
2862+ case 0xCF:
2863+ case 0xDA:
2864+ case 0xDB:
2865+ case 0xDC:
2866+ case 0xDD:
2867+ case 0xDE:
2868+ case 0xDF:
2869+ case 0xE1:
2870+ case 0xE2:
2871+ case 0xE3:
2872+ case 0xE4:
2873+ case 0xE5:
2874+ case 0xE6:
2875+ case 0xE7:
2876+ case 0xE8:
28052877 this.t進行描画_チップ_ギターベース( configIni, ref dTX, ref pChip, E楽器パート.BASS );
28062878 break;
28072879 #endregion
@@ -3378,7 +3450,7 @@ namespace DTXMania
33783450
33793451 #region [ chip描画 ]
33803452 int OPEN = ( inst == E楽器パート.GUITAR ) ? 0x20 : 0xA0;
3381- if ( !pChip.bHit && pChip.b可視 )
3453+ if ( ( !pChip.bHit || pChip.bロングノート ) && pChip.b可視 )
33823454 {
33833455 if ( this.txチップ != null )
33843456 {
@@ -3387,9 +3459,23 @@ namespace DTXMania
33873459 int y = configIni.bReverse[ instIndex ] ?
33883460 (int) ( barYReverse - pChip.nバーからの距離dot[ instIndex ] ) :
33893461 (int) ( barYNormal + pChip.nバーからの距離dot[ instIndex ] );
3462+ int y_long = 0;
33903463 int n小節線消失距離dot = configIni.bReverse[ instIndex ] ?
33913464 (int) ( -100 * Scale.Y ) :
33923465 ( configIni.e判定位置[ instIndex ] == E判定位置.標準 ) ? (int) ( -36 * Scale.Y ) : (int) ( -25 * Scale.Y );
3466+ if( pChip.bロングノート )
3467+ {
3468+ if( pChip.chipロングノート終端.nバーからの距離dot[ instIndex ] <= 0 )
3469+ {
3470+ return;
3471+ }
3472+ y_long = pChip.chipロングノート終端.nバーからの距離dot[ instIndex ] - pChip.nバーからの距離dot[ instIndex ];
3473+ if( pChip.bHit && pChip.bロングノートHit中 )
3474+ {
3475+ y = configIni.bReverse[ instIndex ] ? barYReverse : barYNormal;
3476+ y_long = pChip.chipロングノート終端.nバーからの距離dot[ instIndex ];
3477+ }
3478+ }
33933479 if ( ( 104 < y ) && ( y < 720 ) )
33943480 {
33953481 if ( this.txチップ != null )
@@ -3412,6 +3498,8 @@ namespace DTXMania
34123498 #region [ OPENチップの描画 ]
34133499 if ( pChip.nチャンネル番号 == OPEN )
34143500 {
3501+ this.txチップ.n透明度 = 255;
3502+ this.txチップ.vc拡大縮小倍率.Y = 1.0f;
34153503 this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 0, 11, 196, 9 ) );
34163504 }
34173505 #endregion
@@ -3420,6 +3508,20 @@ namespace DTXMania
34203508 #region [ Rチップ描画 ]
34213509 if( bChipHasR )
34223510 {
3511+ if( pChip.bロングノート )
3512+ {
3513+ Rectangle lnRect = new Rectangle( 2, 92, 35, 2 );
3514+ txチップ.n透明度 = 128;
3515+ if( pChip.bHit && !pChip.bロングノートHit中 )
3516+ {
3517+ CTexture obj = this.txチップ;
3518+ obj.n透明度 = obj.n透明度 / 2;
3519+ }
3520+ this.txチップ.vc拡大縮小倍率.Y = 1.0f * (float)y_long / (float)lnRect.Height;
3521+ this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 0 ], y - (bReverse[ instIndex ] ? y_long : 0), lnRect );
3522+ }
3523+ this.txチップ.n透明度 = 255;
3524+ this.txチップ.vc拡大縮小倍率.Y = 1.0f;
34233525 //this.txチップ.t2D描画( CDTXMania.app.Device, x + 3, y - 4, new Rectangle( 1, 1, 35, 8 ) );
34243526 this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 0 ], y - 4, new Rectangle( 1, 1, 35, 8 ) );
34253527 }
@@ -3428,34 +3530,91 @@ namespace DTXMania
34283530 //x += 39;
34293531 if( bChipHasG )
34303532 {
3431- //this.txチップ.t2D描画( CDTXMania.app.Device, x + 3, y - 4, new Rectangle( 39, 1, 35, 8 ) );
3432- this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 1 ], y - 4, new Rectangle( 39, 1, 35, 8 ) );
3533+ if( pChip.bロングノート )
3534+ {
3535+ Rectangle lnRect = new Rectangle( 39, 92, 35, 2 );
3536+ this.txチップ.n透明度 = 128;
3537+ if( pChip.bHit && !pChip.bロングノートHit中 )
3538+ {
3539+ CTexture obj = this.txチップ;
3540+ obj.n透明度 = obj.n透明度 / 2;
3541+ }
3542+ this.txチップ.vc拡大縮小倍率.Y = 1.0f * (float)y_long / (float)lnRect.Height;
3543+ this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 1 ], y - (bReverse[ instIndex ] ? y_long : 0), lnRect );
3544+ }
3545+
3546+ this.txチップ.n透明度 = 255;
3547+ this.txチップ.vc拡大縮小倍率.Y = 1.0f;
3548+ //this.txチップ.t2D描画( CDTXMania.app.Device, x + 3, y - 4, new Rectangle( 39, 1, 35, 8 ) );
3549+ this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 1 ], y - 4, new Rectangle( 39, 1, 35, 8 ) );
34333550 }
34343551 #endregion
34353552 #region [ Bチップ描画 ]
34363553 //x += 39;
34373554 if( bChipHasB )
34383555 {
3439- //this.txチップ.t2D描画( CDTXMania.app.Device, x + 3, y - 4, new Rectangle( 77, 1, 35, 8 ) );
3440- this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 2 ], y - 4, new Rectangle( 77, 1, 35, 8 ) );
3556+ if( pChip.bロングノート )
3557+ {
3558+ Rectangle lnRect = new Rectangle( 77, 91, 35, 2 );
3559+ txチップ.n透明度 = 128;
3560+ if( pChip.bHit && !pChip.bロングノートHit中 )
3561+ {
3562+ CTexture obj = this.txチップ;
3563+ obj.n透明度 = obj.n透明度 / 2;
3564+ }
3565+ this.txチップ.vc拡大縮小倍率.Y = 1.0f * (float)y_long / (float)lnRect.Height;
3566+ this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 2 ], y - (bReverse[ instIndex ] ? y_long : 0), lnRect );
3567+ }
3568+ this.txチップ.n透明度 = 255;
3569+ this.txチップ.vc拡大縮小倍率.Y = 1.0f;
3570+ //this.txチップ.t2D描画( CDTXMania.app.Device, x + 3, y - 4, new Rectangle( 77, 1, 35, 8 ) );
3571+ this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 2 ], y - 4, new Rectangle( 77, 1, 35, 8 ) );
34413572 }
34423573 #endregion
34433574 #region [ Yチップ描画 ]
34443575 //x += 39;
34453576 if( bChipHasY )
34463577 {
3447- //this.txチップ.t2D描画( CDTXMania.app.Device, x + 3, y - 4, new Rectangle( 77, 1, 35, 8 ) );
3448- this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 3 ], y - 4, new Rectangle( 115, 1, 35, 8 ) );
3578+ if( pChip.bロングノート )
3579+ {
3580+ Rectangle lnRect = new Rectangle( 115, 92, 35, 2 );
3581+ txチップ.n透明度 = 128;
3582+ if( pChip.bHit && !pChip.bロングノートHit中 )
3583+ {
3584+ CTexture obj = this.txチップ;
3585+ obj.n透明度 = obj.n透明度 / 2;
3586+ }
3587+ this.txチップ.vc拡大縮小倍率.Y = 1.0f * (float)y_long / (float)lnRect.Height;
3588+ this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 3 ], y - (bReverse[ instIndex ] ? y_long : 0), lnRect );
3589+ }
3590+ this.txチップ.n透明度 = 255;
3591+ this.txチップ.vc拡大縮小倍率.Y = 1.0f;
3592+ //this.txチップ.t2D描画( CDTXMania.app.Device, x + 3, y - 4, new Rectangle( 77, 1, 35, 8 ) );
3593+ this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 3 ], y - 4, new Rectangle( 115, 1, 35, 8 ) );
34493594 }
34503595 #endregion
34513596 #region [ Pチップ描画 ]
34523597 //x += 39;
34533598 if( bChipHasP )
34543599 {
3455- //this.txチップ.t2D描画( CDTXMania.app.Device, x + 3, y - 4, new Rectangle( 77, 1, 35, 8 ) );
3456- this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 4 ], y - 4, new Rectangle( 153, 1, 35, 8 ) );
3600+ if( pChip.bロングノート )
3601+ {
3602+ Rectangle lnRect = new Rectangle( 153, 92, 35, 2 );
3603+ txチップ.n透明度 = 128;
3604+ if( pChip.bHit && !pChip.bロングノートHit中 )
3605+ {
3606+ CTexture obj = this.txチップ;
3607+ obj.n透明度 = obj.n透明度 / 2;
3608+ }
3609+ this.txチップ.vc拡大縮小倍率.Y = 1.0f * (float)y_long / (float)lnRect.Height;
3610+ this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 4 ], y - (bReverse[ instIndex ] ? y_long : 0), lnRect );
3611+ }
3612+ this.txチップ.n透明度 = 255;
3613+ this.txチップ.vc拡大縮小倍率.Y = 1.0f;
3614+ //this.txチップ.t2D描画( CDTXMania.app.Device, x + 3, y - 4, new Rectangle( 77, 1, 35, 8 ) );
3615+ this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 4 ], y - 4, new Rectangle( 153, 1, 35, 8 ) );
34573616 }
3458- #endregion
3617+ #endregion
34593618 }
34603619 }
34613620 }
@@ -3974,7 +4133,7 @@ namespace DTXMania
39744133
39754134 // if ( bIsAutoPlay[ (int) Eレーン.Guitar - 1 + indexInst ] ) // このような、バグの入りやすい書き方(GT/BSのindex値が他と異なる)はいずれ見直したい
39764135 // {
3977- CDTX.CChip chip = this.r次に来る指定楽器Chipを更新して返す(inst);
4136+ CDTX.CChip chip = this.r処理中のロングChip[ (int)inst ] == null ? this.r次に来る指定楽器Chipを更新して返す(inst) : this.r処理中のロングChip[ (int)inst ];
39784137 if ( chip != null )
39794138 {
39804139 bool bAutoGuitarR = false;
@@ -4304,57 +4463,64 @@ namespace DTXMania
43044463 break;
43054464 }
43064465 //オートさん専用
4307- if( bAutoGuitarR && bIsAutoPlay.GtR )
4308- {
4309- this.actLaneFlushGB.Start( 0 );
4310- this.actRGB.Push( R );
4311- }
4312- if( bAutoGuitarG && bIsAutoPlay.GtG )
4313- {
4314- this.actLaneFlushGB.Start( 1 );
4315- this.actRGB.Push( G );
4316- }
4317- if( bAutoGuitarB && bIsAutoPlay.GtB )
4318- {
4319- this.actLaneFlushGB.Start( 2 );
4320- this.actRGB.Push( B );
4321- }
4322- if( bAutoGuitarY && bIsAutoPlay.GtY )
4323- {
4324- this.actLaneFlushGB.Start( 3 );
4325- this.actRGB.Push( Y );
4326- }
4327- if( bAutoGuitarP && bIsAutoPlay.GtP )
4328- {
4329- this.actLaneFlushGB.Start( 4 );
4330- this.actRGB.Push( P );
4331- }
4466+ if( inst == E楽器パート.GUITAR )
4467+ {
4468+ if( bAutoGuitarR && bIsAutoPlay.GtR )
4469+ {
4470+ this.actLaneFlushGB.Start( 0 );
4471+ this.actRGB.Push( R );
4472+ }
4473+ if( bAutoGuitarG && bIsAutoPlay.GtG )
4474+ {
4475+ this.actLaneFlushGB.Start( 1 );
4476+ this.actRGB.Push( G );
4477+ }
4478+ if( bAutoGuitarB && bIsAutoPlay.GtB )
4479+ {
4480+ this.actLaneFlushGB.Start( 2 );
4481+ this.actRGB.Push( B );
4482+ }
4483+ if( bAutoGuitarY && bIsAutoPlay.GtY )
4484+ {
4485+ this.actLaneFlushGB.Start( 3 );
4486+ this.actRGB.Push( Y );
4487+ }
4488+ if( bAutoGuitarP && bIsAutoPlay.GtP )
4489+ {
4490+ this.actLaneFlushGB.Start( 4 );
4491+ this.actRGB.Push( P );
4492+ }
4493+ }
4494+ else if( inst == E楽器パート.BASS )
4495+ {
4496+ if( bAutoBassR && bIsAutoPlay.BsR )
4497+ {
4498+ this.actLaneFlushGB.Start( 5 );
4499+ this.actRGB.Push( R );
4500+ }
4501+ if( bAutoBassG && bIsAutoPlay.BsG )
4502+ {
4503+ this.actLaneFlushGB.Start( 6 );
4504+ this.actRGB.Push( G );
4505+ }
4506+ if( bAutoBassB && bIsAutoPlay.BsB )
4507+ {
4508+ this.actLaneFlushGB.Start( 7 );
4509+ this.actRGB.Push( B );
4510+ }
4511+ if( bAutoBassY && bIsAutoPlay.BsY )
4512+ {
4513+ this.actLaneFlushGB.Start( 8 );
4514+ this.actRGB.Push( Y );
4515+ }
4516+ if( bAutoBassP && bIsAutoPlay.BsP )
4517+ {
4518+ this.actLaneFlushGB.Start( 9 );
4519+ this.actRGB.Push( P );
4520+ }
4521+ }
4522+
43324523
4333- if( bAutoBassR && bIsAutoPlay.BsR )
4334- {
4335- this.actLaneFlushGB.Start( 5 );
4336- this.actRGB.Push( R );
4337- }
4338- if( bAutoBassG && bIsAutoPlay.BsG )
4339- {
4340- this.actLaneFlushGB.Start( 6 );
4341- this.actRGB.Push( G );
4342- }
4343- if( bAutoBassB && bIsAutoPlay.BsB )
4344- {
4345- this.actLaneFlushGB.Start( 7 );
4346- this.actRGB.Push( B );
4347- }
4348- if( bAutoBassY && bIsAutoPlay.BsY )
4349- {
4350- this.actLaneFlushGB.Start( 8 );
4351- this.actRGB.Push( Y );
4352- }
4353- if( bAutoBassP && bIsAutoPlay.BsP )
4354- {
4355- this.actLaneFlushGB.Start( 9 );
4356- this.actRGB.Push( P );
4357- }
43584524 // }
43594525
43604526 }
@@ -4366,7 +4532,11 @@ namespace DTXMania
43664532 this.t入力メソッド記憶( inst );
43674533 int pushingB = CDTXMania.Pad.b押されている( inst, Eパッド.B ) ? 1 : 0;
43684534 this.t入力メソッド記憶( inst );
4369- int flagRGB = pushingR | pushingG | pushingB;
4535+ int pushingY = CDTXMania.Pad.b押されている( inst, Eパッド.Y ) ? 16 : 0;
4536+ this.t入力メソッド記憶( inst );
4537+ int pushingP = CDTXMania.Pad.b押されている( inst, Eパッド.P ) ? 32: 0;
4538+ this.t入力メソッド記憶( inst );
4539+ int flagRGB = pushingR | pushingG | pushingB | pushingY | pushingP;
43704540 if ( pushingR != 0 )
43714541 {
43724542 this.actLaneFlushGB.Start( R );
@@ -4382,6 +4552,97 @@ namespace DTXMania
43824552 this.actLaneFlushGB.Start( B );
43834553 this.actRGB.Push( B );
43844554 }
4555+ if ( pushingY != 0 )
4556+ {
4557+ this.actLaneFlushGB.Start( Y );
4558+ this.actRGB.Push( Y );
4559+ }
4560+ if ( pushingP != 0 )
4561+ {
4562+ this.actLaneFlushGB.Start( P );
4563+ this.actRGB.Push( P );
4564+ }
4565+
4566+ // TODO: ロングノーツ
4567+ //if (chipロングノ\u30fcトHit中[inst] != null)
4568+ //{
4569+ // CChip cChip2 = chipロングノ\u30fcトHit中[inst];
4570+ // bool[] arrayBoolFromEChannel2 = EnumConverter.GetArrayBoolFromEChannel(cChip2.eチャンネル番号);
4571+ // int num4 = nRGBYPのbool配列からマスク値を返す(arrayBoolFromEChannel2);
4572+ // if ((num4 & ~num2) == (num3 & ~num2))
4573+ // {
4574+ // if ((num4 & num2) != num4)
4575+ // {
4576+ // actGauge.Damage(inst, EJudge.Good);
4577+ // }
4578+ // for (int i = 0; i < 5; i++)
4579+ // {
4580+ // if (arrayBoolFromEChannel2[i] && (array3[i] || array[i]))
4581+ // {
4582+ // actChipFireGB.Start(i + num, bLN: true);
4583+ // }
4584+ // }
4585+ // }
4586+ // else if (e指定時刻からChipのJUDGEを返す(((CTimerBase)CSound管理.rc演奏用タイマ).get_n現在時刻(), chipロングノ\u30fcトHit中[inst].chipロングノ\u30fcト終端, CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs[inst]) >= EJudge.Miss)
4587+ // {
4588+ // cChip2.bロングノ\u30fcトHit中 = false;
4589+ // chipロングノ\u30fcトHit中[inst] = null;
4590+ // EPad e = (inst == EPart.Guitar) ? EPad.GtPick : EPad.BsPick;
4591+ // CDTXMania.Instance.DTX.tWavの再生停止(n最後に再生した実WAV番号[e]);
4592+ // }
4593+ //}
4594+
4595+ int num2 = 0;
4596+ if( this.r処理中のロングChip[ (int)inst ] != null )
4597+ {
4598+ CDTX.CChip chip2 = this.r処理中のロングChip[(int)inst];
4599+ int num3 = 0;
4600+ int num4 = 0;
4601+ bool bHasR = false;
4602+ bool bHasG = false;
4603+ bool bHasB = false;
4604+ bool bHasY = false;
4605+ bool bHasP = false;
4606+ CDTXMania.DTX.tギターレーンのチップパターンを取得する(chip2.nチャンネル番号, ref bHasR, ref bHasG, ref bHasB, ref bHasY, ref bHasP);
4607+ // 2020.8.29 kairera0467 TODO:ここのif文の内容が理解できてない
4608+ if((num4 & ~num2) == (num3 & ~num2 ))
4609+ {
4610+ if((num4 & num2) != num4 )
4611+ {
4612+ // actGauge.Damage
4613+ }
4614+
4615+ // chipfire
4616+ if( bHasR )
4617+ {
4618+ this.actChipFireGB.Start(R, 演奏判定ライン座標);
4619+ }
4620+ else if( bHasG )
4621+ {
4622+ this.actChipFireGB.Start(G, 演奏判定ライン座標);
4623+ }
4624+ else if ( bHasB )
4625+ {
4626+ this.actChipFireGB.Start(B, 演奏判定ライン座標);
4627+ }
4628+ else if ( bHasY )
4629+ {
4630+ this.actChipFireGB.Start(Y, 演奏判定ライン座標);
4631+ }
4632+ else if ( bHasP )
4633+ {
4634+ this.actChipFireGB.Start(P, 演奏判定ライン座標);
4635+ }
4636+ }
4637+ else if( e指定時刻からChipのJUDGEを返す( CSound管理.rc演奏用タイマ.n現在時刻, this.r処理中のロングChip[ ( int )inst ].chipロングノート終端, CDTXMania.ConfigIni.nInputAdjustTimeMs[ ( int )inst ] ) >= E判定.Miss )
4638+ {
4639+ chip2.bロングノートHit中 = false;
4640+ this.r処理中のロングChip[ (int)inst ] = null;
4641+ Eレーン e = ( inst == E楽器パート.GUITAR ) ? Eレーン.GtPick : Eレーン.BsPick;
4642+ CDTXMania.DTX.tWavの再生停止( n最後に再生した実WAV番号[ (int)e ] );
4643+ }
4644+ }
4645+
43854646 // auto pickだとここから先に行かないので注意
43864647 List<STInputEvent> events = CDTXMania.Pad.GetEvents( inst, Eパッド.Pick );
43874648 if ( ( events != null ) && ( events.Count > 0 ) )
@@ -4398,38 +4659,401 @@ namespace DTXMania
43984659 CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, chWailingSound, this.nInputAdjustTimeMs[indexInst] ); // E楽器パート.GUITARなチップ全てにヒットする
43994660 E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs[indexInst] );
44004661 //Trace.TraceInformation("ch={0:x2}, mask1={1:x1}, mask2={2:x2}", pChip.nチャンネル番号, ( pChip.nチャンネル番号 & ~nAutoMask ) & 0x0F, ( flagRGB & ~nAutoMask) & 0x0F );
4401- if ( ( pChip != null ) && ( ( ( pChip.nチャンネル番号 & ~nAutoMask ) & 0x0F ) == ( ( flagRGB & ~nAutoMask) & 0x0F ) ) && ( e判定 != E判定.Miss ) )
4662+ //if ( ( pChip != null ) && ( ( ( pChip.nチャンネル番号 & ~nAutoMask ) & 0x0F ) == ( ( flagRGB & ~nAutoMask) & 0x0F ) ) && ( e判定 != E判定.Miss ) )
4663+ if( pChip != null )
44024664 {
4403- bool bChipHasR = ( ( pChip.nチャンネル番号 & 4 ) > 0 );
4404- bool bChipHasG = ( ( pChip.nチャンネル番号 & 2 ) > 0 );
4405- bool bChipHasB = ( ( pChip.nチャンネル番号 & 1 ) > 0 );
4665+ bool bChipHasR = false;
4666+ bool bChipHasG = false;
4667+ bool bChipHasB = false;
4668+ bool bChipHasY = false;
4669+ bool bChipHasP = false;
44064670 bool bChipHasW = ( ( pChip.nチャンネル番号 & 0x0F ) == 0x08 );
4407- bool bChipIsO = ( ( pChip.nチャンネル番号 & 0x0F ) == 0x00 );
4408- bool bSuccessOPEN = bChipIsO && ( autoR || pushingR == 0 ) && ( autoG || pushingG == 0 ) && ( autoB || pushingB == 0 );
4409- if ( ( bChipHasR && ( autoR || pushingR != 0 ) ) || bSuccessOPEN )
4410- //if ( ( pushingR != 0 ) || autoR || ( flagRGB == 0 ) )
4411- {
4412- this.actChipFireGB.Start( R, 演奏判定ライン座標 );
4413- }
4414- if ( ( bChipHasG && ( autoG || pushingG != 0 ) ) || bSuccessOPEN )
4415- //if ( ( pushingG != 0 ) || autoG || ( flagRGB == 0 ) )
4416- {
4417- this.actChipFireGB.Start( G, 演奏判定ライン座標 );
4418- }
4419- if ( ( bChipHasB && ( autoB || pushingB != 0 ) ) || bSuccessOPEN )
4420- //if ( ( pushingB != 0 ) || autoB || ( flagRGB == 0 ) )
4421- {
4422- this.actChipFireGB.Start( B, 演奏判定ライン座標 );
4423- }
4424- this.tチップのヒット処理( nTime, pChip );
4425- this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.nシステム時刻, inst, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する[indexInst], e判定 == E判定.Poor );
4426- int chWailingChip = ( inst == E楽器パート.GUITAR ) ? 0x28 : 0xA8;
4427- CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, chWailingChip, this.nInputAdjustTimeMs[ indexInst ], 140 );
4428- if ( item != null )
4429- {
4430- this.queWailing[indexInst].Enqueue( item );
4431- }
4432- continue;
4671+ bool bChipIsO = false;
4672+ //bool bSuccessOPEN = bChipIsO && ( autoR || pushingR == 0) && (autoG || pushingG == 0) && (autoB || pushingB == 0) && (autoY || pushingY == 0) && (autoP || pushingP == 0);
4673+
4674+ switch ( pChip.nチャンネル番号 )
4675+ {
4676+ case 0x20:
4677+ bChipIsO = true;
4678+ break;
4679+ case 0x21:
4680+ bChipHasB = true;
4681+ break;
4682+ case 0x22:
4683+ bChipHasG = true;
4684+ break;
4685+ case 0x23:
4686+ bChipHasG = true;
4687+ bChipHasB = true;
4688+ break;
4689+ case 0x24:
4690+ bChipHasR = true;
4691+ break;
4692+ case 0x25:
4693+ bChipHasR = true;
4694+ bChipHasB = true;
4695+ break;
4696+ case 0x26:
4697+ bChipHasR = true;
4698+ bChipHasG = true;
4699+ break;
4700+ case 0x27:
4701+ bChipHasR = true;
4702+ bChipHasG = true;
4703+ bChipHasB = true;
4704+ break;
4705+ case 0x28:
4706+ bChipHasW = true;
4707+ break;
4708+ //default:
4709+ //switch ( pChip.nチャンネル番号 )
4710+ //{
4711+ case 0x93:
4712+ bChipHasY = true;
4713+ break;
4714+ case 0x94:
4715+ bChipHasB = true;
4716+ bChipHasY = true;
4717+ break;
4718+ case 0x95:
4719+ bChipHasG = true;
4720+ bChipHasY = true;
4721+ break;
4722+ case 0x96:
4723+ bChipHasG = true;
4724+ bChipHasB = true;
4725+ bChipHasY = true;
4726+ break;
4727+ case 0x97:
4728+ bChipHasR = true;
4729+ bChipHasY = true;
4730+ break;
4731+ case 0x98:
4732+ bChipHasR = true;
4733+ bChipHasB = true;
4734+ bChipHasY = true;
4735+ break;
4736+ case 0x99:
4737+ bChipHasR = true;
4738+ bChipHasG = true;
4739+ bChipHasY = true;
4740+ break;
4741+ //OK
4742+
4743+ case 0x9A:
4744+ bChipHasR = true;
4745+ bChipHasG = true;
4746+ bChipHasB = true;
4747+ bChipHasY = true;
4748+ break;
4749+ case 0x9B:
4750+ bChipHasP = true;
4751+ break;
4752+ case 0x9C:
4753+ bChipHasB = true;
4754+ bChipHasP = true;
4755+ break;
4756+ case 0x9D:
4757+ bChipHasG = true;
4758+ bChipHasP = true;
4759+ break;
4760+ case 0x9E:
4761+ bChipHasG = true;
4762+ bChipHasB = true;
4763+ bChipHasP = true;
4764+ break;
4765+ case 0x9F:
4766+ bChipHasR = true;
4767+ bChipHasP = true;
4768+ break;
4769+ //OK
4770+
4771+ case 0xA1:
4772+ bChipHasB = true;
4773+ break;
4774+ case 0xA2:
4775+ bChipHasG = true;
4776+ break;
4777+ case 0xA3:
4778+ bChipHasG = true;
4779+ bChipHasB = true;
4780+ break;
4781+ case 0xA4:
4782+ bChipHasR = true;
4783+ break;
4784+ case 0xA5:
4785+ bChipHasR = true;
4786+ bChipHasB = true;
4787+ break;
4788+ case 0xA6:
4789+ bChipHasR = true;
4790+ bChipHasG = true;
4791+ break;
4792+ case 0xA7:
4793+ bChipHasR = true;
4794+ bChipHasG = true;
4795+ bChipHasB = true;
4796+ break;
4797+ //OK
4798+ case 0xA8:
4799+ bChipHasW = true;
4800+ break;
4801+
4802+ case 0xA9:
4803+ bChipHasR = true;
4804+ bChipHasB = true;
4805+ bChipHasP = true;
4806+ break;
4807+ case 0xAA:
4808+ bChipHasR = true;
4809+ bChipHasG = true;
4810+ bChipHasP = true;
4811+ break;
4812+ case 0xAB:
4813+ bChipHasR = true;
4814+ bChipHasG = true;
4815+ bChipHasB = true;
4816+ bChipHasP = true;
4817+ break;
4818+ case 0xAC:
4819+ bChipHasY = true;
4820+ bChipHasP = true;
4821+ break;
4822+ case 0xAD:
4823+ bChipHasB = true;
4824+ bChipHasY = true;
4825+ bChipHasP = true;
4826+ break;
4827+ case 0xAE:
4828+ bChipHasG = true;
4829+ bChipHasY = true;
4830+ bChipHasP = true;
4831+ break;
4832+ case 0xAF:
4833+ bChipHasG = true;
4834+ bChipHasB = true;
4835+ bChipHasY = true;
4836+ bChipHasP = true;
4837+ break;
4838+ //OK
4839+
4840+ case 0xC5:
4841+ bChipHasY = true;
4842+ break;
4843+ case 0xC6:
4844+ bChipHasB = true;
4845+ bChipHasY = true;
4846+ break;
4847+ case 0xC8:
4848+ bChipHasG = true;
4849+ bChipHasY = true;
4850+ break;
4851+ case 0xC9:
4852+ bChipHasG = true;
4853+ bChipHasB = true;
4854+ bChipHasY = true;
4855+ break;
4856+ case 0xCA:
4857+ bChipHasR = true;
4858+ bChipHasY = true;
4859+ break;
4860+ case 0xCB:
4861+ bChipHasR = true;
4862+ bChipHasB = true;
4863+ bChipHasY = true;
4864+ break;
4865+ case 0xCC:
4866+ bChipHasR = true;
4867+ bChipHasG = true;
4868+ bChipHasY = true;
4869+ break;
4870+ case 0xCD:
4871+ bChipHasR = true;
4872+ bChipHasG = true;
4873+ bChipHasB = true;
4874+ bChipHasY = true;
4875+ break;
4876+ case 0xCE:
4877+ bChipHasP = true;
4878+ break;
4879+ case 0xCF:
4880+ bChipHasB = true;
4881+ bChipHasP = true;
4882+ break;
4883+ //OK
4884+
4885+ case 0xD0:
4886+ bChipHasR = true;
4887+ bChipHasY = true;
4888+ bChipHasP = true;
4889+ break;
4890+ case 0xD1:
4891+ bChipHasR = true;
4892+ bChipHasB = true;
4893+ bChipHasY = true;
4894+ bChipHasP = true;
4895+ break;
4896+ case 0xD2:
4897+ bChipHasR = true;
4898+ bChipHasG = true;
4899+ bChipHasY = true;
4900+ bChipHasP = true;
4901+ break;
4902+ case 0xD3:
4903+ bChipHasR = true;
4904+ bChipHasG = true;
4905+ bChipHasB = true;
4906+ bChipHasY = true;
4907+ bChipHasP = true;
4908+ break;
4909+ //OK
4910+
4911+ case 0xDA:
4912+ bChipHasG = true;
4913+ bChipHasP = true;
4914+ break;
4915+ case 0xDB:
4916+ bChipHasG = true;
4917+ bChipHasB = true;
4918+ bChipHasP = true;
4919+ break;
4920+ case 0xDC:
4921+ bChipHasR = true;
4922+ bChipHasP = true;
4923+ break;
4924+ case 0xDD:
4925+ bChipHasR = true;
4926+ bChipHasB = true;
4927+ bChipHasP = true;
4928+ break;
4929+ case 0xDE:
4930+ bChipHasR = true;
4931+ bChipHasG = true;
4932+ bChipHasP = true;
4933+ break;
4934+ case 0xDF:
4935+ bChipHasR = true;
4936+ bChipHasG = true;
4937+ bChipHasB = true;
4938+ bChipHasP = true;
4939+ break;
4940+ case 0xE1:
4941+ bChipHasY = true;
4942+ bChipHasP = true;
4943+ break;
4944+ case 0xE2:
4945+ bChipHasB = true;
4946+ bChipHasY = true;
4947+ bChipHasP = true;
4948+ break;
4949+ case 0xE3:
4950+ bChipHasG = true;
4951+ bChipHasY = true;
4952+ bChipHasP = true;
4953+ break;
4954+ case 0xE4:
4955+ bChipHasG = true;
4956+ bChipHasB = true;
4957+ bChipHasY = true;
4958+ bChipHasP = true;
4959+ break;
4960+ case 0xE5:
4961+ bChipHasR = true;
4962+ bChipHasY = true;
4963+ bChipHasP = true;
4964+ break;
4965+ case 0xE6:
4966+ bChipHasR = true;
4967+ bChipHasB = true;
4968+ bChipHasY = true;
4969+ bChipHasP = true;
4970+ break;
4971+ case 0xE7:
4972+ bChipHasR = true;
4973+ bChipHasG = true;
4974+ bChipHasY = true;
4975+ bChipHasP = true;
4976+ break;
4977+ case 0xE8:
4978+ bChipHasR = true;
4979+ bChipHasG = true;
4980+ bChipHasB = true;
4981+ bChipHasY = true;
4982+ bChipHasP = true;
4983+ break;
4984+ //OK
4985+ //}
4986+ //break;
4987+ }
4988+
4989+ //bool bChipHasR = ( ( pChip.nチャンネル番号 & 4 ) > 0 );
4990+ //bool bChipHasG = ( ( pChip.nチャンネル番号 & 2 ) > 0 );
4991+ //bool bChipHasB = ( ( pChip.nチャンネル番号 & 1 ) > 0 );
4992+ //bool bChipHasW = ( ( pChip.nチャンネル番号 & 0x0F ) == 0x08 );
4993+ //bool bChipIsO = ( ( pChip.nチャンネル番号 & 0x0F ) == 0x00 );
4994+ //bool bSuccessOPEN = bChipIsO && ( autoR || pushingR == 0 ) && ( autoG || pushingG == 0 ) && ( autoB || pushingB == 0 );
4995+ //if ( ( bChipHasR && ( autoR || pushingR != 0 ) ) || bSuccessOPEN )
4996+ ////if ( ( pushingR != 0 ) || autoR || ( flagRGB == 0 ) )
4997+ //{
4998+ // this.actChipFireGB.Start( R, 演奏判定ライン座標 );
4999+ //}
5000+ //if ( ( bChipHasG && ( autoG || pushingG != 0 ) ) || bSuccessOPEN )
5001+ ////if ( ( pushingG != 0 ) || autoG || ( flagRGB == 0 ) )
5002+ //{
5003+ // this.actChipFireGB.Start( G, 演奏判定ライン座標 );
5004+ //}
5005+ //if ( ( bChipHasB && ( autoB || pushingB != 0 ) ) || bSuccessOPEN )
5006+ ////if ( ( pushingB != 0 ) || autoB || ( flagRGB == 0 ) )
5007+ //{
5008+ // this.actChipFireGB.Start( B, 演奏判定ライン座標 );
5009+ //}
5010+ //this.tチップのヒット処理( nTime, pChip );
5011+ //this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.nシステム時刻, inst, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する[indexInst], e判定 == E判定.Poor );
5012+ //int chWailingChip = ( inst == E楽器パート.GUITAR ) ? 0x28 : 0xA8;
5013+ //CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip( nTime, chWailingChip, this.nInputAdjustTimeMs[ indexInst ], 140 );
5014+ //if ( item != null )
5015+ //{
5016+ // this.queWailing[indexInst].Enqueue( item );
5017+ //}
5018+ //continue;
5019+
5020+ bool bSuccessOPEN = bChipIsO && (autoR || pushingR == 0) && (autoG || pushingG == 0) && (autoB || pushingB == 0) && (autoY || pushingY == 0) && (autoP || pushingP == 0);
5021+ int num17 = ( bChipHasR ? 4 : 0 ) | ( bChipHasG ? 2 : 0 ) | ( bChipHasB ? 1 : 0 ) | ( bChipHasY ? 16 : 0 ) | ( bChipHasP ? 32 : 0 );
5022+ if( pChip != null && ( num17 & ~nAutoMask & 0x3F ) == ( flagRGB & ~nAutoMask & 0x3F ) && e判定 != E判定.Miss )
5023+ {
5024+ if( pChip.e楽器パート == E楽器パート.BASS )
5025+ Trace.TraceInformation("bChipHas {0}{1}{2}{3}{4}", bChipHasR ? "R" : "-", bChipHasG ? "G" : "-", bChipHasB ? "B" : "-", bChipHasY ? "Y" : "-", bChipHasP ? "P" : "-");
5026+
5027+ if ((bChipHasR && (autoR || pushingR != 0)) || bSuccessOPEN)
5028+ {
5029+ this.actChipFireGB.Start(R, 演奏判定ライン座標);
5030+ }
5031+ if ((bChipHasG && (autoG || pushingG != 0)) || bSuccessOPEN)
5032+ {
5033+ this.actChipFireGB.Start(G, 演奏判定ライン座標);
5034+ }
5035+ if ((bChipHasB && (autoB || pushingB != 0)) || bSuccessOPEN)
5036+ {
5037+ this.actChipFireGB.Start(B, 演奏判定ライン座標);
5038+ }
5039+ if ((bChipHasY && (autoY || pushingY != 0)) || bSuccessOPEN)
5040+ {
5041+ this.actChipFireGB.Start(Y, 演奏判定ライン座標);
5042+ }
5043+ if ((bChipHasP && (autoP || pushingP != 0)) || bSuccessOPEN)
5044+ {
5045+ this.actChipFireGB.Start(P, 演奏判定ライン座標);
5046+ }
5047+ this.tチップのヒット処理(nTime, pChip);
5048+ this.tサウンド再生(pChip, CSound管理.rc演奏用タイマ.nシステム時刻, inst, CDTXMania.ConfigIni.n手動再生音量, CDTXMania.ConfigIni.b演奏音を強調する[indexInst], e判定 == E判定.Poor);
5049+ int chWailingChip = (inst == E楽器パート.GUITAR) ? 0x28 : 0xA8;
5050+ CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip(nTime, chWailingChip, this.nInputAdjustTimeMs[indexInst], 140);
5051+ if (item != null)
5052+ {
5053+ this.queWailing[indexInst].Enqueue(item);
5054+ }
5055+ continue;
5056+ }
44335057 }
44345058
44355059 // 以下、間違いレーンでのピック時
--- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/GITADORA/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253GD.cs"
+++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/GITADORA/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253GD.cs"
@@ -64,7 +64,7 @@ namespace DTXMania
6464
6565 #region[ 曲名 ]
6666 if( string.IsNullOrEmpty( CDTXMania.DTX.TITLE ) || ( !CDTXMania.bコンパクトモード && CDTXMania.ConfigIni.b曲名表示をdefのものにする ) )
67- this.strTitle = CDTXMania.stage選曲.r現在選択中の曲.strタイトル;
67+ this.strTitle = CDTXMania.stage選曲GITADORA.r現在選択中の曲.strタイトル;
6868 else
6969 this.strTitle = CDTXMania.DTX.TITLE;
7070
--- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/GITADORA/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227GD.cs"
+++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/GITADORA/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\345\210\244\345\256\232\346\226\207\345\255\227\345\210\227GD.cs"
@@ -1292,7 +1292,7 @@ namespace DTXMania
12921292 int num5 = 0;
12931293 int num6 = 0;
12941294
1295- int nJudgePosY = CDTXMania.stage演奏ギター画面.演奏判定ライン座標.n判定ラインY座標( E楽器パート.DRUMS, false, CDTXMania.ConfigIni.bReverse.Drums, false, true );
1295+ int nJudgePosY = CDTXMania.stage演奏ギター画面GITADORA.演奏判定ライン座標.n判定ラインY座標( E楽器パート.DRUMS, false, CDTXMania.ConfigIni.bReverse.Drums, false, true );
12961296 base.iP_A = nJudgePosY - 189;
12971297 base.iP_B = nJudgePosY + 23;
12981298
@@ -1410,7 +1410,7 @@ namespace DTXMania
14101410 int num4 = 0;
14111411 int num5 = 0;
14121412 int num6 = 0;
1413- int nJudgePosY = CDTXMania.stage演奏ギター画面.演奏判定ライン座標.n判定ラインY座標( j == 13 ? E楽器パート.GUITAR : E楽器パート.BASS, false, CDTXMania.ConfigIni.bReverse.Drums, false, true );
1413+ int nJudgePosY = CDTXMania.stage演奏ギター画面GITADORA.演奏判定ライン座標.n判定ラインY座標( j == 13 ? E楽器パート.GUITAR : E楽器パート.BASS, false, CDTXMania.ConfigIni.bReverse.Drums, false, true );
14141414 base.iP_A = nJudgePosY - 189;
14151415 base.iP_B = nJudgePosY + 23;
14161416 if( j == 13 )
--- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/GITADORA/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CStage\346\274\224\345\245\217\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242GD.cs"
+++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/GITADORA/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CStage\346\274\224\345\245\217\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242GD.cs"
@@ -22,22 +22,22 @@ namespace DTXMania
2222 base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
2323 base.b活性化してない = true;
2424 base.list子Activities.Add( this.actStageFailed = new CAct演奏ステージ失敗() );
25- base.list子Activities.Add( this.actBPMBar = new CAct演奏GuitarBPMバー() );
26- base.list子Activities.Add( this.actDANGER = new CAct演奏GuitarDanger() );
25+ base.list子Activities.Add( this.actBPMBar = new CAct演奏GuitarBPMバーGD() );
26+ base.list子Activities.Add( this.actDANGER = new CAct演奏GuitarDangerGD() );
2727 base.list子Activities.Add( this.actAVI = new CAct演奏AVI() );
2828 base.list子Activities.Add( this.actBGA = new CAct演奏BGA() );
2929 base.list子Activities.Add( this.actPanel = new CAct演奏パネル文字列() );
3030 base.list子Activities.Add( this.act譜面スクロール速度 = new CAct演奏スクロール速度() );
31- base.list子Activities.Add( this.actStatusPanels = new CAct演奏Guitarステータスパネル() );
32- base.list子Activities.Add( this.actWailingBonus = new CAct演奏GuitarWailingBonus() );
33- base.list子Activities.Add( this.actScore = new CAct演奏Guitarスコア() );
34- base.list子Activities.Add( this.actRGB = new CAct演奏GuitarRGB() );
35- base.list子Activities.Add( this.actLane = new CAct演奏Guitarレーン() );
36- base.list子Activities.Add( this.actLaneFlushGB = new CAct演奏GuitarレーンフラッシュGB() );
37- base.list子Activities.Add( this.actJudgeString = new CAct演奏Guitar判定文字列() );
38- base.list子Activities.Add( this.actGauge = new CAct演奏Guitarゲージ() );
39- base.list子Activities.Add( this.actCombo = new CAct演奏Guitarコンボ() );
40- base.list子Activities.Add( this.actChipFireGB = new CAct演奏Guitarチップファイア() );
31+ base.list子Activities.Add( this.actStatusPanels = new CAct演奏GuitarステータスパネルGD() );
32+ base.list子Activities.Add( this.actWailingBonus = new CAct演奏GuitarWailingBonus_GD() );
33+ base.list子Activities.Add( this.actScore = new CAct演奏GuitarスコアGD() );
34+ base.list子Activities.Add( this.actRGB = new CAct演奏GuitarRGB_GD() );
35+ base.list子Activities.Add( this.actLane = new CAct演奏GuitarレーンGD() );
36+ base.list子Activities.Add( this.actLaneFlushGB = new CAct演奏GuitarレーンフラッシュGB_GD() );
37+ base.list子Activities.Add( this.actJudgeString = new CAct演奏Guitar判定文字列GD() );
38+ base.list子Activities.Add( this.actGauge = new CAct演奏GuitarゲージGD() );
39+ base.list子Activities.Add( this.actCombo = new CAct演奏GuitarコンボGD() );
40+ base.list子Activities.Add( this.actChipFireGB = new CAct演奏GuitarチップファイアGD() );
4141 base.list子Activities.Add( this.actPlayInfo = new CAct演奏演奏情報() );
4242 base.list子Activities.Add( this.actFI = new CActFIFOBlack() );
4343 base.list子Activities.Add( this.actFO = new CActFIFOBlack() );
@@ -246,7 +246,7 @@ namespace DTXMania
246246
247247 #region [ private ]
248248 //-----------------
249- private CAct演奏Guitarレーン actLane;
249+ private CAct演奏GuitarレーンGD actLane;
250250
251251 protected override E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip, bool bCorrectLane )
252252 {
--- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs"
+++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\202\256\343\202\277\343\203\274\347\224\273\351\235\242/CAct\346\274\224\345\245\217Guitar\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs"
@@ -250,7 +250,7 @@ namespace DTXMania
250250
251251 string str = string.Format( "{0:0.00}", ( (float)CDTXMania.DTX.LEVEL[ 1 + i ]) / 10f );
252252 str = string.Format( "{0:0.00}", ( (float)CDTXMania.DTX.LEVEL[ 1 + 1 ] ) / 10.0f + ( CDTXMania.DTX.LEVELDEC[ 1 + i ] != 0 ? CDTXMania.DTX.LEVELDEC[ 1 + i ] / 100.0f : 0 ) );
253- int[] nDigit = new int[]{ Convert.ToInt16( str[ 0 ].ToString() ), Convert.ToInt16( str[ 2 ].ToString() ), Convert.ToInt16( str[ 3 ].ToString() ) };
253+ int[] nDigit = new int[]{ Convert.ToInt16( str[ 0 ].ToString() ), Convert.ToInt16( str[ 2 ].ToString() ), Convert.ToInt16( string.IsNullOrWhiteSpace(str[ 3 ].ToString()) ? "0" : str[ 3 ].ToString() ) };
254254
255255 if ( CDTXMania.ConfigIni.bCLASSIC譜面判別を有効にする ? ( CDTXMania.DTX.bCLASSIC譜面である[ 1 + i ] && CDTXMania.DTX.b強制的にXG譜面にする == false ) : false )
256256 {
--- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs"
+++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253.cs"
@@ -79,10 +79,10 @@ namespace DTXMania
7979 this.strGroupName = string.IsNullOrEmpty( CDTXMania.ConfigIni.strGroupName[0] ) ? "" : CDTXMania.ConfigIni.strGroupName[0];
8080 gNamePlate.Dispose();
8181
82- this.bNamePlate = new Bitmap( 0x170, 0x103 );
82+ this.bNamePlate = new Bitmap( 368, 304 );
8383
8484 gNamePlate = Graphics.FromImage( this.bNamePlate );
85- gNamePlate.DrawImage( this.iNamePlate, 0, 0, 0x170, 0x103 );
85+ gNamePlate.DrawImage( this.iNamePlate, 0, 0, 368, 304 );
8686
8787 if (CDTXMania.ConfigIni.eNamePlateType == Eタイプ.A)
8888 {
--- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CConfigIni.cs"
+++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CConfigIni.cs"
@@ -1561,10 +1561,10 @@ namespace DTXMania
15611561 sw.WriteLine(); //
15621562 #endregion
15631563 #region [ WASAPI/ASIO関連 ]
1564- sw.WriteLine( "; サウンド出力方式(0=ACM(って今はまだDirectSoundですが), 1=ASIO, 2=WASAPI)" );
1564+ sw.WriteLine( "; サウンド出力方式(0=ACM(って今はまだDirectSoundですが), 1=ASIO, 2=WASAPI排他, 3=WASAPI共有)" );
15651565 sw.WriteLine( "; WASAPIはVista以降のOSで使用可能。推奨方式はWASAPI。" );
15661566 sw.WriteLine( "; なお、WASAPIが使用不可ならASIOを、ASIOが使用不可ならACMを使用します。" );
1567- sw.WriteLine( "; Sound device type(0=ACM, 1=ASIO, 2=WASAPI)" );
1567+ sw.WriteLine( "; Sound device type(0=ACM, 1=ASIO, 2=WASAPI Exclucive, 3=WASAPI Shared)" );
15681568 sw.WriteLine( "; WASAPI can use on Vista or later OSs." );
15691569 sw.WriteLine( "; If WASAPI is not available, DTXMania try to use ASIO. If ASIO can't be used, ACM is used." );
15701570 sw.WriteLine( "SoundDeviceType={0}", (int) this.nSoundDeviceType );
--- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CDTXMania.cs"
+++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CDTXMania.cs"
@@ -23,7 +23,7 @@ namespace DTXMania
2323 {
2424 // プロパティ
2525 #region [ properties ]
26- public static readonly string VERSION = "Ver4.10(190901)";
26+ public static readonly string VERSION = "Ver4.10a(200922)";
2727 public static readonly string SLIMDXDLL = "c_net20x86_Jun2010";
2828 public static readonly string D3DXDLL = "d3dx9_43.dll"; // June 2010
2929 //public static readonly string D3DXDLL = "d3dx9_42.dll"; // February 2010
Binary files "a/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXCreator.exe" and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXCreator.exe" differ
--- "a/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXCreator.exe.config"
+++ "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXCreator.exe.config"
@@ -1,7 +1,7 @@
11 <?xml version="1.0"?>
22 <configuration>
33 <startup useLegacyV2RuntimeActivationPolicy="true">
4- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/>
4+ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.1"/>
55 <supportedRuntime version="v2.0.50727"/>
66 <supportedRuntime version="v1.1.4322"/>
77 <supportedRuntime version="v1.0.3705"/>
@@ -11,14 +11,6 @@
1111 <loadFromRemoteSources enabled="true"/>
1212 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
1313 <probing privatePath="dll"/>
14- <dependentAssembly>
15- <assemblyIdentity name="SlimDX"
16- version="1002.0.10.43"
17- publicKeyToken="53d0e4ef1f1579f5"
18- culture="neutral" />
19- <codeBase version="1002.0.10.43"
20- href="dll\SlimDXc_net20x86_Jun2010.dll"/>
21- </dependentAssembly>
2214 </assemblyBinding>
2315 </runtime>
2416 </configuration>
Binary files "a/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXManiaGR.exe" and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXManiaGR.exe" differ
Binary files "a/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/dll/FDK.dll" and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/dll/FDK.dll" differ