DTXManiaXG(Ver.K)4.00Series
Revisão | 75587e96a7e5a38159151309f974f675b906e1a5 (tree) |
---|---|
Hora | 2019-10-14 02:33:20 |
Autor | kairera0467 <gennsou76573@gmai...> |
Commiter | kairera0467 |
#xxxxx matixx風演奏画面に難易度ラベル並びに演奏パートの表示を仮追加。
#xxxxx matixx風選曲画面のST曲バー情報に難易度ごとの各種値の変数を追加。(まだ動作はしない)
#xxxxx matixx風演奏画面で周囲のフレーム画像を非表示にするオプションを追加。(CONFIG画面から「FrameDisp」で設定可。matixx風表示時限定)
#xxxxx matixx風結果画面にテクスチャを1枚追加。
#xxxxx 全レーンオートプレイの場合、グラフの表示をしないよう変更。
#xxxxx matixx風選曲画面で「5_header panel.png」が無いと落ちる不具合を修正。
作業部屋50553 5レーンギター実装の準備。
#35055 ギターロングノーツ実装の準備。
#xxxxx スクロール速度に応じてチップ縦幅の変化する機能の実装準備(テクスチャの作り直しと座標調整が必要なため保留)
#xxxxx 動画が再生されない不具合を修正
#xxxxx XG風演奏画面のネームカラー表示を少し修正。
@@ -412,15 +412,18 @@ namespace DTXMania | ||
412 | 412 | public EBGA種別 eBGA種別; |
413 | 413 | public E楽器パート e楽器パート = E楽器パート.UNKNOWN; |
414 | 414 | public int nチャンネル番号; |
415 | - public STDGBVALUE<int> nバーからの距離dot; | |
415 | + public STDGBVALUE<int> nバーからの距離dot; // 2019.9.7 kairera0467 | |
416 | + public STDGBVALUE<int> nバーからの終端距離dot; // 2019.9.7 kairera0467 | |
416 | 417 | public int n整数値; |
417 | 418 | public int n整数値_内部番号; |
418 | 419 | public int n総移動時間; |
419 | 420 | public int n透明度 = 0xff; |
420 | 421 | public int n発声位置; |
421 | 422 | public int n発声時刻ms; |
422 | - public int nLag; // 2011.2.1 yyagi | |
423 | - public int nCurrentComboForGhost; // 2015.9.29 chnmr0 | |
423 | + public int n発声終了位置; // 2019.9.7 kairera0467 | |
424 | + public int n発声終了時刻ms; // 2019.9.7 kairera0467 | |
425 | + public int nLag; // 2011.2.1 yyagi | |
426 | + public int nCurrentComboForGhost; // 2015.9.29 chnmr0 | |
424 | 427 | public CDTX.CAVI rAVI; |
425 | 428 | public CDTX.CAVIPAN rAVIPan; |
426 | 429 | public CDTX.CBGA rBGA; |
@@ -609,10 +612,10 @@ namespace DTXMania | ||
609 | 612 | "SE10", "SE11", "SE12", "SE13", "SE14", "SE15", "SE16", "SE17", |
610 | 613 | "SE18", "SE19", "??", "??", "??", "??", "??", "??", |
611 | 614 | "SE20", "SE21", "SE22", "SE23", "SE24", "SE25", "SE26", "SE27", |
612 | - "SE28", "SE29", "??", "??", "??", "??", "??", "??", | |
613 | - "SE30", "SE31", "SE32", "??", "??", "??", "??", "??", | |
614 | - "??", "??", "??", "??", "??", "??", "??", "??", | |
615 | - "ベースOPEN", "ベース - - B", "ベース - G -", "ベース - G B", "ベース R - -", "ベース R - B", "ベース R G -", "ベース R G B", | |
615 | + "SE28", "SE29", "??", "??", "??", "??", "??", "??", | |
616 | + "SE30", "SE31", "SE32", "ギター - - - Y -", "ギター - - B Y -", "ギター - G - Y -", "ギター - G B Y -", "ギター R - - Y -", | |
617 | + "ギター R - B Y -", "ギター R G - Y -", "ギター R G B Y -", "ギター - - - - P", "ギター - - B - P", "ギター - G - - P", "ギター - G B - P", "ギター R - - - P", | |
618 | + "ベースOPEN", "ベース - - B", "ベース - G -", "ベース - G B", "ベース R - -", "ベース R - B", "ベース R G -", "ベース R G B", | |
616 | 619 | "ベースWailing", "??", "??", "??", "??", "??", "??", "ベースWailing音切替", |
617 | 620 | "??", "HHClose(空うち)", "Snare(空うち)", "Kick(空うち)", "HiTom(空うち)", "LowTom(空うち)", "Cymbal(空うち)", "FloorTom(空うち)", |
618 | 621 | "HHOpen(空うち)", "RideCymbal(空うち)", "ギター(空打ち)", "ベース(空打ち)", "LeftCymbal(空うち)", "??", "??", "??", |
@@ -654,7 +657,7 @@ namespace DTXMania | ||
654 | 657 | nDuration = ( wc.rSound[ 0 ] == null ) ? 0 : wc.rSound[ 0 ].n総演奏時間ms; |
655 | 658 | } |
656 | 659 | } |
657 | - else if ( this.nチャンネル番号 == 0x54 ) // AVI | |
660 | + else if ( this.nチャンネル番号 == 0x54 || this.nチャンネル番号 == 0x5A ) // AVI | |
658 | 661 | { |
659 | 662 | if ( this.rAVI != null && this.rAVI.avi != null ) |
660 | 663 | { |
@@ -1216,8 +1219,10 @@ namespace DTXMania | ||
1216 | 1219 | public bool LBD; |
1217 | 1220 | public bool OpenGuitar; |
1218 | 1221 | public bool OpenBass; |
1222 | + public bool YPGuitar; | |
1223 | + public bool YPBass; | |
1219 | 1224 | |
1220 | - public bool BGA; | |
1225 | + public bool BGA; | |
1221 | 1226 | public bool Movie; |
1222 | 1227 | |
1223 | 1228 | public bool this[ int index ] |
@@ -3277,14 +3282,14 @@ namespace DTXMania | ||
3277 | 3282 | { |
3278 | 3283 | this.n可視チップ数[ c - 0x11 ]++; |
3279 | 3284 | } |
3280 | - if ( ( 0x20 <= c ) && ( c <= 0x27 ) ) | |
3281 | - { | |
3282 | - this.n可視チップ数.Guitar++; | |
3283 | - } | |
3284 | - if ( ( 0xA0 <= c ) && ( c <= 0xa7 ) ) | |
3285 | - { | |
3286 | - this.n可視チップ数.Bass++; | |
3287 | - } | |
3285 | + if( ( 0x20 <= c ) && ( c <= 0x27 ) || ( 0x93 <= c ) && ( c <= 0x9F ) || ( 0xA9 <= c ) && ( c <= 0xAF ) || ( 0xD0 <= c ) && ( c <= 0xD3 ) ) | |
3286 | + { | |
3287 | + this.n可視チップ数.Guitar++; | |
3288 | + } | |
3289 | + if( ( 0xA0 <= c ) && ( c <= 0xA7 ) || ( 0xC5 <= c ) && ( c <= 0xC6 ) || ( 0xC8 <= c ) && ( c <= 0xCF ) || ( 0xDA <= c ) && ( c <= 0xDF ) || ( 0xE1 <= c ) && ( c <= 0xE8 ) ) | |
3290 | + { | |
3291 | + this.n可視チップ数.Bass++; | |
3292 | + } | |
3288 | 3293 | if ( ( c >= 0x4C ) && ( c <= 0x4F ) ) |
3289 | 3294 | { |
3290 | 3295 | this.nボーナスチップ数++; |
@@ -3445,16 +3450,22 @@ namespace DTXMania | ||
3445 | 3450 | case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: case 0x18: case 0x19: case 0x1A: case 0x1B: case 0x1C: |
3446 | 3451 | // Gt演奏チャネル |
3447 | 3452 | case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27: case 0x28: |
3453 | + case 0x93: case 0x94: case 0x95: case 0x96: case 0x97: case 0x98: case 0x99: case 0x9A: case 0x9B: case 0x9C: case 0x9D: case 0x9E: case 0x9F: | |
3454 | + case 0xA9: case 0xAA: case 0xAB: case 0xAC: case 0xAD: case 0xAE: case 0xAF: | |
3455 | + case 0xD0: case 0xD1: case 0xD2: case 0xD3: | |
3448 | 3456 | // Bs演奏チャネル |
3449 | 3457 | case 0xA0: case 0xA1: case 0xA2: case 0xA3: case 0xA4: case 0xA5: case 0xA6: case 0xA7: case 0xA8: |
3458 | + case 0xC5: case 0xC6: case 0xC8: case 0xC9: case 0xCA: case 0xCB: case 0xCC: case 0xCD: case 0xCE: case 0xCF: | |
3459 | + case 0xDA: case 0xDB: case 0xDC: case 0xDD: case 0xDE: case 0xDF: | |
3460 | + case 0xE1: case 0xE2: case 0xE3: case 0xE4: case 0xE5: case 0xE6: case 0xE7: case 0xE8: | |
3450 | 3461 | // Dr不可視チップ |
3451 | 3462 | case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: |
3452 | - case 0x38: case 0x39: case 0x3A: | |
3463 | + case 0x38: case 0x39: case 0x3A: case 0x3B: case 0x3C: | |
3453 | 3464 | // Dr/Gt/Bs空打ち |
3454 | 3465 | case 0xB1: case 0xB2: case 0xB3: case 0xB4: case 0xB5: case 0xB6: case 0xB7: case 0xB8: |
3455 | - case 0xB9: case 0xBA: case 0xBB: case 0xBC: | |
3466 | + case 0xB9: case 0xBA: case 0xBB: case 0xBC: case 0xBD: case 0xBE: | |
3456 | 3467 | // フィルインサウンド |
3457 | - case 0x1F: case 0x2F: case 0xAF: | |
3468 | + case 0x1F: case 0x2F: //case 0xAF: | |
3458 | 3469 | // 自動演奏チップ |
3459 | 3470 | case 0x61: case 0x62: case 0x63: case 0x64: case 0x65: case 0x66: case 0x67: case 0x68: case 0x69: |
3460 | 3471 | case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: case 0x75: case 0x76: case 0x77: case 0x78: case 0x79: |
@@ -3720,45 +3731,76 @@ namespace DTXMania | ||
3720 | 3731 | /// </summary> |
3721 | 3732 | public void SwapGuitarBassInfos() // #24063 2011.1.24 yyagi ギターとベースの譜面情報入替 |
3722 | 3733 | { |
3723 | - for (int i = this.listChip.Count - 1; i >= 0; i--) { | |
3724 | - if (listChip[i].e楽器パート == E楽器パート.BASS) { | |
3725 | - listChip[i].e楽器パート = E楽器パート.GUITAR; | |
3726 | - listChip[i].nチャンネル番号 -= ( 0xA0 - 0x20 ); | |
3727 | - } | |
3728 | - else if ( listChip[i].e楽器パート == E楽器パート.GUITAR ) | |
3729 | - { | |
3730 | - listChip[i].e楽器パート = E楽器パート.BASS; | |
3731 | - listChip[i].nチャンネル番号 += ( 0xA0 - 0x20 ); | |
3732 | - } | |
3733 | - else if ( listChip[ i ].nチャンネル番号 == 0x28 ) // #25215 2011.5.21 yyagi wailingはE楽器パート.UNKNOWNが割り当てられているので個別に対応 | |
3734 | - { | |
3735 | - listChip[ i ].nチャンネル番号 += ( 0xA0 - 0x20 ); | |
3736 | - } | |
3737 | - else if ( listChip[ i ].nチャンネル番号 == 0xA8 ) // #25215 2011.5.21 yyagi wailingはE楽器パート.UNKNOWNが割り当てられているので個別に対応 | |
3738 | - { | |
3739 | - listChip[ i ].nチャンネル番号 -= ( 0xA0 - 0x20 ); | |
3740 | - } | |
3741 | - } | |
3742 | - int t = this.LEVEL.Bass; | |
3743 | - this.LEVEL.Bass = this.LEVEL.Guitar; | |
3744 | - this.LEVEL.Guitar = t; | |
3734 | + for( int i = this.listChip.Count - 1; i >= 0; i-- ) | |
3735 | + { | |
3736 | + if( listChip[ i ].e楽器パート == E楽器パート.BASS ) | |
3737 | + { | |
3738 | + listChip[ i ].e楽器パート = E楽器パート.GUITAR; | |
3739 | + if( listChip[ i ].nチャンネル番号 >= 0xA0 && listChip[ i ].nチャンネル番号 <= 0xA8 ) | |
3740 | + listChip[ i ].nチャンネル番号 -= ( 0xA0 - 0x20 ); | |
3741 | + else if( listChip[ i ].nチャンネル番号 == 0xC5 || listChip[ i ].nチャンネル番号 == 0xC6 ) | |
3742 | + listChip[ i ].nチャンネル番号 -= 0x32; | |
3743 | + else if( listChip[ i ].nチャンネル番号 >= 0xC8 && listChip[ i ].nチャンネル番号 <= 0xCF ) | |
3744 | + listChip[ i ].nチャンネル番号 -= 0x33; | |
3745 | + else if( listChip[ i ].nチャンネル番号 >= 0xDA && listChip[ i ].nチャンネル番号 <= 0xDC ) | |
3746 | + listChip[ i ].nチャンネル番号 -= 0x3D; | |
3747 | + else if( listChip[ i ].nチャンネル番号 >= 0xDD && listChip[ i ].nチャンネル番号 <= 0xDF ) | |
3748 | + listChip[ i ].nチャンネル番号 -= 0x34; | |
3749 | + else if( listChip[ i ].nチャンネル番号 >= 0xE1 && listChip[ i ].nチャンネル番号 <= 0xE8 ) | |
3750 | + listChip[ i ].nチャンネル番号 -= 0x35; | |
3751 | + } | |
3752 | + else if( listChip[ i ].e楽器パート == E楽器パート.GUITAR ) | |
3753 | + { | |
3754 | + listChip[ i ].e楽器パート = E楽器パート.BASS; | |
3755 | + | |
3756 | + if( listChip[ i ].nチャンネル番号 >= 0x20 && listChip[ i ].nチャンネル番号 <= 0x28 ) | |
3757 | + listChip[ i ].nチャンネル番号 += ( 0xA0 - 0x20 ); | |
3758 | + else if( listChip[ i ].nチャンネル番号 == 0x93 || listChip[ i ].nチャンネル番号 == 0x94 ) | |
3759 | + listChip[ i ].nチャンネル番号 += 0x32; | |
3760 | + else if( listChip[ i ].nチャンネル番号 >= 0x95 && listChip[ i ].nチャンネル番号 <= 0x9C ) | |
3761 | + listChip[ i ].nチャンネル番号 += 0x33; | |
3762 | + else if( listChip[ i ].nチャンネル番号 >= 0x9D && listChip[ i ].nチャンネル番号 <= 0x9F ) | |
3763 | + listChip[ i ].nチャンネル番号 += 0x3D; | |
3764 | + else if( listChip[ i ].nチャンネル番号 >= 0xA9 && listChip[ i ].nチャンネル番号 <= 0xAB ) | |
3765 | + listChip[ i ].nチャンネル番号 += 0x34; | |
3766 | + else if( listChip[ i ].nチャンネル番号 >= 0xAC && listChip[ i ].nチャンネル番号 <= 0xD3 ) | |
3767 | + listChip[ i ].nチャンネル番号 += 0x35; | |
3768 | + } | |
3745 | 3769 | |
3746 | - t = this.n可視チップ数.Bass; | |
3747 | - this.n可視チップ数.Bass = this.n可視チップ数.Guitar; | |
3748 | - this.n可視チップ数.Guitar = t; | |
3770 | + //Wailing | |
3771 | + else if( listChip[ i ].nチャンネル番号 == 0x28 ) // #25215 2011.5.21 yyagi wailingはE楽器パート.UNKNOWNが割り当てられているので個別に対応 | |
3772 | + { | |
3773 | + listChip[ i ].nチャンネル番号 += ( 0xA0 - 0x20 ); | |
3774 | + } | |
3775 | + else if( listChip[ i ].nチャンネル番号 == 0xA8 ) // #25215 2011.5.21 yyagi wailingはE楽器パート.UNKNOWNが割り当てられているので個別に対応 | |
3776 | + { | |
3777 | + listChip[ i ].nチャンネル番号 -= ( 0xA0 - 0x20 ); | |
3778 | + } | |
3779 | + } | |
3780 | + int t = this.LEVEL.Bass; | |
3781 | + this.LEVEL.Bass = this.LEVEL.Guitar; | |
3782 | + this.LEVEL.Guitar = t; | |
3749 | 3783 | |
3750 | - bool ts = this.bチップがある.Bass; | |
3751 | - this.bチップがある.Bass = this.bチップがある.Guitar; | |
3752 | - this.bチップがある.Guitar = ts; | |
3784 | + t = this.LEVELDEC.Bass; | |
3785 | + this.LEVELDEC.Bass = this.LEVELDEC.Guitar; | |
3786 | + this.LEVELDEC.Guitar = t; | |
3753 | 3787 | |
3754 | -// SwapGuitarBassInfos_AutoFlags(); | |
3755 | - } | |
3788 | + t = this.n可視チップ数.Bass; | |
3789 | + this.n可視チップ数.Bass = this.n可視チップ数.Guitar; | |
3790 | + this.n可視チップ数.Guitar = t; | |
3791 | + | |
3792 | + bool ts = this.bチップがある.Bass; | |
3793 | + this.bチップがある.Bass = this.bチップがある.Guitar; | |
3794 | + this.bチップがある.Guitar = ts; | |
3795 | + | |
3796 | + // SwapGuitarBassInfos_AutoFlags(); | |
3797 | + } | |
3756 | 3798 | |
3757 | - // SwapGuitarBassInfos_AutoFlags()は、CDTXからCConfigIniに移動。 | |
3799 | + // SwapGuitarBassInfos_AutoFlags()は、CDTXからCConfigIniに移動。 | |
3758 | 3800 | |
3759 | - // CActivity 実装 | |
3801 | + // CActivity 実装 | |
3760 | 3802 | |
3761 | - public override void On活性化() | |
3803 | + public override void On活性化() | |
3762 | 3804 | { |
3763 | 3805 | this.listWAV = new Dictionary<int, CWAV>(); |
3764 | 3806 | this.listBMP = new Dictionary<int, CBMP>(); |
@@ -3869,15 +3911,311 @@ namespace DTXMania | ||
3869 | 3911 | } |
3870 | 3912 | } |
3871 | 3913 | |
3914 | + public void tギターレーンのチップパターンを取得する( int nチャンネル番号, ref bool bR, ref bool bG, ref bool bB, ref bool bY, ref bool bP ) | |
3915 | + { | |
3916 | + switch( nチャンネル番号 ) | |
3917 | + { | |
3918 | + case 0x21: | |
3919 | + bB = true; | |
3920 | + break; | |
3921 | + case 0x22: | |
3922 | + bG = true; | |
3923 | + break; | |
3924 | + case 0x23: | |
3925 | + bG = true; | |
3926 | + bB = true; | |
3927 | + break; | |
3928 | + case 0x24: | |
3929 | + bR = true; | |
3930 | + break; | |
3931 | + case 0x25: | |
3932 | + bR = true; | |
3933 | + bB = true; | |
3934 | + break; | |
3935 | + case 0x26: | |
3936 | + bR = true; | |
3937 | + bG = true; | |
3938 | + break; | |
3939 | + case 0x27: | |
3940 | + bR = true; | |
3941 | + bG = true; | |
3942 | + bB = true; | |
3943 | + break; | |
3944 | + case 0x93: | |
3945 | + bY = true; | |
3946 | + break; | |
3947 | + case 0x94: | |
3948 | + bB = true; | |
3949 | + bY = true; | |
3950 | + break; | |
3951 | + case 0x95: | |
3952 | + bG = true; | |
3953 | + bY = true; | |
3954 | + break; | |
3955 | + case 0x96: | |
3956 | + bG = true; | |
3957 | + bB = true; | |
3958 | + bY = true; | |
3959 | + break; | |
3960 | + case 0x97: | |
3961 | + bR = true; | |
3962 | + bY = true; | |
3963 | + break; | |
3964 | + case 0x98: | |
3965 | + bR = true; | |
3966 | + bB = true; | |
3967 | + bY = true; | |
3968 | + break; | |
3969 | + case 0x99: | |
3970 | + bR = true; | |
3971 | + bG = true; | |
3972 | + bY = true; | |
3973 | + break; | |
3974 | + case 0x9A: | |
3975 | + bR = true; | |
3976 | + bG = true; | |
3977 | + bB = true; | |
3978 | + bY = true; | |
3979 | + break; | |
3980 | + case 0x9B: | |
3981 | + bP = true; | |
3982 | + break; | |
3983 | + case 0x9C: | |
3984 | + bB = true; | |
3985 | + bP = true; | |
3986 | + break; | |
3987 | + case 0x9D: | |
3988 | + bG = true; | |
3989 | + bP = true; | |
3990 | + break; | |
3991 | + case 0x9E: | |
3992 | + bG = true; | |
3993 | + bB = true; | |
3994 | + bP = true; | |
3995 | + break; | |
3996 | + case 0x9F: | |
3997 | + bR = true; | |
3998 | + bP = true; | |
3999 | + break; | |
3872 | 4000 | |
3873 | - // その他 | |
3874 | - | |
3875 | - #region [ private ] | |
3876 | - //----------------- | |
3877 | - /// <summary> | |
3878 | - /// <para>GDAチャンネル番号に対応するDTXチャンネル番号。</para> | |
3879 | - /// </summary> | |
3880 | - [StructLayout( LayoutKind.Sequential )] | |
4001 | + case 0xA1: | |
4002 | + bB = true; | |
4003 | + break; | |
4004 | + case 0xA2: | |
4005 | + bG = true; | |
4006 | + break; | |
4007 | + case 0xA3: | |
4008 | + bG = true; | |
4009 | + bB = true; | |
4010 | + break; | |
4011 | + case 0xA4: | |
4012 | + bR = true; | |
4013 | + break; | |
4014 | + case 0xA5: | |
4015 | + bR = true; | |
4016 | + bB = true; | |
4017 | + break; | |
4018 | + case 0xA6: | |
4019 | + bR = true; | |
4020 | + bG = true; | |
4021 | + break; | |
4022 | + case 0xA7: | |
4023 | + bR = true; | |
4024 | + bG = true; | |
4025 | + bB = true; | |
4026 | + break; | |
4027 | + | |
4028 | + case 0xA9: | |
4029 | + bR = true; | |
4030 | + bB = true; | |
4031 | + bP = true; | |
4032 | + break; | |
4033 | + case 0xAA: | |
4034 | + bR = true; | |
4035 | + bG = true; | |
4036 | + bP = true; | |
4037 | + break; | |
4038 | + case 0xAB: | |
4039 | + bR = true; | |
4040 | + bG = true; | |
4041 | + bB = true; | |
4042 | + bP = true; | |
4043 | + break; | |
4044 | + case 0xAC: | |
4045 | + bY = true; | |
4046 | + bP = true; | |
4047 | + break; | |
4048 | + case 0xAD: | |
4049 | + bB = true; | |
4050 | + bY = true; | |
4051 | + bP = true; | |
4052 | + break; | |
4053 | + case 0xAE: | |
4054 | + bG = true; | |
4055 | + bY = true; | |
4056 | + bP = true; | |
4057 | + break; | |
4058 | + case 0xAF: | |
4059 | + bG = true; | |
4060 | + bB = true; | |
4061 | + bY = true; | |
4062 | + bP = true; | |
4063 | + break; | |
4064 | + | |
4065 | + case 0xC5: | |
4066 | + bY = true; | |
4067 | + break; | |
4068 | + case 0xC6: | |
4069 | + bB = true; | |
4070 | + bY = true; | |
4071 | + break; | |
4072 | + | |
4073 | + case 0xC8: | |
4074 | + bG = true; | |
4075 | + bY = true; | |
4076 | + break; | |
4077 | + case 0xC9: | |
4078 | + bG = true; | |
4079 | + bB = true; | |
4080 | + bY = true; | |
4081 | + break; | |
4082 | + case 0xCA: | |
4083 | + bR = true; | |
4084 | + bY = true; | |
4085 | + break; | |
4086 | + case 0xCB: | |
4087 | + bR = true; | |
4088 | + bB = true; | |
4089 | + bY = true; | |
4090 | + break; | |
4091 | + case 0xCC: | |
4092 | + bR = true; | |
4093 | + bG = true; | |
4094 | + bY = true; | |
4095 | + break; | |
4096 | + case 0xCD: | |
4097 | + bR = true; | |
4098 | + bG = true; | |
4099 | + bB = true; | |
4100 | + bY = true; | |
4101 | + break; | |
4102 | + case 0xCE: | |
4103 | + bP = true; | |
4104 | + break; | |
4105 | + case 0xCF: | |
4106 | + bB = true; | |
4107 | + bP = true; | |
4108 | + break; | |
4109 | + case 0xD0: | |
4110 | + bR = true; | |
4111 | + bY = true; | |
4112 | + bP = true; | |
4113 | + break; | |
4114 | + case 0xD1: | |
4115 | + bR = true; | |
4116 | + bB = true; | |
4117 | + bY = true; | |
4118 | + bP = true; | |
4119 | + break; | |
4120 | + case 0xD2: | |
4121 | + bR = true; | |
4122 | + bG = true; | |
4123 | + bY = true; | |
4124 | + bP = true; | |
4125 | + break; | |
4126 | + case 0xD3: | |
4127 | + bR = true; | |
4128 | + bG = true; | |
4129 | + bB = true; | |
4130 | + bY = true; | |
4131 | + bP = true; | |
4132 | + break; | |
4133 | + | |
4134 | + | |
4135 | + case 0xDA: | |
4136 | + bG = true; | |
4137 | + bP = true; | |
4138 | + break; | |
4139 | + case 0xDB: | |
4140 | + bG = true; | |
4141 | + bB = true; | |
4142 | + bP = true; | |
4143 | + break; | |
4144 | + case 0xDC: | |
4145 | + bR = true; | |
4146 | + bP = true; | |
4147 | + break; | |
4148 | + case 0xDD: | |
4149 | + bR = true; | |
4150 | + bB = true; | |
4151 | + bP = true; | |
4152 | + break; | |
4153 | + case 0xDE: | |
4154 | + bR = true; | |
4155 | + bG = true; | |
4156 | + bP = true; | |
4157 | + break; | |
4158 | + case 0xDF: | |
4159 | + bR = true; | |
4160 | + bG = true; | |
4161 | + bB = true; | |
4162 | + bP = true; | |
4163 | + break; | |
4164 | + case 0xE1: | |
4165 | + bY = true; | |
4166 | + bP = true; | |
4167 | + break; | |
4168 | + case 0xE2: | |
4169 | + bB = true; | |
4170 | + bY = true; | |
4171 | + bP = true; | |
4172 | + break; | |
4173 | + case 0xE3: | |
4174 | + bG = true; | |
4175 | + bY = true; | |
4176 | + bP = true; | |
4177 | + break; | |
4178 | + case 0xE4: | |
4179 | + bG = true; | |
4180 | + bB = true; | |
4181 | + bY = true; | |
4182 | + bP = true; | |
4183 | + break; | |
4184 | + case 0xE5: | |
4185 | + bR = true; | |
4186 | + bY = true; | |
4187 | + bP = true; | |
4188 | + break; | |
4189 | + case 0xE6: | |
4190 | + bR = true; | |
4191 | + bB = true; | |
4192 | + bY = true; | |
4193 | + bP = true; | |
4194 | + break; | |
4195 | + case 0xE7: | |
4196 | + bR = true; | |
4197 | + bG = true; | |
4198 | + bY = true; | |
4199 | + bP = true; | |
4200 | + break; | |
4201 | + case 0xE8: | |
4202 | + bR = true; | |
4203 | + bG = true; | |
4204 | + bB = true; | |
4205 | + bY = true; | |
4206 | + bP = true; | |
4207 | + break; | |
4208 | + } | |
4209 | + } | |
4210 | + | |
4211 | + // その他 | |
4212 | + | |
4213 | + #region [ private ] | |
4214 | + //----------------- | |
4215 | + /// <summary> | |
4216 | + /// <para>GDAチャンネル番号に対応するDTXチャンネル番号。</para> | |
4217 | + /// </summary> | |
4218 | + [StructLayout( LayoutKind.Sequential )] | |
3881 | 4219 | private struct STGDAPARAM |
3882 | 4220 | { |
3883 | 4221 | public string strGDAのチャンネル文字列; |
@@ -5929,23 +6267,23 @@ namespace DTXMania | ||
5929 | 6267 | //----------------- |
5930 | 6268 | #endregion |
5931 | 6269 | } |
5932 | - //----------------- | |
5933 | - #endregion | |
5934 | - #region [ 取得したチャンネル番号で、this.bチップがある に該当したり、this.bMovieをFullscreen再生する の条件を満足するなら、設定する。] | |
5935 | - //----------------- | |
5936 | - if( ( nチャンネル番号 >= 0x11 ) && ( nチャンネル番号 <= 0x1a ) ) | |
5937 | - { | |
5938 | - this.bチップがある.Drums = true; | |
5939 | - } | |
5940 | - else if( ( nチャンネル番号 >= 0x20 ) && ( nチャンネル番号 <= 0x27 ) ) | |
5941 | - { | |
5942 | - this.bチップがある.Guitar = true; | |
5943 | - } | |
5944 | - else if( ( nチャンネル番号 >= 0xA0 ) && ( nチャンネル番号 <= 0xa7 ) ) | |
5945 | - { | |
5946 | - this.bチップがある.Bass = true; | |
5947 | - } | |
5948 | - else if ( ( nチャンネル番号 == 0x04 ) || ( nチャンネル番号 == 0x07 ) || | |
6270 | + //----------------- | |
6271 | + #endregion | |
6272 | + #region [ 取得したチャンネル番号で、this.bチップがある に該当したり、this.bMovieをFullscreen再生する の条件を満足するなら、設定する。] | |
6273 | + //----------------- | |
6274 | + if( ( nチャンネル番号 >= 0x11 ) && ( nチャンネル番号 <= 0x1c ) ) | |
6275 | + { | |
6276 | + this.bチップがある.Drums = true; | |
6277 | + } | |
6278 | + else if( ( nチャンネル番号 >= 0x20 ) && ( nチャンネル番号 <= 0x27 ) || ( nチャンネル番号 >= 0x93 ) && ( nチャンネル番号 <= 0x9F ) || ( nチャンネル番号 >= 0xAA ) && ( nチャンネル番号 <= 0xAF ) || ( nチャンネル番号 >= 0xD0 ) && ( nチャンネル番号 <= 0xD3 ) ) | |
6279 | + { | |
6280 | + this.bチップがある.Guitar = true; | |
6281 | + } | |
6282 | + else if( ( nチャンネル番号 >= 0xA0 ) && ( nチャンネル番号 <= 0xa7 ) || ( nチャンネル番号 == 0xC5 ) || ( nチャンネル番号 == 0xC6 ) || ( nチャンネル番号 >= 0xC8 ) && ( nチャンネル番号 <= 0xCF ) || ( nチャンネル番号 >= 0xDA ) && ( nチャンネル番号 <= 0xDF ) || ( nチャンネル番号 >= 0xE1 ) && ( nチャンネル番号 <= 0xE8 ) ) | |
6283 | + { | |
6284 | + this.bチップがある.Bass = true; | |
6285 | + } | |
6286 | + else if ( ( nチャンネル番号 == 0x04 ) || ( nチャンネル番号 == 0x07 ) || | |
5949 | 6287 | ( ( 0x55 <= nチャンネル番号 ) && ( nチャンネル番号 <= 0x59 ) ) || ( nチャンネル番号 == 0x60 ) ) |
5950 | 6288 | { |
5951 | 6289 | this.bチップがある.BGA = true; |
@@ -5994,10 +6332,64 @@ namespace DTXMania | ||
5994 | 6332 | this.bチップがある.OpenGuitar = true; |
5995 | 6333 | break; |
5996 | 6334 | |
5997 | - case 0xA0: | |
5998 | - this.bチップがある.OpenBass = true; | |
5999 | - break; | |
6000 | - } | |
6335 | + case 0x93: | |
6336 | + case 0x94: | |
6337 | + case 0x95: | |
6338 | + case 0x96: | |
6339 | + case 0x97: | |
6340 | + case 0x98: | |
6341 | + case 0x99: | |
6342 | + case 0x9A: | |
6343 | + case 0x9B: | |
6344 | + case 0x9C: | |
6345 | + case 0x9D: | |
6346 | + case 0x9E: | |
6347 | + case 0x9F: | |
6348 | + case 0xA9: | |
6349 | + case 0xAA: | |
6350 | + case 0xAB: | |
6351 | + case 0xAC: | |
6352 | + case 0xAD: | |
6353 | + case 0xAE: | |
6354 | + case 0xAF: | |
6355 | + case 0xD0: | |
6356 | + case 0xD1: | |
6357 | + case 0xD2: | |
6358 | + case 0xD3: | |
6359 | + this.bチップがある.YPGuitar = true; | |
6360 | + break; | |
6361 | + | |
6362 | + case 0xC5: | |
6363 | + case 0xC6: | |
6364 | + case 0xC8: | |
6365 | + case 0xC9: | |
6366 | + case 0xCA: | |
6367 | + case 0xCB: | |
6368 | + case 0xCC: | |
6369 | + case 0xCD: | |
6370 | + case 0xCE: | |
6371 | + case 0xCF: | |
6372 | + case 0xDA: | |
6373 | + case 0xDB: | |
6374 | + case 0xDC: | |
6375 | + case 0xDD: | |
6376 | + case 0xDE: | |
6377 | + case 0xDF: | |
6378 | + case 0xE1: | |
6379 | + case 0xE2: | |
6380 | + case 0xE3: | |
6381 | + case 0xE4: | |
6382 | + case 0xE5: | |
6383 | + case 0xE6: | |
6384 | + case 0xE7: | |
6385 | + case 0xE8: | |
6386 | + this.bチップがある.YPBass = true; | |
6387 | + break; | |
6388 | + | |
6389 | + case 0xA0: | |
6390 | + this.bチップがある.OpenBass = true; | |
6391 | + break; | |
6392 | + } | |
6001 | 6393 | //----------------- |
6002 | 6394 | #endregion |
6003 | 6395 |
@@ -6103,26 +6495,26 @@ namespace DTXMania | ||
6103 | 6495 | chip.n整数値 = nオブジェクト数値; |
6104 | 6496 | chip.n整数値_内部番号 = nオブジェクト数値; |
6105 | 6497 | |
6106 | - #region [ chip.e楽器パート = ... ] | |
6107 | - //----------------- | |
6108 | - if( ( nチャンネル番号 >= 0x11 ) && ( nチャンネル番号 <= 0x1C ) ) | |
6109 | - { | |
6110 | - chip.e楽器パート = E楽器パート.DRUMS; | |
6111 | - } | |
6112 | - if( ( nチャンネル番号 >= 0x20 ) && ( nチャンネル番号 <= 0x27 ) ) | |
6113 | - { | |
6114 | - chip.e楽器パート = E楽器パート.GUITAR; | |
6115 | - } | |
6116 | - if( ( nチャンネル番号 >= 160 ) && ( nチャンネル番号 <= 0xA7 ) ) | |
6117 | - { | |
6118 | - chip.e楽器パート = E楽器パート.BASS; | |
6119 | - } | |
6120 | - //----------------- | |
6121 | - #endregion | |
6498 | + #region [ chip.e楽器パート = ... ] | |
6499 | + //----------------- | |
6500 | + if( ( nチャンネル番号 >= 0x11 ) && ( nチャンネル番号 <= 0x1C ) ) | |
6501 | + { | |
6502 | + chip.e楽器パート = E楽器パート.DRUMS; | |
6503 | + } | |
6504 | + if( ( nチャンネル番号 >= 0x20 && nチャンネル番号 <= 0x27 ) || ( nチャンネル番号 >= 0x93 && nチャンネル番号 <= 0x9F ) || ( nチャンネル番号 >= 0xA9 && nチャンネル番号 <= 0xAF ) || ( nチャンネル番号 >= 0xD0 && nチャンネル番号 <= 0xD3 ) || ( nチャンネル番号 == 0x2A ) ) | |
6505 | + { | |
6506 | + chip.e楽器パート = E楽器パート.GUITAR; | |
6507 | + } | |
6508 | + if( ( nチャンネル番号 >= 0xA0 && nチャンネル番号 <= 0xA7 ) || ( nチャンネル番号 == 0xC5 ) || ( nチャンネル番号 == 0xC6 ) || ( nチャンネル番号 >= 0xC8 && nチャンネル番号 <= 0xCF ) || ( nチャンネル番号 >= 0xDA && nチャンネル番号 <= 0xDF ) || ( nチャンネル番号 >= 0xE1 && nチャンネル番号 <= 0xE8 ) ) | |
6509 | + { | |
6510 | + chip.e楽器パート = E楽器パート.BASS; | |
6511 | + } | |
6512 | + //----------------- | |
6513 | + #endregion | |
6122 | 6514 | |
6123 | - // #34029 2014.7.15 yyagi | |
6124 | - #region [ ドラムの空打ち音だったら、フラグを立てたうえで、通常チップのチャンネル番号に変更。ギターベースの空打ち音はとりあえずフラグを立てるだけ。 ] | |
6125 | - if ( 0xB1 <= nチャンネル番号 && nチャンネル番号 <= 0xB9 ) | |
6515 | + // #34029 2014.7.15 yyagi | |
6516 | + #region [ ドラムの空打ち音だったら、フラグを立てたうえで、通常チップのチャンネル番号に変更。ギターベースの空打ち音はとりあえずフラグを立てるだけ。 ] | |
6517 | + if ( 0xB1 <= nチャンネル番号 && nチャンネル番号 <= 0xB9 ) | |
6126 | 6518 | { |
6127 | 6519 | chip.b空打ちチップである = true; |
6128 | 6520 | nチャンネル番号 = nチャンネル番号 - 0xB0 + 0x10; |
@@ -744,6 +744,15 @@ namespace DTXMania | ||
744 | 744 | "Toggle LaneFlush"); |
745 | 745 | this.list項目リスト.Add(this.iDrumsLaneFlush); |
746 | 746 | |
747 | + if( !CDTXMania.bXGRelease ) | |
748 | + { | |
749 | + this.iDrumsMatixxFrameDisp = new CItemToggle( "FrameDisp", CDTXMania.ConfigIni.bフレームを表示する, | |
750 | + "フレームの表示 / 非表示を\n" + | |
751 | + "切り替えます。", | |
752 | + "Toggle FrameDisp" ); | |
753 | + this.list項目リスト.Add( this.iDrumsMatixxFrameDisp ); | |
754 | + } | |
755 | + | |
747 | 756 | this.iDrumsReverse = new CItemToggle( "Reverse", CDTXMania.ConfigIni.bReverse.Drums, |
748 | 757 | "ドラムチップが譜面の下から上に流れるようになります。", |
749 | 758 | "The scroll way is reversed. Drums chips flow from the bottom to the top." ); |
@@ -3134,6 +3143,7 @@ namespace DTXMania | ||
3134 | 3143 | private CItemBase iSystemReloadDTX; // #32081 2013.10.21 yyagi |
3135 | 3144 | private CItemInteger iSystemMasterVolume; // #33700 2014.4.26 yyagi |
3136 | 3145 | private CItemInteger iDrumsPedalJudgeRangeDelta; // #39397 2019.07.19 kairera0467 |
3146 | + private CItemToggle iDrumsMatixxFrameDisp; // 2019.09.07 kairera0467 | |
3137 | 3147 | |
3138 | 3148 | protected int t前の項目( int nItem ) |
3139 | 3149 | { |
@@ -3360,6 +3370,16 @@ namespace DTXMania | ||
3360 | 3370 | CDTXMania.ConfigIni.eNumOfLanes.Drums = (Eタイプ)this.iDrumsNumOfLanes.n現在選択されている項目番号; |
3361 | 3371 | |
3362 | 3372 | CDTXMania.ConfigIni.nPedalJudgeRangeDelta = this.iDrumsPedalJudgeRangeDelta.n現在の値; |
3373 | + | |
3374 | + // 2019.9.7 kairera0467 試験的に設置。XGまたはmatixxで設定項目を制限するテスト。そのうちメソッドごとに分離するかもしれない。 | |
3375 | + if( CDTXMania.bXGRelease ) | |
3376 | + { | |
3377 | + | |
3378 | + } | |
3379 | + else | |
3380 | + { | |
3381 | + CDTXMania.ConfigIni.bフレームを表示する = this.iDrumsMatixxFrameDisp.bON; | |
3382 | + } | |
3363 | 3383 | } |
3364 | 3384 | private void tConfigIniへ記録する_Guitar() |
3365 | 3385 | { |
@@ -780,6 +780,9 @@ namespace DTXMania | ||
780 | 780 | public string strDTXフォルダのパス; |
781 | 781 | public string strPreimageのパス; |
782 | 782 | public Cスコア.ST譜面情報 ar譜面情報; |
783 | + public STDGBVALUE<double>[] db達成率_難易度毎; | |
784 | + public STDGBVALUE<int> nランク_難易度毎; | |
785 | + public STDGBVALUE<bool> bフルコンボ_難易度毎; | |
783 | 786 | } |
784 | 787 | |
785 | 788 | public struct ST選曲バー |
@@ -95,7 +95,7 @@ namespace DTXMania | ||
95 | 95 | |
96 | 96 | this.act曲リスト.On進行描画(); |
97 | 97 | int y = 0; |
98 | - if( this.ct登場時アニメ用共通.b進行中 ) | |
98 | + if( this.ct登場時アニメ用共通.b進行中 && this.tx上部パネル != null ) | |
99 | 99 | { |
100 | 100 | double db登場割合 = ( (double) this.ct登場時アニメ用共通.n現在の値 ) / 100.0; // 100が最終値 |
101 | 101 | double dbY表示割合 = Math.Sin( Math.PI / 2 * db登場割合 ); |
@@ -349,7 +349,7 @@ namespace DTXMania | ||
349 | 349 | float fResizeRatio = 1.0f; |
350 | 350 | if( CDTXMania.ConfigIni.bDrums有効 ) |
351 | 351 | { |
352 | - if( CDTXMania.ConfigIni.bGraph.Drums ) | |
352 | + if( !CDTXMania.ConfigIni.bドラムが全部オートプレイである && CDTXMania.ConfigIni.bGraph.Drums ) | |
353 | 353 | { |
354 | 354 | nClipPos = new int[] { 2, 402, 0, 0 }; |
355 | 355 | nPanelPos = new int[] { 2, 402, 0, 0 }; |
@@ -529,7 +529,7 @@ namespace DTXMania | ||
529 | 529 | |
530 | 530 | if( CDTXMania.ConfigIni.bDrums有効 ) |
531 | 531 | { |
532 | - if( CDTXMania.ConfigIni.bGraph.Drums ) | |
532 | + if( !CDTXMania.ConfigIni.bドラムが全部オートプレイである && CDTXMania.ConfigIni.bGraph.Drums ) | |
533 | 533 | this.txクリップパネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_ClipPanelB.png" ) ); |
534 | 534 | else |
535 | 535 | this.txクリップパネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_ClipPanel.png" ) ); |
@@ -2268,7 +2268,9 @@ namespace DTXMania | ||
2268 | 2268 | |
2269 | 2269 | protected void t進行描画_ゲージ() |
2270 | 2270 | { |
2271 | - if ( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) ) && ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) ) | |
2271 | + if ( ( ( CDTXMania.ConfigIni.eDark != Eダークモード.HALF ) && ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL ) && | |
2272 | + ( !CDTXMania.bXGRelease ? CDTXMania.ConfigIni.bフレームを表示する : true ) ) && | |
2273 | + ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) ) | |
2272 | 2274 | { |
2273 | 2275 | this.actGauge.On進行描画(); |
2274 | 2276 | } |
@@ -176,6 +176,11 @@ namespace DTXMania | ||
176 | 176 | this.tx判定数数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Ratenumber_s.png" ) ); |
177 | 177 | this.tx達成率数字_整数 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Ratenumber_l.png" ) ); |
178 | 178 | |
179 | + // 難易度ラベル/パート表記 | |
180 | + // TODO:パート表記のフォントが3D描画の都合で汚くなってしまう。ここでテクスチャを合成したほうがよさそうかも... | |
181 | + this.tx難易度ラベル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Difficulty.png" ) ); | |
182 | + this.txパート = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Part.png" ) ); | |
183 | + | |
179 | 184 | CDTXMania.t安全にDisposeする( ref bmpCardName ); |
180 | 185 | |
181 | 186 | base.OnManagedリソースの作成(); |
@@ -198,11 +203,14 @@ namespace DTXMania | ||
198 | 203 | CDTXMania.tテクスチャの解放( ref this.txJacket ); |
199 | 204 | CDTXMania.tテクスチャの解放( ref this.txスキルパネル ); |
200 | 205 | |
201 | - CDTXMania.tテクスチャの解放( ref this.tx達成率数字_整数 ); | |
202 | 206 | CDTXMania.tテクスチャの解放( ref this.tx判定数数字 ); |
207 | + CDTXMania.tテクスチャの解放( ref this.tx達成率数字_整数 ); | |
203 | 208 | |
204 | 209 | CDTXMania.tテクスチャの解放( ref this.txPlayerName ); |
205 | 210 | |
211 | + CDTXMania.tテクスチャの解放( ref this.tx難易度ラベル ); | |
212 | + CDTXMania.tテクスチャの解放( ref this.txパート ); | |
213 | + | |
206 | 214 | base.OnManagedリソースの解放(); |
207 | 215 | } |
208 | 216 | } |
@@ -215,14 +223,15 @@ namespace DTXMania | ||
215 | 223 | // return 0; |
216 | 224 | if( this.b初めての進行描画 ) |
217 | 225 | { |
218 | - //fX = -465; | |
219 | - //fY = -25; | |
220 | - //fZ = 0; | |
221 | - //rot = -38; | |
222 | - //fScaleX = 0.6f; | |
223 | - //fScaleY = 1f; | |
224 | - //offset = 0; | |
225 | - | |
226 | +#if DEBUG | |
227 | + fX = -465; | |
228 | + fY = -25; | |
229 | + fZ = 0; | |
230 | + rot = -38; | |
231 | + fScaleX = 0.6f; | |
232 | + fScaleY = 1f; | |
233 | + offset = 0; | |
234 | +#endif | |
226 | 235 | this.b初めての進行描画 = false; |
227 | 236 | } |
228 | 237 | //if ( CDTXMania.ConfigIni.bShowMusicInfo ) |
@@ -247,118 +256,130 @@ namespace DTXMania | ||
247 | 256 | this.txPlayerName.t3D描画( CDTXMania.app.Device, matPlayerName ); |
248 | 257 | } |
249 | 258 | |
250 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F1 ) ) | |
251 | - //{ | |
252 | - // fX--; | |
253 | - //} | |
254 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F2 ) ) | |
255 | - //{ | |
256 | - // fX++; | |
257 | - //} | |
258 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F3 ) ) | |
259 | - //{ | |
260 | - // fY--; | |
261 | - //} | |
262 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F4 ) ) | |
263 | - //{ | |
264 | - // fY++; | |
265 | - //} | |
266 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F6 ) ) | |
267 | - //{ | |
268 | - // rot--; | |
269 | - //} | |
270 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F7 ) ) | |
271 | - //{ | |
272 | - // rot++; | |
273 | - //} | |
274 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F8 ) ) | |
275 | - //{ | |
276 | - // fScaleX -= 0.01f; | |
277 | - //} | |
278 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F9 ) ) | |
279 | - //{ | |
280 | - // fScaleX += 0.01f; | |
281 | - //} | |
282 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F10 ) ) | |
283 | - //{ | |
284 | - // fScaleX -= 0.1f; | |
285 | - //} | |
286 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F11 ) ) | |
287 | - //{ | |
288 | - // fScaleX += 0.1f; | |
289 | - //} | |
290 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D1 ) ) | |
291 | - //{ | |
292 | - // fScaleY -= 0.01f; | |
293 | - //} | |
294 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D2 ) ) | |
295 | - //{ | |
296 | - // fScaleY += 0.01f; | |
297 | - //} | |
298 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D3 ) ) | |
299 | - //{ | |
300 | - // fScaleY -= 0.1f; | |
301 | - //} | |
302 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D4 ) ) | |
303 | - //{ | |
304 | - // fScaleY += 0.1f; | |
305 | - //} | |
306 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D5 ) ) | |
307 | - //{ | |
308 | - // fOffsetX--; | |
309 | - //} | |
310 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D6 ) ) | |
311 | - //{ | |
312 | - // fOffsetX++; | |
313 | - //} | |
314 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D7 ) ) | |
315 | - //{ | |
316 | - // fX -= 10; | |
317 | - //} | |
318 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D8 ) ) | |
319 | - //{ | |
320 | - // fX += 10; | |
321 | - //} | |
322 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D9 ) ) | |
323 | - //{ | |
324 | - // fY -= 10; | |
325 | - //} | |
326 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D0 ) ) | |
327 | - //{ | |
328 | - // fY += 10; | |
329 | - //} | |
330 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.Q ) ) | |
331 | - //{ | |
332 | - // fZ -= 1; | |
333 | - //} | |
334 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.W ) ) | |
335 | - //{ | |
336 | - // fZ += 1; | |
337 | - //} | |
338 | - //if ( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.E ) ) | |
339 | - //{ | |
340 | - // fZ -= 10; | |
341 | - //} | |
342 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.R ) ) | |
343 | - //{ | |
344 | - // fZ += 10; | |
345 | - //} | |
346 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.T ) ) | |
347 | - //{ | |
348 | - // fOffsetY--; | |
349 | - //} | |
350 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.Y ) ) | |
351 | - //{ | |
352 | - // fOffsetY++; | |
353 | - //} | |
354 | - //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.U ) ) | |
355 | - //{ | |
356 | - // fOffsetZ--; | |
357 | - //} | |
358 | - //if(CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.I )) | |
359 | - //{ | |
360 | - // fOffsetZ++; | |
361 | - //} | |
259 | +#if DEBUG | |
260 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F1 ) ) | |
261 | + { | |
262 | + fX--; | |
263 | + } | |
264 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F2 ) ) | |
265 | + { | |
266 | + fX++; | |
267 | + } | |
268 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F3 ) ) | |
269 | + { | |
270 | + fY--; | |
271 | + } | |
272 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F4 ) ) | |
273 | + { | |
274 | + fY++; | |
275 | + } | |
276 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F6 ) ) | |
277 | + { | |
278 | + rot--; | |
279 | + } | |
280 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F7 ) ) | |
281 | + { | |
282 | + rot++; | |
283 | + } | |
284 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F8 ) ) | |
285 | + { | |
286 | + fScaleX -= 0.01f; | |
287 | + } | |
288 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F9 ) ) | |
289 | + { | |
290 | + fScaleX += 0.01f; | |
291 | + } | |
292 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F10 ) ) | |
293 | + { | |
294 | + fScaleX -= 0.1f; | |
295 | + } | |
296 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F11 ) ) | |
297 | + { | |
298 | + fScaleX += 0.1f; | |
299 | + } | |
300 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D1 ) ) | |
301 | + { | |
302 | + fScaleY -= 0.01f; | |
303 | + } | |
304 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D2 ) ) | |
305 | + { | |
306 | + fScaleY += 0.01f; | |
307 | + } | |
308 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D3 ) ) | |
309 | + { | |
310 | + fScaleY -= 0.1f; | |
311 | + } | |
312 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D4 ) ) | |
313 | + { | |
314 | + fScaleY += 0.1f; | |
315 | + } | |
316 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D5 ) ) | |
317 | + { | |
318 | + fOffsetX--; | |
319 | + } | |
320 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D6 ) ) | |
321 | + { | |
322 | + fOffsetX++; | |
323 | + } | |
324 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D7 ) ) | |
325 | + { | |
326 | + fX -= 10; | |
327 | + } | |
328 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D8 ) ) | |
329 | + { | |
330 | + fX += 10; | |
331 | + } | |
332 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D9 ) ) | |
333 | + { | |
334 | + fY -= 10; | |
335 | + } | |
336 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D0 ) ) | |
337 | + { | |
338 | + fY += 10; | |
339 | + } | |
340 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.Q ) ) | |
341 | + { | |
342 | + fZ -= 1; | |
343 | + } | |
344 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.W ) ) | |
345 | + { | |
346 | + fZ += 1; | |
347 | + } | |
348 | + if ( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.E ) ) | |
349 | + { | |
350 | + fZ -= 10; | |
351 | + } | |
352 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.R ) ) | |
353 | + { | |
354 | + fZ += 10; | |
355 | + } | |
356 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.T ) ) | |
357 | + { | |
358 | + fOffsetY--; | |
359 | + } | |
360 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.Y ) ) | |
361 | + { | |
362 | + fOffsetY++; | |
363 | + } | |
364 | + if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.U ) ) | |
365 | + { | |
366 | + fOffsetZ--; | |
367 | + } | |
368 | + if(CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.I )) | |
369 | + { | |
370 | + fOffsetZ++; | |
371 | + } | |
372 | + | |
373 | + CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, "RotY:" + rot.ToString() ); | |
374 | + CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.白, "PanelX:" + fX.ToString() ); | |
375 | + CDTXMania.act文字コンソール.tPrint( 0, 32, C文字コンソール.Eフォント種別.白, "PanelY:" + fY.ToString() ); | |
376 | + CDTXMania.act文字コンソール.tPrint( 0, 48, C文字コンソール.Eフォント種別.白, "PanelZ:" + fZ.ToString() ); | |
377 | + CDTXMania.act文字コンソール.tPrint( 0, 64, C文字コンソール.Eフォント種別.白, "ScaleX:" + fScaleX.ToString() ); | |
378 | + CDTXMania.act文字コンソール.tPrint( 0, 80, C文字コンソール.Eフォント種別.白, "ScaleY:" + fScaleY.ToString() ); | |
379 | + CDTXMania.act文字コンソール.tPrint( 0, 96, C文字コンソール.Eフォント種別.白, "OffsetX:" + fOffsetX.ToString() ); | |
380 | + CDTXMania.act文字コンソール.tPrint( 0, 112, C文字コンソール.Eフォント種別.白, "OffsetY:" + fOffsetY.ToString() ); | |
381 | + CDTXMania.act文字コンソール.tPrint( 0, 128, C文字コンソール.Eフォント種別.白, "OffsetZ:" + fOffsetZ.ToString() ); | |
382 | +#endif | |
362 | 383 | |
363 | 384 | #region[ ステータスパネルの文字 ] |
364 | 385 | if( this.tx判定数数字 != null ) |
@@ -408,17 +429,9 @@ namespace DTXMania | ||
408 | 429 | this.t判定率文字描画( -435, -13, nowtotal == 0 ? " 0%" : string.Format("{0,3:##0}%", (CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Miss / (float)nowtotal) * 100.0f ) ); |
409 | 430 | this.t判定率文字描画( -435, -43, nowtotal == 0 ? " 0%" : string.Format("{0,3:##0}%", (CDTXMania.stage演奏ドラム画面GITADORA.actCombo.n現在のコンボ数.Drums最高値 / (float)nowtotal) * 100.0f ) ); |
410 | 431 | } |
411 | - #endregion | |
432 | +#endregion | |
433 | + | |
412 | 434 | |
413 | - //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, "RotY:" + rot.ToString() ); | |
414 | - //CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.白, "PanelX:" + fX.ToString() ); | |
415 | - //CDTXMania.act文字コンソール.tPrint( 0, 32, C文字コンソール.Eフォント種別.白, "PanelY:" + fY.ToString() ); | |
416 | - //CDTXMania.act文字コンソール.tPrint( 0, 48, C文字コンソール.Eフォント種別.白, "PanelZ:" + fZ.ToString() ); | |
417 | - //CDTXMania.act文字コンソール.tPrint( 0, 64, C文字コンソール.Eフォント種別.白, "ScaleX:" + fScaleX.ToString() ); | |
418 | - //CDTXMania.act文字コンソール.tPrint( 0, 80, C文字コンソール.Eフォント種別.白, "ScaleY:" + fScaleY.ToString() ); | |
419 | - //CDTXMania.act文字コンソール.tPrint( 0, 96, C文字コンソール.Eフォント種別.白, "OffsetX:" + fOffsetX.ToString() ); | |
420 | - //CDTXMania.act文字コンソール.tPrint( 0, 112, C文字コンソール.Eフォント種別.白, "OffsetY:" + fOffsetY.ToString() ); | |
421 | - //CDTXMania.act文字コンソール.tPrint( 0, 128, C文字コンソール.Eフォント種別.白, "OffsetZ:" + fOffsetZ.ToString() ); | |
422 | 435 | |
423 | 436 | if ( this.txSongNamePlate != null ) |
424 | 437 | { |
@@ -438,87 +451,97 @@ namespace DTXMania | ||
438 | 451 | } |
439 | 452 | } |
440 | 453 | |
441 | - | |
442 | - #region[ HSアイコン ] | |
443 | - //ハイスピはここで描画させる。 | |
444 | - if( this.nCurrentDrumspeed != CDTXMania.ConfigIni.n譜面スクロール速度.Drums && this.iDrumspeed != null ) | |
454 | + #region[ 難易度ラベル ] | |
455 | + if( this.txパート != null && this.tx難易度ラベル != null ) | |
445 | 456 | { |
446 | - Graphics gNamePlate = Graphics.FromImage( this.bNamePlate ); | |
447 | - this.nCurrentDrumspeed = CDTXMania.ConfigIni.n譜面スクロール速度.Drums; | |
448 | - if( CDTXMania.ConfigIni.eNamePlateType == Eタイプ.A ) | |
449 | - { | |
450 | - gNamePlate.DrawImage( this.iDrumspeed, new Rectangle( 209, 156, 42, 48 ), new Rectangle( 0, ( ( this.nCurrentDrumspeed > 15 ) ? 15 : this.nCurrentDrumspeed ) * 0x30, 0x2a, 0x30 ), GraphicsUnit.Pixel ); | |
451 | - } | |
452 | - else if(CDTXMania.ConfigIni.eNamePlateType == Eタイプ.B) | |
453 | - { | |
454 | - gNamePlate.DrawImage( this.iDrumspeed, new Rectangle( 210, 141, 42, 48 ), new Rectangle( 0, ( ( this.nCurrentDrumspeed > 15 ) ? 15 : this.nCurrentDrumspeed ) * 0x30, 0x2a, 0x30 ), GraphicsUnit.Pixel ); | |
455 | - } | |
456 | - gNamePlate.Dispose(); | |
457 | - this.txNamePlate.Dispose(); | |
458 | - this.txNamePlate = new CTexture( CDTXMania.app.Device, this.bNamePlate, CDTXMania.TextureFormat, false ); | |
457 | + Matrix matPart = Matrix.Identity; | |
458 | + matPart *= Matrix.Scaling( 0.6f, 1, 1 ); | |
459 | + matPart *= Matrix.RotationY( C変換.DegreeToRadian( -38 ) ); | |
460 | + matPart *= Matrix.Translation( -528, -110, 0 ); | |
461 | + this.tx難易度ラベル.t3D描画( CDTXMania.app.Device, matPart, new Rectangle( 0, 68 * CDTXMania.stage選曲GITADORA.n確定された曲の難易度, 68, 68 ) ); | |
462 | + this.txパート.t3D描画( CDTXMania.app.Device, matPart, new Rectangle( 0, 0, 68, 68 ) ); // DrumsだけなのでRectangle.Xは0で固定 | |
459 | 463 | } |
460 | 464 | #endregion |
465 | + #region[ HSアイコン ] | |
466 | + //ハイスピはここで描画させる。 | |
467 | + if( this.nCurrentDrumspeed != CDTXMania.ConfigIni.n譜面スクロール速度.Drums && this.iDrumspeed != null ) | |
468 | + { | |
469 | + Graphics gNamePlate = Graphics.FromImage( this.bNamePlate ); | |
470 | + this.nCurrentDrumspeed = CDTXMania.ConfigIni.n譜面スクロール速度.Drums; | |
471 | + if( CDTXMania.ConfigIni.eNamePlateType == Eタイプ.A ) | |
472 | + { | |
473 | + gNamePlate.DrawImage( this.iDrumspeed, new Rectangle( 209, 156, 42, 48 ), new Rectangle( 0, ( ( this.nCurrentDrumspeed > 15 ) ? 15 : this.nCurrentDrumspeed ) * 0x30, 0x2a, 0x30 ), GraphicsUnit.Pixel ); | |
474 | + } | |
475 | + else if(CDTXMania.ConfigIni.eNamePlateType == Eタイプ.B) | |
476 | + { | |
477 | + gNamePlate.DrawImage( this.iDrumspeed, new Rectangle( 210, 141, 42, 48 ), new Rectangle( 0, ( ( this.nCurrentDrumspeed > 15 ) ? 15 : this.nCurrentDrumspeed ) * 0x30, 0x2a, 0x30 ), GraphicsUnit.Pixel ); | |
478 | + } | |
479 | + gNamePlate.Dispose(); | |
480 | + this.txNamePlate.Dispose(); | |
481 | + this.txNamePlate = new CTexture( CDTXMania.app.Device, this.bNamePlate, CDTXMania.TextureFormat, false ); | |
482 | + } | |
483 | + #endregion | |
461 | 484 | #region[ スコア表示 ] |
462 | - this.n表示スコア.Drums = (long)CDTXMania.stage演奏ドラム画面GITADORA.actScore.n現在表示中のスコア.Drums; | |
463 | - if( CDTXMania.ConfigIni.eSkillMode == ESkillType.DTXMania ) | |
464 | - { | |
465 | - //string str = this.n表示スコア.Drums.ToString("0000000000"); | |
466 | - //for (int i = 0; i < 10; i++) | |
467 | - //{ | |
468 | - // Rectangle rectangle; | |
469 | - // char ch = str[i]; | |
470 | - // if (ch.Equals(' ')) | |
471 | - // { | |
472 | - // rectangle = new Rectangle(0, 0, 32, 36); | |
473 | - // } | |
474 | - // else | |
475 | - // { | |
476 | - // int num3 = int.Parse(str.Substring(i, 1)); | |
477 | - // rectangle = new Rectangle((num3 * 36), 0, 36, 50); | |
478 | - // } | |
479 | - // if (this.txScore != null) | |
480 | - // { | |
481 | - // SlimDX.Matrix matScoreXG = SlimDX.Matrix.Identity; | |
482 | - // matScoreXG *= SlimDX.Matrix.Translation(-1370 + (i * 30), 50 + CDTXMania.stage演奏ドラム画面GITADORA.actScore.x位置[i].Drums, 0); | |
483 | - // matScoreXG *= SlimDX.Matrix.Scaling(0.3f, 0.62f, 1f); | |
484 | - // matScoreXG *= SlimDX.Matrix.RotationY(-0.8f); | |
485 | - // this.txScore.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle); | |
486 | - // } | |
487 | - //} | |
488 | - } | |
489 | - else if( CDTXMania.ConfigIni.eSkillMode == ESkillType.XG ) | |
490 | - { | |
491 | - // 2019.1.12 kairera0467 | |
492 | - // とりあえずXGスコア計算時のみ表示 | |
493 | - if( this.txScore != null ) | |
494 | - { | |
495 | - string str = string.Format("{0,7:######0}", this.n表示スコア.Drums); | |
496 | - for( int i = 0; i < 7; i++ ) | |
497 | - { | |
498 | - Rectangle rectangle; | |
499 | - char ch = str[i]; | |
500 | - if (ch.Equals(' ')) | |
501 | - { | |
502 | - rectangle = new Rectangle(0, 0, 0, 0); | |
503 | - } | |
504 | - else | |
505 | - { | |
506 | - int num3 = int.Parse(str.Substring(i, 1)); | |
507 | - rectangle = new Rectangle((num3 * 36), 0, 36, 50); | |
508 | - } | |
509 | - Matrix matScoreXG = Matrix.Identity; | |
510 | - matScoreXG *= Matrix.Scaling(0.6f, 1.1f, 1f); | |
511 | - matScoreXG *= Matrix.RotationY(C変換.DegreeToRadian(-40)); | |
512 | - matScoreXG *= Matrix.Translation(-522 + (i * 14), 237 + CDTXMania.stage演奏ドラム画面GITADORA.actScore.x位置[i].Drums, i * 14); | |
513 | - this.txScore.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle); | |
514 | - } | |
515 | - Matrix matScoreTxt = Matrix.Identity; | |
516 | - matScoreTxt *= Matrix.Scaling(0.6f, 1.5f, 1f); | |
517 | - matScoreTxt *= Matrix.RotationY(C変換.DegreeToRadian(-40)); | |
518 | - matScoreTxt *= Matrix.Translation(-494f, 282f, 0); | |
519 | - this.txScore.t3D描画(CDTXMania.app.Device, matScoreTxt, new Rectangle( 0, 50, 88, 28 )); | |
520 | - } | |
521 | - } | |
485 | + this.n表示スコア.Drums = (long)CDTXMania.stage演奏ドラム画面GITADORA.actScore.n現在表示中のスコア.Drums; | |
486 | + if( CDTXMania.ConfigIni.eSkillMode == ESkillType.DTXMania ) | |
487 | + { | |
488 | + //string str = this.n表示スコア.Drums.ToString("0000000000"); | |
489 | + //for (int i = 0; i < 10; i++) | |
490 | + //{ | |
491 | + // Rectangle rectangle; | |
492 | + // char ch = str[i]; | |
493 | + // if (ch.Equals(' ')) | |
494 | + // { | |
495 | + // rectangle = new Rectangle(0, 0, 32, 36); | |
496 | + // } | |
497 | + // else | |
498 | + // { | |
499 | + // int num3 = int.Parse(str.Substring(i, 1)); | |
500 | + // rectangle = new Rectangle((num3 * 36), 0, 36, 50); | |
501 | + // } | |
502 | + // if (this.txScore != null) | |
503 | + // { | |
504 | + // SlimDX.Matrix matScoreXG = SlimDX.Matrix.Identity; | |
505 | + // matScoreXG *= SlimDX.Matrix.Translation(-1370 + (i * 30), 50 + CDTXMania.stage演奏ドラム画面GITADORA.actScore.x位置[i].Drums, 0); | |
506 | + // matScoreXG *= SlimDX.Matrix.Scaling(0.3f, 0.62f, 1f); | |
507 | + // matScoreXG *= SlimDX.Matrix.RotationY(-0.8f); | |
508 | + // this.txScore.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle); | |
509 | + // } | |
510 | + //} | |
511 | + } | |
512 | + else if( CDTXMania.ConfigIni.eSkillMode == ESkillType.XG ) | |
513 | + { | |
514 | + // 2019.1.12 kairera0467 | |
515 | + // とりあえずXGスコア計算時のみ表示 | |
516 | + if( this.txScore != null ) | |
517 | + { | |
518 | + string str = string.Format("{0,7:######0}", this.n表示スコア.Drums); | |
519 | + for( int i = 0; i < 7; i++ ) | |
520 | + { | |
521 | + Rectangle rectangle; | |
522 | + char ch = str[i]; | |
523 | + if (ch.Equals(' ')) | |
524 | + { | |
525 | + rectangle = new Rectangle(0, 0, 0, 0); | |
526 | + } | |
527 | + else | |
528 | + { | |
529 | + int num3 = int.Parse(str.Substring(i, 1)); | |
530 | + rectangle = new Rectangle((num3 * 36), 0, 36, 50); | |
531 | + } | |
532 | + Matrix matScoreXG = Matrix.Identity; | |
533 | + matScoreXG *= Matrix.Scaling(0.6f, 1.1f, 1f); | |
534 | + matScoreXG *= Matrix.RotationY(C変換.DegreeToRadian(-40)); | |
535 | + matScoreXG *= Matrix.Translation(-522 + (i * 14), 237 + CDTXMania.stage演奏ドラム画面GITADORA.actScore.x位置[i].Drums, i * 14); | |
536 | + this.txScore.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle); | |
537 | + } | |
538 | + Matrix matScoreTxt = Matrix.Identity; | |
539 | + matScoreTxt *= Matrix.Scaling(0.6f, 1.5f, 1f); | |
540 | + matScoreTxt *= Matrix.RotationY(C変換.DegreeToRadian(-40)); | |
541 | + matScoreTxt *= Matrix.Translation(-494f, 282f, 0); | |
542 | + this.txScore.t3D描画(CDTXMania.app.Device, matScoreTxt, new Rectangle( 0, 50, 88, 28 )); | |
543 | + } | |
544 | + } | |
522 | 545 | #endregion |
523 | 546 | } |
524 | 547 | return 0; |
@@ -528,7 +551,7 @@ namespace DTXMania | ||
528 | 551 | |
529 | 552 | // その他 |
530 | 553 | |
531 | - #region [ private ] | |
554 | +#region [ private ] | |
532 | 555 | //----------------- |
533 | 556 | private Bitmap b4font; |
534 | 557 | private Bitmap bNamePlate; |
@@ -559,11 +582,15 @@ namespace DTXMania | ||
559 | 582 | private CTexture tx判定数数字; |
560 | 583 | private CTexture tx達成率数字_整数; |
561 | 584 | |
585 | + private CTexture tx難易度ラベル; | |
586 | + private CTexture txパート; | |
587 | + | |
562 | 588 | #if DEBUG |
563 | 589 | private float fX; |
564 | 590 | private float fY; |
565 | 591 | private float fZ; |
566 | 592 | private int rot; |
593 | + private int offset; | |
567 | 594 | private float fScaleX; |
568 | 595 | private float fScaleY; |
569 | 596 | private float fOffsetX; |
@@ -640,6 +667,6 @@ namespace DTXMania | ||
640 | 667 | this.tx判定数数字.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle); |
641 | 668 | } |
642 | 669 | } |
643 | - #endregion | |
670 | +#endregion | |
644 | 671 | } |
645 | 672 | } |
\ No newline at end of file |
@@ -228,13 +228,13 @@ namespace DTXMania | ||
228 | 228 | bIsFinishedPlaying = this.t進行描画_チップ(E楽器パート.DRUMS); |
229 | 229 | this.actShutter.On進行描画(); |
230 | 230 | this.t進行描画_ドラムパッド(); |
231 | - if( this.txフレーム != null ) this.txフレーム.t2D描画( CDTXMania.app.Device, 0, 0 ); | |
232 | - if( this.txフレーム外側 != null ) this.txフレーム外側.t2D描画( CDTXMania.app.Device, 0, 0 ); | |
231 | + if( this.txフレーム != null && CDTXMania.ConfigIni.bフレームを表示する ) this.txフレーム.t2D描画( CDTXMania.app.Device, 0, 0 ); | |
232 | + if( this.txフレーム外側 != null && CDTXMania.ConfigIni.bフレームを表示する ) this.txフレーム外側.t2D描画( CDTXMania.app.Device, 0, 0 ); | |
233 | 233 | this.t進行描画_ゲージ(); |
234 | 234 | |
235 | 235 | this.t進行描画_ステータスパネル(); |
236 | 236 | |
237 | - this.actClearBar.On進行描画(); | |
237 | + if( CDTXMania.ConfigIni.bフレームを表示する ) this.actClearBar.On進行描画(); | |
238 | 238 | this.actAVI.tウィンドウクリップを3D表示する(); |
239 | 239 | this.t進行描画_判定ライン(); |
240 | 240 |
@@ -2853,10 +2853,20 @@ namespace DTXMania | ||
2853 | 2853 | 演奏判定ライン座標.n判定ラインY座標( E楽器パート.DRUMS, false, CDTXMania.ConfigIni.bReverse.Drums ) + pChip.nバーからの距離dot.Drums : |
2854 | 2854 | 演奏判定ライン座標.n判定ラインY座標( E楽器パート.DRUMS, false, CDTXMania.ConfigIni.bReverse.Drums ) - pChip.nバーからの距離dot.Drums; |
2855 | 2855 | //x = (int) ( x * Scale.X ); |
2856 | - if ( this.txチップ != null ) | |
2857 | - { | |
2858 | - base.txチップ.vc拡大縮小倍率 = new Vector3( ( float )pChip.dbチップサイズ倍率, ( float )pChip.dbチップサイズ倍率, 1f ); | |
2859 | - } | |
2856 | + if( this.txチップ != null ) | |
2857 | + { | |
2858 | + // 19.9.10 kairera0467 | |
2859 | + //float fチップサイズ = 10.0f; | |
2860 | + //float nチップ縦幅px = 10.0f; | |
2861 | + //if( configIni.n譜面スクロール速度.Drums < C定数.nチップ幅テーブルDB.Length ) | |
2862 | + //{ | |
2863 | + // fチップサイズ = ( C定数.nチップ幅テーブルDB[ configIni.n譜面スクロール速度.Drums ] / nチップ縦幅px ); | |
2864 | + //} | |
2865 | + | |
2866 | + //base.txチップ.vc拡大縮小倍率 = new Vector3( (float)pChip.dbチップサイズ倍率, fチップサイズ, 1f ); | |
2867 | + | |
2868 | + base.txチップ.vc拡大縮小倍率 = new Vector3( (float)pChip.dbチップサイズ倍率, (float)pChip.dbチップサイズ倍率, 1f ); | |
2869 | + } | |
2860 | 2870 | int num9 = this.ctチップ模様アニメ.Drums.n現在の値; |
2861 | 2871 | |
2862 | 2872 | switch( pChip.nチャンネル番号 ) |
@@ -110,8 +110,9 @@ namespace DTXMania | ||
110 | 110 | Color clNameColorLower = Color.White; |
111 | 111 | switch( CDTXMania.ConfigIni.nNameColor[ 0 ] ) |
112 | 112 | { |
113 | - case 0: | |
113 | + default: | |
114 | 114 | clNameColor = Color.White; |
115 | + clNameColorLower = Color.White; | |
115 | 116 | break; |
116 | 117 | case 1: |
117 | 118 | clNameColor = Color.LightYellow; |
@@ -132,18 +133,18 @@ namespace DTXMania | ||
132 | 133 | clNameColor = Color.Red; |
133 | 134 | break; |
134 | 135 | case 7: |
135 | - clNameColor = Color.Brown; | |
136 | + clNameColor = Color.FromArgb( 255, 232, 182, 149 ); | |
137 | + clNameColorLower = Color.FromArgb( 255, 122, 69, 26 ); | |
136 | 138 | break; |
137 | 139 | case 8: |
138 | - clNameColor = Color.Silver; | |
140 | + clNameColor = Color.FromArgb( 246, 245, 255 ); | |
141 | + clNameColorLower = Color.FromArgb( 125, 128, 137 ); | |
139 | 142 | break; |
140 | 143 | case 9: |
141 | - clNameColor = Color.Gold; | |
144 | + clNameColor = Color.FromArgb( 255, 238, 196, 85 ); | |
145 | + clNameColorLower = Color.FromArgb( 255, 255, 241, 200 ); | |
142 | 146 | break; |
143 | 147 | |
144 | - case 10: | |
145 | - clNameColor = Color.White; | |
146 | - break; | |
147 | 148 | case 11: |
148 | 149 | clNameColor = Color.LightYellow; |
149 | 150 | clNameColorLower = Color.White; |
@@ -184,7 +185,7 @@ namespace DTXMania | ||
184 | 185 | |
185 | 186 | Bitmap bmpCardName = new Bitmap( 1, 1 ); |
186 | 187 | |
187 | - if (CDTXMania.ConfigIni.nNameColor.Drums >= 11) | |
188 | + if (CDTXMania.ConfigIni.nNameColor.Drums >= 7) | |
188 | 189 | { |
189 | 190 | bmpCardName = this.pfNameFont.DrawPrivateFont(this.strPlayerName, clNameColor, Color.Transparent, clNameColor, clNameColorLower); |
190 | 191 | } |
@@ -748,7 +748,7 @@ namespace DTXMania | ||
748 | 748 | |
749 | 749 | private void t進行描画_グラフ() |
750 | 750 | { |
751 | - if ( !CDTXMania.ConfigIni.bストイックモード && CDTXMania.ConfigIni.bGraph.Drums ) | |
751 | + if ( !CDTXMania.ConfigIni.bドラムが全部オートプレイである && CDTXMania.ConfigIni.bGraph.Drums ) | |
752 | 752 | { |
753 | 753 | this.actGraph.On進行描画(); |
754 | 754 | } |
@@ -97,6 +97,7 @@ namespace DTXMania | ||
97 | 97 | this.tx達成率数字_整数 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_Rate Number Big.png" ) ); |
98 | 98 | this.tx達成率数字_少数 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_Rate Number Small.png" ) ); |
99 | 99 | |
100 | + this.tx項目文字列 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_text.png" ) ); | |
100 | 101 | |
101 | 102 | #region[ 難易度、達成率、スキル値の下の白線の生成 ] |
102 | 103 | Bitmap b白線 = new Bitmap( 340, 2 ); |
@@ -131,6 +132,8 @@ namespace DTXMania | ||
131 | 132 | CDTXMania.tテクスチャの解放( ref this.tx達成率数字_整数 ); |
132 | 133 | CDTXMania.tテクスチャの解放( ref this.tx達成率数字_少数 ); |
133 | 134 | |
135 | + CDTXMania.tテクスチャの解放( ref this.tx項目文字列 ); | |
136 | + | |
134 | 137 | CDTXMania.tテクスチャの解放( ref this.tx白線 ); |
135 | 138 | base.OnManagedリソースの解放(); |
136 | 139 | } |
@@ -168,6 +171,11 @@ namespace DTXMania | ||
168 | 171 | //this.t特大文字表示( 1020, 370, string.Format("{0,6:##0.00}", CDTXMania.stage結果.st演奏記録[i].dbゲーム型スキル値)); |
169 | 172 | this.tスキル値の描画(976, 328, CDTXMania.stage結果.st演奏記録[ i ].dbゲーム型スキル値 ); |
170 | 173 | this.tx白線?.t2D描画( CDTXMania.app.Device, 842, 416 ); |
174 | + | |
175 | + // 各項目の文字 | |
176 | + this.tx項目文字列?.t2D描画( CDTXMania.app.Device, 847, 381, new Rectangle( 0, 0, 128, 32 ) ); | |
177 | + this.tx項目文字列?.t2D描画( CDTXMania.app.Device, 895, 254, new Rectangle( 0, 32, 96, 32 ) ); | |
178 | + this.tx項目文字列?.t2D描画( CDTXMania.app.Device, 917, 181, new Rectangle( 0, 64, 96, 32 ) ); | |
171 | 179 | } |
172 | 180 | } |
173 | 181 |
@@ -202,6 +210,7 @@ namespace DTXMania | ||
202 | 210 | CDTXMania.act文字コンソール.tPrint( 1054, 580, C文字コンソール.Eフォント種別.白, string.Format( "{0,3:##0}%", CDTXMania.stage結果.fMiss率.Drums ) ); |
203 | 211 | CDTXMania.act文字コンソール.tPrint( 1054, 604, C文字コンソール.Eフォント種別.白, string.Format( "{0,3:##0}%", (((float)CDTXMania.stage結果.st演奏記録.Drums.n最大コンボ数) / ((float)CDTXMania.stage結果.st演奏記録.Drums.n全チップ数)) * 100.0f ) ); |
204 | 212 | |
213 | + | |
205 | 214 | //string test = string.Format("{0,4:###0}", CDTXMania.stage結果.st演奏記録.Drums.nPerfect数); |
206 | 215 | if( !this.ct表示用.b終了値に達した ) |
207 | 216 | { |
@@ -258,6 +267,7 @@ namespace DTXMania | ||
258 | 267 | private CTexture tx達成率数字_整数; |
259 | 268 | private CTexture tx達成率数字_少数; |
260 | 269 | private CTexture tx白線; |
270 | + private CTexture tx項目文字列; | |
261 | 271 | |
262 | 272 | private ST文字位置[] st小文字位置 = new ST文字位置[]{ |
263 | 273 | new ST文字位置( '0', new Point( 0, 36 ) ), |
@@ -546,11 +556,12 @@ namespace DTXMania | ||
546 | 556 | // 1文字あたりのマージン |
547 | 557 | int n文字間隔_整数部 = 46; |
548 | 558 | int n文字間隔_小数部 = 32; |
559 | + bool b先頭処理中 = true; | |
549 | 560 | bool b整数部処理中 = true; |
550 | 561 | dbスキル値 = dbスキル値 * 100.0; |
551 | 562 | dbスキル値 = Math.Floor( dbスキル値 ); |
552 | 563 | dbスキル値 = dbスキル値 / 100.0; |
553 | - string formatText = string.Format( "{0,6:##0.00}", dbスキル値 ); | |
564 | + string formatText = string.Format( "{0,6:000.00}", dbスキル値 ); | |
554 | 565 | |
555 | 566 | for( int i = 0; i < formatText.Length; i++ ) |
556 | 567 | { |
@@ -564,6 +575,10 @@ namespace DTXMania | ||
564 | 575 | x += 18; |
565 | 576 | continue; |
566 | 577 | } |
578 | + else if( ( !c.Equals( '0' ) && b先頭処理中 ) || i == 2 ) | |
579 | + { | |
580 | + b先頭処理中 = false; | |
581 | + } | |
567 | 582 | else if( c.Equals( ' ' ) ) |
568 | 583 | { |
569 | 584 | // 空白ならなにもせずcontinue |
@@ -576,6 +591,7 @@ namespace DTXMania | ||
576 | 591 | { |
577 | 592 | if( b整数部処理中 ) |
578 | 593 | { |
594 | + this.txスキル数字_整数.n透明度 = b先頭処理中 ? 128 : 255; | |
579 | 595 | this.txスキル数字_整数.t2D描画( CDTXMania.app.Device, x, y, this.STスキル数字_整数[ j ].rect ); |
580 | 596 | x += n文字間隔_整数部; |
581 | 597 | } |
@@ -576,6 +576,7 @@ namespace DTXMania | ||
576 | 576 | public STDGBVALUE<Eランダムモード> eRandomPedal; |
577 | 577 | public STDGBVALUE<bool> bAssignToLBD; |
578 | 578 | public int nPedalJudgeRangeDelta; // #39397 2019.07.19 kairera0467 ペダルレーンの補正値(通常の判定範囲に加算) |
579 | + public bool bフレームを表示する; // 2019.09.07 kairera0467 フレーム表示をする(今の所matixxのみ) | |
579 | 580 | |
580 | 581 | #endregion |
581 | 582 | #region[ Ver.K 追加取得処理 ] |
@@ -1390,6 +1391,7 @@ namespace DTXMania | ||
1390 | 1391 | } |
1391 | 1392 | |
1392 | 1393 | this.nPedalJudgeRangeDelta = 20; |
1394 | + this.bフレームを表示する = true; | |
1393 | 1395 | #endregion |
1394 | 1396 | |
1395 | 1397 | //this.bNoMP3Streaming = false; |
@@ -1483,7 +1485,7 @@ namespace DTXMania | ||
1483 | 1485 | sw.WriteLine( "GroupNameBass={0}", this.strGroupName[ 2 ] ); |
1484 | 1486 | sw.WriteLine(); |
1485 | 1487 | sw.WriteLine( "; ネームカラー" ); |
1486 | - sw.WriteLine( "; 0=白, 1=薄黄色, 2=黄色, 3=緑, 4=青, 5=紫 以下略。" ); | |
1488 | + sw.WriteLine( "; 0=白, 1=薄黄色, 2=黄色, 3=緑, 4=青, 5=紫, 6=赤, 7=銅, 8=銀, 9=金, 11~16=各色のグラデーション" ); | |
1487 | 1489 | sw.WriteLine( "NameColorDrums={0}", this.nNameColor[ 0 ] ); |
1488 | 1490 | sw.WriteLine( "NameColorGuitar={0}", this.nNameColor[ 1 ] ); |
1489 | 1491 | sw.WriteLine( "NameColorBass={0}", this.nNameColor[ 2 ] ); |
@@ -2153,6 +2155,9 @@ namespace DTXMania | ||
2153 | 2155 | sw.WriteLine( "ShutterImageDrums={0}", this.strShutterImageName.Drums ); |
2154 | 2156 | sw.WriteLine( "ShutterImageGuitar={0}", this.strShutterImageName.Guitar ); |
2155 | 2157 | sw.WriteLine( "ShutterImageBass={0}", this.strShutterImageName.Bass ); |
2158 | + sw.WriteLine(); | |
2159 | + sw.WriteLine( "; フレームの表示(0:表示しない, 1:表示する)"); | |
2160 | + sw.WriteLine( "MatixxFrameDisp={0}", this.bフレームを表示する ? 1 : 0); | |
2156 | 2161 | |
2157 | 2162 | #endregion |
2158 | 2163 | sw.WriteLine( ";-------------------" ); |
@@ -3363,6 +3368,10 @@ namespace DTXMania | ||
3363 | 3368 | { |
3364 | 3369 | this.strShutterImageName.Bass = str4; |
3365 | 3370 | } |
3371 | + else if( str3.Equals( "MatixxFrameDisp" ) ) | |
3372 | + { | |
3373 | + this.bフレームを表示する = C変換.bONorOFF( str4[ 0 ] ); | |
3374 | + } | |
3366 | 3375 | continue; |
3367 | 3376 | } |
3368 | 3377 | //----------------------------- |
@@ -1075,4 +1075,50 @@ namespace DTXMania | ||
1075 | 1075 | strFilePathGB = ""; |
1076 | 1076 | } |
1077 | 1077 | } |
1078 | + | |
1079 | + public class CAttackEffectImage | |
1080 | + { | |
1081 | + public bool bFileFound; | |
1082 | + public string strName; | |
1083 | + public string strFilePathD; | |
1084 | + public string strFilePathGB; | |
1085 | + | |
1086 | + public CAttackEffectImage() | |
1087 | + { | |
1088 | + bFileFound = false; | |
1089 | + strName = ""; | |
1090 | + strFilePathD = ""; | |
1091 | + strFilePathGB = ""; | |
1092 | + } | |
1093 | + } | |
1094 | + | |
1095 | + public class CComboImage | |
1096 | + { | |
1097 | + public bool bFileFound; | |
1098 | + public string strName; | |
1099 | + public string strFilePathD; | |
1100 | + public string strFilePathGB; | |
1101 | + | |
1102 | + public CComboImage() | |
1103 | + { | |
1104 | + bFileFound = false; | |
1105 | + strName = ""; | |
1106 | + strFilePathD = ""; | |
1107 | + strFilePathGB = ""; | |
1108 | + } | |
1109 | + } | |
1110 | + | |
1111 | + public class CJudgeStringImage | |
1112 | + { | |
1113 | + public bool bFileFound; | |
1114 | + public string strName; | |
1115 | + public string strFilePath; | |
1116 | + | |
1117 | + public CJudgeStringImage() | |
1118 | + { | |
1119 | + bFileFound = false; | |
1120 | + strName = ""; | |
1121 | + strFilePath = ""; | |
1122 | + } | |
1123 | + } | |
1078 | 1124 | } |
@@ -1090,10 +1090,9 @@ namespace DTXMania | ||
1090 | 1090 | throw new IndexOutOfRangeException(); |
1091 | 1091 | } |
1092 | 1092 | } |
1093 | - } | |
1094 | - | |
1093 | + } | |
1095 | 1094 | |
1096 | - internal class C定数 | |
1095 | + internal class C定数 | |
1097 | 1096 | { |
1098 | 1097 | public const int BGA_H = 0x163; |
1099 | 1098 | public const int BGA_W = 0x116; |
@@ -1108,7 +1107,9 @@ namespace DTXMania | ||
1108 | 1107 | public const int SCORE_W = 12; |
1109 | 1108 | public const int SUDDEN_POS = 200; |
1110 | 1109 | |
1111 | - public class Drums | |
1110 | + public static int[] nチップ幅テーブルDB = new int[] { 6, 6, 6, 6, 6, 7, 7, 9, 10, 12, 16, 19, 24 }; // 2019.9.10 kairera0467 | |
1111 | + | |
1112 | + public class Drums | |
1112 | 1113 | { |
1113 | 1114 | public const int BAR_Y = 0x1a6; |
1114 | 1115 | public const int BAR_Y_REV = 0x38; |
@@ -765,8 +765,6 @@ namespace FDK | ||
765 | 765 | DsError.ThrowExceptionForHR( hr ); |
766 | 766 | try |
767 | 767 | { |
768 | - wfx = new WaveFormat(); | |
769 | - | |
770 | 768 | #region [ type.formatPtr から wfx に、拡張領域を除くデータをコピーする。] |
771 | 769 | //----------------- |
772 | 770 | var wfxTemp = new WaveFormatEx(); // SlimDX.Multimedia.WaveFormat は Marshal.PtrToStructure() で使えないので、それが使える DirectShowLib.WaveFormatEx を介して取得する。(面倒…) |
@@ -863,7 +861,7 @@ namespace FDK | ||
863 | 861 | { |
864 | 862 | // videoRenderer を探す。 |
865 | 863 | CDirectShow.SearchMMRenderers(graphBuilder, out videoRenderer, out videoRendererInputPin, out audioRenderer, out audioRendererInputPin); |
866 | - if (videoRenderer != null && audioRendererInputPin != null) | |
864 | + if (videoRenderer != null && videoRendererInputPin != null) | |
867 | 865 | { |
868 | 866 | // 既存のレンダラにつながっているピン対を取得 |
869 | 867 | hr = videoRendererInputPin.ConnectedTo(out connectedOutputPin); |
@@ -892,16 +890,24 @@ namespace FDK | ||
892 | 890 | hr = sampleGrabber.FindPin("Out", out grabberOutputPin); |
893 | 891 | DsError.ThrowExceptionForHR(hr); |
894 | 892 | hr = grabberOutputPin.ConnectedTo(out grabberOutputConnectedPin); |
895 | - DsError.ThrowExceptionForHR(hr); | |
896 | - hr = grabberOutputConnectedPin.Disconnect(); | |
897 | - DsError.ThrowExceptionForHR(hr); | |
898 | - hr = grabberOutputPin.Disconnect(); | |
899 | - DsError.ThrowExceptionForHR(hr); | |
893 | + // grabberのoutに何もつながっていない場合(つまり、grabberのoutとrendererのinが直結している場合)は、 | |
894 | + // grabberのoutと、別のフィルタのinの間の切断処理を行わない。 | |
895 | + if (hr != CWin32.S_OK) | |
896 | + { | |
897 | + //Debug.WriteLine("grabber out: 未接続:"); | |
898 | + } | |
899 | + else | |
900 | + { | |
901 | + hr = grabberOutputConnectedPin.Disconnect(); | |
902 | + DsError.ThrowExceptionForHR(hr); | |
903 | + hr = grabberOutputPin.Disconnect(); | |
904 | + DsError.ThrowExceptionForHR(hr); | |
905 | + } | |
900 | 906 | hr = grabberOutputPin.Connect(nullRendererInputPin, null); |
901 | 907 | DsError.ThrowExceptionForHR(hr); |
902 | 908 | } |
903 | 909 | |
904 | - if( audioRenderer != null && audioRendererInputPin != null ) | |
910 | + if ( audioRenderer != null && audioRendererInputPin != null ) | |
905 | 911 | { |
906 | 912 | C共通.tCOMオブジェクトを解放する(ref connectedOutputPin); |
907 | 913 |