DTXManiaXG(Ver.K)4.00Series
修訂 | 8187ef5a16aff9b4e4ca69d1b3859c39bf4cc33a (tree) |
---|---|
時間 | 2020-09-22 15:42:47 |
作者 | ![]() |
Commiter | kairera0467 |
4.10a
#xxxxx 5レーンギター、ロングノーツ対応の準備(ロングノーツ関係は封印しているため動作しません)
#xxxxx アセンブリバージョンの変更
#xxxxx Guitarステータスパネルの不具合対策
#xxxxx CConfigIniのSoundDeviceTypeの説明文をWASAPI共有を含めたものに更新。
#xxxxx Matixx風表示でGuitar演奏をすると1ノーツ目の判定文字が表示された瞬間に強制終了する不具合の修正
@@ -11,7 +11,7 @@ using System.Resources; | ||
11 | 11 | [assembly: AssemblyConfiguration("")] |
12 | 12 | [assembly: AssemblyCompany("")] |
13 | 13 | [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" )] | |
15 | 15 | [assembly: AssemblyTrademark("")] |
16 | 16 | [assembly: AssemblyCulture("")] |
17 | 17 |
@@ -33,8 +33,8 @@ using System.Resources; | ||
33 | 33 | // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を |
34 | 34 | // 既定値にすることができます: |
35 | 35 | // [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" )] | |
38 | 38 | [assembly: NeutralResourcesLanguageAttribute("ja-JP")] |
39 | 39 | |
40 | 40 | // このアセンブリは「ライブラリ」である(難読化ツールへの指示)。 |
@@ -405,9 +405,8 @@ namespace DTXMania | ||
405 | 405 | { |
406 | 406 | public bool bHit; |
407 | 407 | 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にしたいが... | |
411 | 410 | public double dbチップサイズ倍率 = 1.0; |
412 | 411 | public double db実数値; |
413 | 412 | public EAVI種別 eAVI種別; |
@@ -415,7 +414,7 @@ namespace DTXMania | ||
415 | 414 | public E楽器パート e楽器パート = E楽器パート.UNKNOWN; |
416 | 415 | public int nチャンネル番号; |
417 | 416 | 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 | |
419 | 418 | public int n整数値; |
420 | 419 | public int n整数値_内部番号; |
421 | 420 | public int n総移動時間; |
@@ -424,7 +423,7 @@ namespace DTXMania | ||
424 | 423 | public int n発声時刻ms; |
425 | 424 | public int n発声終了位置; // 2019.9.7 kairera0467 |
426 | 425 | public int n発声終了時刻ms; // 2019.9.7 kairera0467 |
427 | - public int nLag; // 2011.2.1 yyagi | |
426 | + public int nLag; // 2011.2.1 yyagi | |
428 | 427 | public int nCurrentComboForGhost; // 2015.9.29 chnmr0 |
429 | 428 | public CDTX.CAVI rAVI; |
430 | 429 | public CDTX.CAVIPAN rAVIPan; |
@@ -432,13 +431,27 @@ namespace DTXMania | ||
432 | 431 | public CDTX.CBGAPAN rBGAPan; |
433 | 432 | public CDTX.CBMP rBMP; |
434 | 433 | 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 | + } | |
435 | 448 | public bool bBPMチップである |
436 | 449 | { |
437 | 450 | get |
438 | 451 | { |
439 | 452 | 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 | |
442 | 455 | ); |
443 | 456 | } |
444 | 457 | } |
@@ -446,7 +459,7 @@ namespace DTXMania | ||
446 | 459 | { |
447 | 460 | get |
448 | 461 | { |
449 | - switch( this.nチャンネル番号 ) | |
462 | + switch (this.nチャンネル番号) | |
450 | 463 | { |
451 | 464 | case 0x01: |
452 | 465 | case 0x11: |
@@ -459,8 +472,8 @@ namespace DTXMania | ||
459 | 472 | case 0x18: |
460 | 473 | case 0x19: |
461 | 474 | case 0x1a: |
462 | - case 0x1b: | |
463 | - case 0x1c: | |
475 | + case 0x1b: | |
476 | + case 0x1c: | |
464 | 477 | case 0x1f: |
465 | 478 | case 0x20: |
466 | 479 | case 0x21: |
@@ -470,7 +483,7 @@ namespace DTXMania | ||
470 | 483 | case 0x25: |
471 | 484 | case 0x26: |
472 | 485 | case 0x27: |
473 | - case 0x28: | |
486 | + case 0x28: | |
474 | 487 | case 0x2f: |
475 | 488 | case 0x31: |
476 | 489 | case 0x32: |
@@ -482,8 +495,8 @@ namespace DTXMania | ||
482 | 495 | case 0x38: |
483 | 496 | case 0x39: |
484 | 497 | case 0x3a: |
485 | - case 0x3b: | |
486 | - case 0x3c: | |
498 | + case 0x3b: | |
499 | + case 0x3c: | |
487 | 500 | case 0x61: |
488 | 501 | case 0x62: |
489 | 502 | case 0x63: |
@@ -537,7 +550,7 @@ namespace DTXMania | ||
537 | 550 | case 0xa5: |
538 | 551 | case 0xa6: |
539 | 552 | case 0xa7: |
540 | - case 0xa8: | |
553 | + case 0xa8: | |
541 | 554 | case 0xA9: |
542 | 555 | case 0xAA: |
543 | 556 | case 0xAB: |
@@ -557,10 +570,34 @@ namespace DTXMania | ||
557 | 570 | case 0xba: |
558 | 571 | case 0xbb: |
559 | 572 | 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: | |
560 | 583 | case 0xD0: |
561 | 584 | case 0xD1: |
562 | 585 | case 0xD2: |
563 | 586 | 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: | |
564 | 601 | return true; |
565 | 602 | } |
566 | 603 | return false; |
@@ -571,19 +608,26 @@ namespace DTXMania | ||
571 | 608 | get |
572 | 609 | { |
573 | 610 | 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))) | |
575 | 612 | { |
576 | - return ( ( 0x90 <= num ) && ( num <= 0x92 ) ); | |
613 | + return ((0x90 <= num) && (num <= 0x92)); | |
577 | 614 | } |
578 | 615 | return true; |
579 | 616 | } |
580 | 617 | } |
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 | |
586 | 623 | |
624 | + public bool bロングノート // 2020.05.19 kairera0467 | |
625 | + { | |
626 | + get | |
627 | + { | |
628 | + return chipロングノート終端 != null; | |
629 | + } | |
630 | + } | |
587 | 631 | public CChip() |
588 | 632 | { |
589 | 633 | this.nバーからの距離dot = new STDGBVALUE<int>() { |
@@ -615,6 +659,9 @@ namespace DTXMania | ||
615 | 659 | this.nバーからの距離dot.Guitar = 0; |
616 | 660 | this.nバーからの距離dot.Bass = 0; |
617 | 661 | this.n総移動時間 = 0; |
662 | + this.chipロングノート終端 = null; | |
663 | + this.bGuitar可視チップ = false; | |
664 | + this.bBass可視チップ = false; | |
618 | 665 | } |
619 | 666 | public override string ToString() |
620 | 667 | { |
@@ -1942,6 +1989,32 @@ namespace DTXMania | ||
1942 | 1989 | } |
1943 | 1990 | } |
1944 | 1991 | } |
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 | + } | |
1945 | 2018 | public void tWave再生位置自動補正() |
1946 | 2019 | { |
1947 | 2020 | foreach( CWAV cwav in this.listWAV.Values ) |
@@ -2572,58 +2645,65 @@ namespace DTXMania | ||
2572 | 2645 | bHasP = true; |
2573 | 2646 | break; |
2574 | 2647 | case 0x9D: |
2648 | + case 0xDA: | |
2575 | 2649 | bHasG = true; |
2576 | 2650 | bHasP = true; |
2577 | 2651 | break; |
2578 | 2652 | case 0x9E: |
2653 | + case 0xDB: | |
2579 | 2654 | bHasG = true; |
2580 | 2655 | bHasB = true; |
2581 | 2656 | bHasP = true; |
2582 | 2657 | break; |
2583 | 2658 | case 0x9F: |
2659 | + case 0xDC: | |
2584 | 2660 | bHasR = true; |
2585 | 2661 | bHasP = true; |
2586 | 2662 | break; |
2587 | 2663 | |
2588 | 2664 | case 0xA9: |
2665 | + case 0xDD: | |
2589 | 2666 | bHasR = true; |
2590 | 2667 | bHasB = true; |
2591 | 2668 | bHasP = true; |
2592 | 2669 | break; |
2593 | 2670 | case 0xAA: |
2671 | + case 0xDE: | |
2594 | 2672 | bHasR = true; |
2595 | 2673 | bHasG = true; |
2596 | 2674 | bHasP = true; |
2597 | 2675 | break; |
2598 | 2676 | case 0xAB: |
2677 | + case 0xDF: | |
2599 | 2678 | bHasR = true; |
2600 | 2679 | bHasG = true; |
2601 | 2680 | bHasB = true; |
2602 | 2681 | bHasP = true; |
2603 | 2682 | break; |
2604 | 2683 | case 0xAC: |
2684 | + case 0xE1: | |
2605 | 2685 | bHasY = true; |
2606 | 2686 | bHasP = true; |
2607 | 2687 | break; |
2608 | 2688 | case 0xAD: |
2609 | - bHasB = true; | |
2689 | + case 0xE2: | |
2690 | + bHasB = true; | |
2610 | 2691 | bHasY = true; |
2611 | 2692 | bHasP = true; |
2612 | 2693 | break; |
2613 | 2694 | case 0xAE: |
2695 | + case 0xE3: | |
2614 | 2696 | bHasG = true; |
2615 | 2697 | bHasY = true; |
2616 | 2698 | bHasP = true; |
2617 | 2699 | break; |
2618 | - //2017.7.16 kairera0467 Wikiのチャンネル定義表上ではギターGBYPだが、BassWailing Soundと重複しているので一旦コメントアウトしておく。 | |
2619 | - //case 0xAF: | |
2700 | + case 0xAF: | |
2620 | 2701 | case 0xE4: |
2621 | 2702 | bHasG = true; |
2622 | 2703 | bHasB = true; |
2623 | 2704 | bHasY = true; |
2624 | 2705 | bHasP = true; |
2625 | 2706 | break; |
2626 | - | |
2627 | 2707 | case 0xD0: |
2628 | 2708 | case 0xE5: |
2629 | 2709 | bHasR = true; |
@@ -3189,6 +3269,7 @@ namespace DTXMania | ||
3189 | 3269 | int n発声位置 = 0; |
3190 | 3270 | int ms = 0; |
3191 | 3271 | int nBar = 0; |
3272 | + STDGBVALUE<CChip> chipLN処理中 = new STDGBVALUE<CChip>(); | |
3192 | 3273 | foreach ( CChip chip in this.listChip ) |
3193 | 3274 | { |
3194 | 3275 | chip.n発声時刻ms = ms + ( (int) ( ( ( 0x271 * ( chip.n発声位置 - n発声位置 ) ) * dbBarLength ) / bpm ) ); |
@@ -3258,6 +3339,53 @@ namespace DTXMania | ||
3258 | 3339 | } |
3259 | 3340 | continue; |
3260 | 3341 | } |
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 | |
3261 | 3389 | default: |
3262 | 3390 | { |
3263 | 3391 | if( chip.nチャンネル番号 >= 0x4C && chip.nチャンネル番号 <= 0x4F ) |
@@ -3358,15 +3486,8 @@ namespace DTXMania | ||
3358 | 3486 | { |
3359 | 3487 | this.bCLASSIC譜面である.Drums = true; |
3360 | 3488 | } |
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; | |
3370 | 3491 | #endregion |
3371 | 3492 | //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); |
3372 | 3493 | //Trace.TraceInformation( "ch番号集合確認: {0}", span.ToString() ); |
@@ -6526,13 +6647,15 @@ namespace DTXMania | ||
6526 | 6647 | { |
6527 | 6648 | chip.e楽器パート = E楽器パート.DRUMS; |
6528 | 6649 | } |
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*/ ) | |
6530 | 6651 | { |
6531 | 6652 | chip.e楽器パート = E楽器パート.GUITAR; |
6653 | + chip.bGuitar可視チップ = true; | |
6532 | 6654 | } |
6533 | 6655 | if( ( nチャンネル番号 >= 0xA0 && nチャンネル番号 <= 0xA7 ) || ( nチャンネル番号 == 0xC5 ) || ( nチャンネル番号 == 0xC6 ) || ( nチャンネル番号 >= 0xC8 && nチャンネル番号 <= 0xCF ) || ( nチャンネル番号 >= 0xDA && nチャンネル番号 <= 0xDF ) || ( nチャンネル番号 >= 0xE1 && nチャンネル番号 <= 0xE8 ) ) |
6534 | 6656 | { |
6535 | 6657 | chip.e楽器パート = E楽器パート.BASS; |
6658 | + chip.bBass可視チップ = true; | |
6536 | 6659 | } |
6537 | 6660 | //----------------- |
6538 | 6661 | #endregion |
@@ -336,7 +336,7 @@ namespace DTXMania | ||
336 | 336 | //this.t大文字表示(73 + this.n本体X[ j ] + (i * 143), 19 + this.n本体Y[j] - y差分[i], string.Format("{0:0}", n難易度整数[i])); |
337 | 337 | //this.t小文字表示(102 + this.n本体X[ j ] + (i * 143), 37 + this.n本体Y[j] - y差分[i], string.Format("{0,2:00}", n難易度小数[i])); |
338 | 338 | //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]) ); | |
340 | 340 | } |
341 | 341 | //else if ((this.str難易度ラベル[i] != null && !this.b現在選択中の曲に譜面がある[i][j]) || CDTXMania.stage選曲XG.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.RANDOM) |
342 | 342 | //{ |
@@ -389,7 +389,7 @@ namespace DTXMania | ||
389 | 389 | //} |
390 | 390 | //----------------- |
391 | 391 | #endregion |
392 | - this.t難易度カーソル描画( 426, base.n現在選択中の曲の難易度 ); | |
392 | + this.t難易度カーソル描画( 426 - (j == 1 ? 236 : 0), base.n現在選択中の曲の難易度 ); | |
393 | 393 | |
394 | 394 | if( CDTXMania.stage選曲GITADORA.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE ) |
395 | 395 | { |
@@ -1059,7 +1059,11 @@ namespace DTXMania | ||
1059 | 1059 | } |
1060 | 1060 | continue; // ほんの僅かながら高速化 |
1061 | 1061 | } |
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 ) ) ) | |
1063 | 1067 | { |
1064 | 1068 | if ( chip.n発声時刻ms > nTime ) |
1065 | 1069 | { |
@@ -1067,7 +1071,12 @@ namespace DTXMania | ||
1067 | 1071 | } |
1068 | 1072 | nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future; |
1069 | 1073 | } |
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 ) ) ) | |
1071 | 1080 | { |
1072 | 1081 | if ( chip.n発声時刻ms > nTime ) |
1073 | 1082 | { |
@@ -1093,15 +1102,32 @@ namespace DTXMania | ||
1093 | 1102 | break; |
1094 | 1103 | } |
1095 | 1104 | } |
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 ) ) ) | |
1097 | 1110 | { |
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 ) ) | |
1099 | 1115 | { |
1100 | 1116 | break; |
1101 | 1117 | } |
1102 | 1118 | } |
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 ) ) ) ) | |
1105 | 1131 | { |
1106 | 1132 | break; |
1107 | 1133 | } |
@@ -1781,9 +1807,12 @@ namespace DTXMania | ||
1781 | 1807 | } |
1782 | 1808 | continue; |
1783 | 1809 | } |
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 ) ) ) ) | |
1787 | 1816 | { |
1788 | 1817 | if ( chip.n発声時刻ms > nTime ) |
1789 | 1818 | { |
@@ -1791,7 +1820,13 @@ namespace DTXMania | ||
1791 | 1820 | } |
1792 | 1821 | nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future; |
1793 | 1822 | } |
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 ) ) ) ) | |
1795 | 1830 | { |
1796 | 1831 | if ( chip.n発声時刻ms > nTime ) |
1797 | 1832 | { |
@@ -1826,8 +1861,13 @@ namespace DTXMania | ||
1826 | 1861 | ) |
1827 | 1862 | || |
1828 | 1863 | ( |
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 ) ) | |
1831 | 1871 | ) |
1832 | 1872 | ) |
1833 | 1873 | ) |
@@ -2324,6 +2364,13 @@ namespace DTXMania | ||
2324 | 2364 | pChip.nバーからの距離dot.Drums = (int) ( ( pChip.n発声時刻ms - CSound管理.rc演奏用タイマ.n現在時刻 ) * ScrollSpeedDrums ); |
2325 | 2365 | pChip.nバーからの距離dot.Guitar = (int) ( ( pChip.n発声時刻ms - CSound管理.rc演奏用タイマ.n現在時刻 ) * ScrollSpeedGuitar ); |
2326 | 2366 | 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 | + } | |
2327 | 2374 | if ( Math.Min( Math.Min( pChip.nバーからの距離dot.Drums, pChip.nバーからの距離dot.Guitar ), pChip.nバーからの距離dot.Bass ) > 600 ) |
2328 | 2375 | { |
2329 | 2376 | break; |
@@ -2802,6 +2849,31 @@ namespace DTXMania | ||
2802 | 2849 | case 0xa5: |
2803 | 2850 | case 0xa6: |
2804 | 2851 | 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: | |
2805 | 2877 | this.t進行描画_チップ_ギターベース( configIni, ref dTX, ref pChip, E楽器パート.BASS ); |
2806 | 2878 | break; |
2807 | 2879 | #endregion |
@@ -3378,7 +3450,7 @@ namespace DTXMania | ||
3378 | 3450 | |
3379 | 3451 | #region [ chip描画 ] |
3380 | 3452 | int OPEN = ( inst == E楽器パート.GUITAR ) ? 0x20 : 0xA0; |
3381 | - if ( !pChip.bHit && pChip.b可視 ) | |
3453 | + if ( ( !pChip.bHit || pChip.bロングノート ) && pChip.b可視 ) | |
3382 | 3454 | { |
3383 | 3455 | if ( this.txチップ != null ) |
3384 | 3456 | { |
@@ -3387,9 +3459,23 @@ namespace DTXMania | ||
3387 | 3459 | int y = configIni.bReverse[ instIndex ] ? |
3388 | 3460 | (int) ( barYReverse - pChip.nバーからの距離dot[ instIndex ] ) : |
3389 | 3461 | (int) ( barYNormal + pChip.nバーからの距離dot[ instIndex ] ); |
3462 | + int y_long = 0; | |
3390 | 3463 | int n小節線消失距離dot = configIni.bReverse[ instIndex ] ? |
3391 | 3464 | (int) ( -100 * Scale.Y ) : |
3392 | 3465 | ( 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 | + } | |
3393 | 3479 | if ( ( 104 < y ) && ( y < 720 ) ) |
3394 | 3480 | { |
3395 | 3481 | if ( this.txチップ != null ) |
@@ -3412,6 +3498,8 @@ namespace DTXMania | ||
3412 | 3498 | #region [ OPENチップの描画 ] |
3413 | 3499 | if ( pChip.nチャンネル番号 == OPEN ) |
3414 | 3500 | { |
3501 | + this.txチップ.n透明度 = 255; | |
3502 | + this.txチップ.vc拡大縮小倍率.Y = 1.0f; | |
3415 | 3503 | this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 0, 11, 196, 9 ) ); |
3416 | 3504 | } |
3417 | 3505 | #endregion |
@@ -3420,6 +3508,20 @@ namespace DTXMania | ||
3420 | 3508 | #region [ Rチップ描画 ] |
3421 | 3509 | if( bChipHasR ) |
3422 | 3510 | { |
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; | |
3423 | 3525 | //this.txチップ.t2D描画( CDTXMania.app.Device, x + 3, y - 4, new Rectangle( 1, 1, 35, 8 ) ); |
3424 | 3526 | this.txチップ.t2D描画( CDTXMania.app.Device, x + nChipX[ 0 ], y - 4, new Rectangle( 1, 1, 35, 8 ) ); |
3425 | 3527 | } |
@@ -3428,34 +3530,91 @@ namespace DTXMania | ||
3428 | 3530 | //x += 39; |
3429 | 3531 | if( bChipHasG ) |
3430 | 3532 | { |
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 ) ); | |
3433 | 3550 | } |
3434 | 3551 | #endregion |
3435 | 3552 | #region [ Bチップ描画 ] |
3436 | 3553 | //x += 39; |
3437 | 3554 | if( bChipHasB ) |
3438 | 3555 | { |
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 ) ); | |
3441 | 3572 | } |
3442 | 3573 | #endregion |
3443 | 3574 | #region [ Yチップ描画 ] |
3444 | 3575 | //x += 39; |
3445 | 3576 | if( bChipHasY ) |
3446 | 3577 | { |
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 ) ); | |
3449 | 3594 | } |
3450 | 3595 | #endregion |
3451 | 3596 | #region [ Pチップ描画 ] |
3452 | 3597 | //x += 39; |
3453 | 3598 | if( bChipHasP ) |
3454 | 3599 | { |
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 ) ); | |
3457 | 3616 | } |
3458 | - #endregion | |
3617 | + #endregion | |
3459 | 3618 | } |
3460 | 3619 | } |
3461 | 3620 | } |
@@ -3974,7 +4133,7 @@ namespace DTXMania | ||
3974 | 4133 | |
3975 | 4134 | // if ( bIsAutoPlay[ (int) Eレーン.Guitar - 1 + indexInst ] ) // このような、バグの入りやすい書き方(GT/BSのindex値が他と異なる)はいずれ見直したい |
3976 | 4135 | // { |
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 ]; | |
3978 | 4137 | if ( chip != null ) |
3979 | 4138 | { |
3980 | 4139 | bool bAutoGuitarR = false; |
@@ -4304,57 +4463,64 @@ namespace DTXMania | ||
4304 | 4463 | break; |
4305 | 4464 | } |
4306 | 4465 | //オートさん専用 |
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 | + | |
4332 | 4523 | |
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 | - } | |
4358 | 4524 | // } |
4359 | 4525 | |
4360 | 4526 | } |
@@ -4366,7 +4532,11 @@ namespace DTXMania | ||
4366 | 4532 | this.t入力メソッド記憶( inst ); |
4367 | 4533 | int pushingB = CDTXMania.Pad.b押されている( inst, Eパッド.B ) ? 1 : 0; |
4368 | 4534 | 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; | |
4370 | 4540 | if ( pushingR != 0 ) |
4371 | 4541 | { |
4372 | 4542 | this.actLaneFlushGB.Start( R ); |
@@ -4382,6 +4552,97 @@ namespace DTXMania | ||
4382 | 4552 | this.actLaneFlushGB.Start( B ); |
4383 | 4553 | this.actRGB.Push( B ); |
4384 | 4554 | } |
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 | + | |
4385 | 4646 | // auto pickだとここから先に行かないので注意 |
4386 | 4647 | List<STInputEvent> events = CDTXMania.Pad.GetEvents( inst, Eパッド.Pick ); |
4387 | 4648 | if ( ( events != null ) && ( events.Count > 0 ) ) |
@@ -4398,38 +4659,401 @@ namespace DTXMania | ||
4398 | 4659 | CDTX.CChip pChip = this.r指定時刻に一番近い未ヒットChip( nTime, chWailingSound, this.nInputAdjustTimeMs[indexInst] ); // E楽器パート.GUITARなチップ全てにヒットする |
4399 | 4660 | E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nTime, pChip, this.nInputAdjustTimeMs[indexInst] ); |
4400 | 4661 | //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 ) | |
4402 | 4664 | { |
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; | |
4406 | 4670 | 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 | + } | |
4433 | 5057 | } |
4434 | 5058 | |
4435 | 5059 | // 以下、間違いレーンでのピック時 |
@@ -64,7 +64,7 @@ namespace DTXMania | ||
64 | 64 | |
65 | 65 | #region[ 曲名 ] |
66 | 66 | 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タイトル; | |
68 | 68 | else |
69 | 69 | this.strTitle = CDTXMania.DTX.TITLE; |
70 | 70 |
@@ -1292,7 +1292,7 @@ namespace DTXMania | ||
1292 | 1292 | int num5 = 0; |
1293 | 1293 | int num6 = 0; |
1294 | 1294 | |
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 ); | |
1296 | 1296 | base.iP_A = nJudgePosY - 189; |
1297 | 1297 | base.iP_B = nJudgePosY + 23; |
1298 | 1298 |
@@ -1410,7 +1410,7 @@ namespace DTXMania | ||
1410 | 1410 | int num4 = 0; |
1411 | 1411 | int num5 = 0; |
1412 | 1412 | 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 ); | |
1414 | 1414 | base.iP_A = nJudgePosY - 189; |
1415 | 1415 | base.iP_B = nJudgePosY + 23; |
1416 | 1416 | if( j == 13 ) |
@@ -22,22 +22,22 @@ namespace DTXMania | ||
22 | 22 | base.eフェーズID = CStage.Eフェーズ.共通_通常状態; |
23 | 23 | base.b活性化してない = true; |
24 | 24 | 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() ); | |
27 | 27 | base.list子Activities.Add( this.actAVI = new CAct演奏AVI() ); |
28 | 28 | base.list子Activities.Add( this.actBGA = new CAct演奏BGA() ); |
29 | 29 | base.list子Activities.Add( this.actPanel = new CAct演奏パネル文字列() ); |
30 | 30 | 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() ); | |
41 | 41 | base.list子Activities.Add( this.actPlayInfo = new CAct演奏演奏情報() ); |
42 | 42 | base.list子Activities.Add( this.actFI = new CActFIFOBlack() ); |
43 | 43 | base.list子Activities.Add( this.actFO = new CActFIFOBlack() ); |
@@ -246,7 +246,7 @@ namespace DTXMania | ||
246 | 246 | |
247 | 247 | #region [ private ] |
248 | 248 | //----------------- |
249 | - private CAct演奏Guitarレーン actLane; | |
249 | + private CAct演奏GuitarレーンGD actLane; | |
250 | 250 | |
251 | 251 | protected override E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip, bool bCorrectLane ) |
252 | 252 | { |
@@ -250,7 +250,7 @@ namespace DTXMania | ||
250 | 250 | |
251 | 251 | string str = string.Format( "{0:0.00}", ( (float)CDTXMania.DTX.LEVEL[ 1 + i ]) / 10f ); |
252 | 252 | 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() ) }; | |
254 | 254 | |
255 | 255 | if ( CDTXMania.ConfigIni.bCLASSIC譜面判別を有効にする ? ( CDTXMania.DTX.bCLASSIC譜面である[ 1 + i ] && CDTXMania.DTX.b強制的にXG譜面にする == false ) : false ) |
256 | 256 | { |
@@ -79,10 +79,10 @@ namespace DTXMania | ||
79 | 79 | this.strGroupName = string.IsNullOrEmpty( CDTXMania.ConfigIni.strGroupName[0] ) ? "" : CDTXMania.ConfigIni.strGroupName[0]; |
80 | 80 | gNamePlate.Dispose(); |
81 | 81 | |
82 | - this.bNamePlate = new Bitmap( 0x170, 0x103 ); | |
82 | + this.bNamePlate = new Bitmap( 368, 304 ); | |
83 | 83 | |
84 | 84 | gNamePlate = Graphics.FromImage( this.bNamePlate ); |
85 | - gNamePlate.DrawImage( this.iNamePlate, 0, 0, 0x170, 0x103 ); | |
85 | + gNamePlate.DrawImage( this.iNamePlate, 0, 0, 368, 304 ); | |
86 | 86 | |
87 | 87 | if (CDTXMania.ConfigIni.eNamePlateType == Eタイプ.A) |
88 | 88 | { |
@@ -1561,10 +1561,10 @@ namespace DTXMania | ||
1561 | 1561 | sw.WriteLine(); // |
1562 | 1562 | #endregion |
1563 | 1563 | #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共有)" ); | |
1565 | 1565 | sw.WriteLine( "; WASAPIはVista以降のOSで使用可能。推奨方式はWASAPI。" ); |
1566 | 1566 | 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)" ); | |
1568 | 1568 | sw.WriteLine( "; WASAPI can use on Vista or later OSs." ); |
1569 | 1569 | sw.WriteLine( "; If WASAPI is not available, DTXMania try to use ASIO. If ASIO can't be used, ACM is used." ); |
1570 | 1570 | sw.WriteLine( "SoundDeviceType={0}", (int) this.nSoundDeviceType ); |
@@ -23,7 +23,7 @@ namespace DTXMania | ||
23 | 23 | { |
24 | 24 | // プロパティ |
25 | 25 | #region [ properties ] |
26 | - public static readonly string VERSION = "Ver4.10(190901)"; | |
26 | + public static readonly string VERSION = "Ver4.10a(200922)"; | |
27 | 27 | public static readonly string SLIMDXDLL = "c_net20x86_Jun2010"; |
28 | 28 | public static readonly string D3DXDLL = "d3dx9_43.dll"; // June 2010 |
29 | 29 | //public static readonly string D3DXDLL = "d3dx9_42.dll"; // February 2010 |
@@ -1,7 +1,7 @@ | ||
1 | 1 | <?xml version="1.0"?> |
2 | 2 | <configuration> |
3 | 3 | <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"/> | |
5 | 5 | <supportedRuntime version="v2.0.50727"/> |
6 | 6 | <supportedRuntime version="v1.1.4322"/> |
7 | 7 | <supportedRuntime version="v1.0.3705"/> |
@@ -11,14 +11,6 @@ | ||
11 | 11 | <loadFromRemoteSources enabled="true"/> |
12 | 12 | <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> |
13 | 13 | <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> | |
22 | 14 | </assemblyBinding> |
23 | 15 | </runtime> |
24 | 16 | </configuration> |