• R/O
  • SSH
  • HTTPS

dtxmaniaxg-verk: Commit


Commit MetaInfo

Revision556 (tree)
Time2016-06-26 10:46:17
Authorkairera0467

Log Message

#35905 XG表示のステータスパネル選択をスクリプト方式に一本化
#35943 GITADORA風表示のギター画面での表示座標を調整。
#xxxxx GITADORA風表示の演奏画面の曲名、アーティスト名表示で使うPrivateFontのコードを解放していなかったので修正。
#xxxxx GITADORA風表示の演奏画面の曲名、アーティスト名表示で使われていたFontのコードを削除。
#xxxxx GITADORA風表示のギター画面に入れなかった不具合を修正。
#xxxxx XG表示で現在使用されていないコードを削除。
#xxxxx 不要なファイルの削除

Change Summary

Incremental Difference

--- trunk/DTXManiaプロジェクト/コード/全体/CDTXMania.cs (revision 555)
+++ trunk/DTXManiaプロジェクト/コード/全体/CDTXMania.cs (revision 556)
@@ -95,11 +95,6 @@
9595 set;
9696 }
9797
98- public static string strSongDifficulyName
99- {
100- get;
101- set;
102- }
10398 #region [ 入力範囲ms ]
10499 public static int nPerfect範囲ms
105100 {
--- trunk/DTXManiaプロジェクト/コード/ステージ/08.結果/CActResultImage.cs (revision 555)
+++ trunk/DTXManiaプロジェクト/コード/ステージ/08.結果/CActResultImage.cs (revision 556)
@@ -196,10 +196,7 @@
196196
197197 }
198198 #endregion
199-
200- this.ftSongNameFont = new System.Drawing.Font("Impact", 20f, FontStyle.Regular, GraphicsUnit.Pixel);
201199 base.On活性化();
202-
203200 }
204201 public override void On非活性化()
205202 {
@@ -240,11 +237,8 @@
240237 if( File.Exists( CDTXMania.stage選曲.r確定されたスコア.ファイル情報.フォルダの絶対パス + "\\TitleTexture.png" ) )
241238 this.txカスタム曲名テクスチャ = CDTXMania.tテクスチャの生成( CDTXMania.stage選曲.r確定されたスコア.ファイル情報.フォルダの絶対パス + "\\TitleTexture.png" );
242239
243- this.bmSongNameLength = new Bitmap(1, 1);
244240 Bitmap bmpCardName = new Bitmap(1, 1);
245- Graphics songname = Graphics.FromImage(this.bmSongNameLength);
246- Graphics graphics = Graphics.FromImage(this.bmSongNameLength);
247- songname.PageUnit = GraphicsUnit.Pixel;
241+ Graphics graphics = Graphics.FromImage( new Bitmap( 1280, 136 ) );
248242 graphics.PageUnit = GraphicsUnit.Pixel;
249243
250244 if ( string.IsNullOrEmpty( CDTXMania.DTX.TITLE ) || ( !CDTXMania.bコンパクトモード && CDTXMania.ConfigIni.b曲名表示をdefのものにする ) )
@@ -251,34 +245,13 @@
251245 this.strSongName = CDTXMania.stage選曲.r現在選択中の曲.strタイトル;
252246 else
253247 this.strSongName = CDTXMania.DTX.TITLE;
254-
255- this.nSongNamePixelLength = (int)songname.MeasureString(this.strSongName, this.ftSongNameFont).Width;
256- this.bmSongNameLength.Dispose();
257- Bitmap image = new Bitmap(this.nSongNamePixelLength, (int)Math.Ceiling((double)this.ftSongNameFont.GetHeight()));
258- songname = Graphics.FromImage( image );
259248 graphics = Graphics.FromImage( b中央パネル );
260-
261249 graphics.DrawImage( this.i中央パネル, 0, 0, 1280, 136 );
262250
263- //2014.09.26.kairera0467 PrivateFont化により廃止。
264- //if( this.txカスタム曲名テクスチャ == null )
265- // graphics.DrawString(this.strSongName, this.ftSongNameFont, Brushes.White, 578f, 85f);
266-
267- songname.Dispose();
268251 this.tx中央パネル = new CTexture( CDTXMania.app.Device, this.b中央パネル, CDTXMania.TextureFormat );
269- //this.txSongName = new CTexture(CDTXMania.app.Device, image, CDTXMania.TextureFormat, false);
270252 this.tx曲名 = this.t曲名テクスチャを生成する( this.strSongName );
271- image.Dispose();
272- this.ftSongNameFont.Dispose();
273- //this.txSongDifficulty = new CTexture(CDTXMania.app.Device, bitmap2, CDTXMania.TextureFormat, false);
274- //bitmap2.Dispose();
275- Bitmap bitmap3 = new Bitmap(100, 100);
276- graphics = Graphics.FromImage(bitmap3);
277253
278- //this.txSongLevel = new CTexture(CDTXMania.app.Device, bitmap3, CDTXMania.TextureFormat, false);
279254 graphics.Dispose();
280- bitmap3.Dispose();
281- graphics.Dispose();
282255 bmpCardName.Dispose();
283256 i中央パネル.Dispose();
284257
@@ -452,13 +425,11 @@
452425 public Point pt;
453426 }
454427 private CAvi avi;
455- private Bitmap bmSongNameLength;
456428 private bool b動画フレームを作成した;
457429 public CCounter ct登場用;
458430 private int nAlbumHeight;
459431 private int nAlbumWidth;
460432 private long nAVI再生開始時刻;
461- private int nSongNamePixelLength;
462433 private int n前回描画したフレーム番号;
463434 private int n本体0X;
464435 private int n本体0Y;
@@ -469,7 +440,6 @@
469440 private Surface sfリザルトAVI画像;
470441 private string strAVIファイル名;
471442 private string strSongName;
472- private System.Drawing.Font ftSongNameFont;
473443 private CTexture txLevel;
474444 private CTexture txSongName;
475445 private CTexture tx曲名;
--- trunk/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏ステータスパネル共通.cs (revision 555)
+++ trunk/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏ステータスパネル共通.cs (revision 556)
@@ -14,34 +14,6 @@
1414 // コンストラクタ
1515 public CAct演奏ステータスパネル共通()
1616 {
17- this.stパネルマップ = null;
18- this.stパネルマップ = new STATUSPANEL[12]; // yyagi: 以下、手抜きの初期化でスマン
19- // { "DTXMANIA", 0 }, { "EXTREME", 1 }, ... みたいに書きたいが・・・
20-
21- //2013.09.07.kairera0467 画像の順番もこの並びになるので、難易度ラベルを追加する時は12以降に追加した方が画像編集でも助かります。
22- string[] labels = new string[12] {
23- "DTXMANIA", //0
24- "DEBUT", //1
25- "NOVICE", //2
26- "REGULAR", //3
27- "EXPERT", //4
28- "MASTER", //5
29- "BASIC", //6
30- "ADVANCED", //7
31- "EXTREME", //8
32- "RAW", //9
33- "RWS", //10
34- "REAL" //11
35- };
36- int[] status = new int[12] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
37-
38- for (int i = 0; i < 12; i++)
39- {
40- this.stパネルマップ[i] = default(CAct演奏ステータスパネル共通.STATUSPANEL);
41- //this.stパネルマップ[i] = new STATUSPANEL();
42- this.stパネルマップ[i].status = status[i];
43- this.stパネルマップ[i].label = labels[i];
44- }
4517 base.b活性化してない = true;
4618 }
4719
@@ -50,29 +22,6 @@
5022 public void tラベル名からステータスパネルを決定する( string strラベル名 )
5123 {
5224 this.tスクリプトから難易度ラベルを取得する( strラベル名 );
53- if (string.IsNullOrEmpty(strラベル名))
54- {
55- this.nStatus = 0;
56- this.nIndex = 0;
57- }
58- else
59- {
60- this.nIndex = 0;
61- CAct演奏ステータスパネル共通.STATUSPANEL[] array = this.stパネルマップ;
62- for (int i = 0; i < array.Length; i++)
63- {
64- CAct演奏ステータスパネル共通.STATUSPANEL sTATUSPANEL = array[i];
65- if (strラベル名.Equals(sTATUSPANEL.label, StringComparison.CurrentCultureIgnoreCase))
66- {
67- this.nStatus = sTATUSPANEL.status;
68- CDTXMania.nSongDifficulty = sTATUSPANEL.status;
69- CDTXMania.strSongDifficulyName = sTATUSPANEL.label;
70- return;
71- }
72- this.nIndex++;
73- }
74- this.nStatus = 0;
75- }
7625 }
7726
7827 // CActivity 実装
@@ -82,8 +31,6 @@
8231 this.nCurrentScore = 0L;
8332 this.n現在のスコアGuitar = 0L;
8433 this.n現在のスコアBass = 0L;
85- this.nStatus = 0;
86- this.nIndex = 0;
8734 base.On活性化();
8835 }
8936
@@ -153,19 +100,10 @@
153100
154101 #region [ protected ]
155102 //-----------------
156- [StructLayout(LayoutKind.Sequential)]
157- public struct STATUSPANEL
158- {
159- public string label;
160- public int status;
161- }
162103 public long nCurrentScore;
163104 public long n現在のスコアGuitar;
164105 public long n現在のスコアBass;
165- public int nIndex;
166- public int nStatus;
167106 protected Rectangle rectDiffPanelPoint;
168- public STATUSPANEL[] stパネルマップ;
169107 //-----------------
170108 #endregion
171109 }
--- trunk/DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏Guitarステータスパネル.cs (revision 555)
+++ trunk/DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏Guitarステータスパネル.cs (revision 556)
@@ -405,7 +405,7 @@
405405 strG = string.Format( "{0:00}", CDTXMania.DTX.LEVEL.Guitar );
406406 }
407407
408- int widthG = (int)gNamePlate.MeasureString( this.stパネルマップ[ this.nIndex ].label.Substring( 0, 3 ) + " ", this.ftLevelFont ).Width;
408+ int widthG = (int)gNamePlate.MeasureString( "DTX" + " ", this.ftLevelFont ).Width;
409409 //数字の描画部分。その左側。
410410 if( CDTXMania.ConfigIni.bCLASSIC譜面判別を有効にする &&
411411 ( CDTXMania.DTX.bチップがある.YPGuitar == false ) &&
@@ -464,7 +464,7 @@
464464 strB = string.Format( "{0:00}", CDTXMania.DTX.LEVEL.Bass );
465465 }
466466
467- int widthB = (int)gNamePlate2P.MeasureString( this.stパネルマップ[ this.nIndex ].label.Substring( 0, 3 ) + " ", this.ftLevelFont ).Width;
467+ int widthB = (int)gNamePlate2P.MeasureString( "DTX" + " ", this.ftLevelFont ).Width;
468468 //数字の描画部分。その左側。
469469 if( CDTXMania.ConfigIni.bCLASSIC譜面判別を有効にする &&
470470 ( CDTXMania.DTX.bチップがある.YPBass == false ) &&
--- trunk/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏パネル文字列.cs (revision 555)
+++ trunk/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏パネル文字列.cs (revision 556)
@@ -17,7 +17,6 @@
1717 public CAct演奏パネル文字列()
1818 {
1919 base.b活性化してない = true;
20- this.strパネル文字列 = "";
2120 }
2221
2322
@@ -25,35 +24,6 @@
2524
2625 public void SetPanelString( string str )
2726 {
28- this.strパネル文字列 = str;
29- if( base.b活性化してる )
30- {
31- CDTXMania.tテクスチャの解放( ref this.txPanel );
32- if( ( this.strパネル文字列 != null ) && ( this.strパネル文字列.Length > 0 ) )
33- {
34- Bitmap image = new Bitmap( 1, 1 );
35- Graphics graphics = Graphics.FromImage( image );
36- graphics.PageUnit = GraphicsUnit.Pixel;
37- this.n文字列の長さdot = (int) graphics.MeasureString( this.strパネル文字列, this.ft表示用フォント ).Width;
38- graphics.Dispose();
39- try
40- {
41- Bitmap bitmap2 = new Bitmap( this.n文字列の長さdot, (int) this.ft表示用フォント.Size );
42- graphics = Graphics.FromImage( bitmap2 );
43- graphics.DrawString( this.strパネル文字列, this.ft表示用フォント, Brushes.White, (float) 0f, (float) 0f );
44- graphics.Dispose();
45- this.txPanel = new CTexture( CDTXMania.app.Device, bitmap2, CDTXMania.TextureFormat );
46- this.txPanel.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f );
47- bitmap2.Dispose();
48- }
49- catch( CTextureCreateFailedException )
50- {
51- Trace.TraceError( "パネル文字列テクスチャの生成に失敗しました。" );
52- this.txPanel = null;
53- }
54- this.ct進行用 = new CCounter( -278, this.n文字列の長さdot / 2, 8, CDTXMania.Timer );
55- }
56- }
5727 }
5828
5929
@@ -61,21 +31,10 @@
6131
6232 public override void On活性化()
6333 {
64- this.ft表示用フォント = new Font("DFG平成ゴシック体W7", 38f, FontStyle.Regular, GraphicsUnit.Pixel);
65- this.ftSongNameFont = new System.Drawing.Font("DFG平成ゴシック体W5", 20f, FontStyle.Regular, GraphicsUnit.Pixel);
66- this.n文字列の長さdot = 0;
67- this.txPanel = null;
68- this.ct進行用 = new CCounter();
6934 base.On活性化();
7035 }
7136 public override void On非活性化()
7237 {
73- if( this.ft表示用フォント != null )
74- {
75- this.ft表示用フォント.Dispose();
76- this.ft表示用フォント = null;
77- }
78- this.ct進行用 = null;
7938 base.On非活性化();
8039 }
8140 public override void OnManagedリソースの作成()
@@ -82,21 +41,6 @@
8241 {
8342 if( !base.b活性化してない )
8443 {
85- this.SetPanelString( this.strパネル文字列 );
86- this.bmSongNameLength = new Bitmap(1, 1);
87- Graphics graphics = Graphics.FromImage(this.bmSongNameLength);
88- graphics.PageUnit = GraphicsUnit.Pixel;
89- this.strSongName = string.IsNullOrEmpty( CDTXMania.DTX.TITLE ) ? "No Song Name" : ( CDTXMania.bコンパクトモード ? "---" : CDTXMania.stage選曲.r確定された曲.strタイトル);
90- this.nSongNamePixelLength = (int)graphics.MeasureString(this.strSongName, this.ftSongNameFont).Width;
91- graphics.Dispose();
92- this.bmSongNameLength.Dispose();
93- Bitmap image = new Bitmap(this.nSongNamePixelLength, (int)Math.Ceiling((double)this.ftSongNameFont.GetHeight()));
94- graphics = Graphics.FromImage(image);
95- graphics.DrawString(this.strSongName, this.ftSongNameFont, Brushes.White, (float)0f, (float)0f);
96- graphics.Dispose();
97- image.Dispose();
98- this.ftSongNameFont.Dispose();
99-
10044 base.OnManagedリソースの作成();
10145 }
10246 }
@@ -104,7 +48,6 @@
10448 {
10549 if( !base.b活性化してない )
10650 {
107- CDTXMania.tテクスチャの解放( ref this.txPanel );
10851 base.OnManagedリソースの解放();
10952 }
11053 }
@@ -116,23 +59,6 @@
11659 {
11760 if( !base.b活性化してない )
11861 {
119- //this.ct進行用.t進行Loop();
120- if( ( string.IsNullOrEmpty( this.strパネル文字列 ) || ( this.txPanel == null ) ) || ( this.ct進行用 == null ) )
121- {
122- return 0;
123- }
124- float num = this.txPanel.vc拡大縮小倍率.X;
125- Rectangle rectangle = new Rectangle( (int) ( num ), 0, (int) ( 360f / num ), (int) this.ft表示用フォント.Size );
126- if( rectangle.X < 0 )
127- {
128- x -= (int) ( rectangle.X * num );
129- rectangle.Width += rectangle.X;
130- rectangle.X = 0;
131- }
132- if( rectangle.Right >= this.n文字列の長さdot )
133- {
134- rectangle.Width -= rectangle.Right - this.n文字列の長さdot;
135- }
13662 }
13763 return 0;
13864 }
@@ -142,16 +68,6 @@
14268
14369 #region [ private ]
14470 //-----------------
145- private Bitmap bmSongNameLength;
146- private int nSongNamePixelLength;
147- private CCounter ct進行用;
148- private Font ft表示用フォント;
149- private Font ftSongNameFont;
150- private int n文字列の長さdot;
151- private string strパネル文字列;
152- private string strSongName;
153- private CTexture txPanel;
154-
15571 //-----------------
15672 #endregion
15773 }
--- trunk/DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drumsステータスパネル.cs (revision 555)
+++ trunk/DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drumsステータスパネル.cs (revision 556)
@@ -43,7 +43,6 @@
4343 }
4444 }
4545 this.nDifficulty = CDTXMania.nSongDifficulty;
46- CDTXMania.strSongDifficulyName = this.stパネルマップ[ this.nDifficulty ].label;
4746 base.On活性化();
4847 }
4948 public override void OnManagedリソースの作成()
@@ -295,7 +294,7 @@
295294 }
296295
297296
298- int width = (int)gNamePlate.MeasureString(this.stパネルマップ[this.nIndex].label.Substring(0, 3) + " ", this.ftLevelFont).Width;
297+ int width = (int)gNamePlate.MeasureString( "DTX" + " ", this.ftLevelFont).Width;
299298 //数字の描画部分。その左側。
300299 if( CDTXMania.ConfigIni.bCLASSIC譜面判別を有効にする &&
301300 ( CDTXMania.DTX.bチップがある.LeftCymbal == false ) &&
--- trunk/DTXManiaプロジェクト/コード/ステージ/05.選曲/CActSelectPreimageパネル.cs (revision 555)
+++ trunk/DTXManiaプロジェクト/コード/ステージ/05.選曲/CActSelectPreimageパネル.cs (revision 556)
@@ -20,8 +20,6 @@
2020 }
2121 public void t選択曲が変更された()
2222 {
23- this.ct遅延表示 = new CCounter( -CDTXMania.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms, 100, 1, CDTXMania.Timer );
24- this.b新しいプレビューファイルを読み込んだ = false;
2523 }
2624
2725 public bool bIsPlayingPremovie // #27060
@@ -28,7 +26,7 @@
2826 {
2927 get
3028 {
31- return (this.avi != null);
29+ return false;
3230 }
3331 }
3432
@@ -36,22 +34,10 @@
3634
3735 public override void On活性化()
3836 {
39- this.n本体X = 8;
40- this.n本体Y = 57;
41- this.r表示するプレビュー画像 = this.txプレビュー画像がないときの画像;
42- this.str現在のファイル名 = "";
43- this.b新しいプレビューファイルを読み込んだ = false;
4437 base.On活性化();
4538 }
4639 public override void On非活性化()
4740 {
48- this.ct登場アニメ用 = null;
49- this.ct遅延表示 = null;
50- if( this.avi != null )
51- {
52- this.avi.Dispose();
53- this.avi = null;
54- }
5541 base.On非活性化();
5642 }
5743 public override void OnManagedリソースの作成()
@@ -58,16 +44,6 @@
5844 {
5945 if( !base.b活性化してない )
6046 {
61- this.txパネル本体 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_preimage panel.png" ), false );
62- this.txセンサ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_sensor.png" ), false );
63- this.txプレビュー画像 = null;
64- this.txプレビュー画像がないときの画像 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_preimage default.png" ), false );
65- this.sfAVI画像 = Surface.CreateOffscreenPlain( CDTXMania.app.Device, 0xcc, 0x10d, CDTXMania.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.SystemMemory );
66- this.nAVI再生開始時刻 = -1L;
67- this.n前回描画したフレーム番号 = -1;
68- this.b動画フレームを作成した = false;
69- this.pAVIBmp = IntPtr.Zero;
70- this.tプレビュー画像・動画の変更();
7147 base.OnManagedリソースの作成();
7248 }
7349 }
@@ -75,66 +51,11 @@
7551 {
7652 if( !base.b活性化してない )
7753 {
78- CDTXMania.tテクスチャの解放( ref this.txパネル本体 );
79- CDTXMania.tテクスチャの解放( ref this.txセンサ );
80- CDTXMania.tテクスチャの解放( ref this.txプレビュー画像 );
81- CDTXMania.tテクスチャの解放( ref this.txプレビュー画像がないときの画像 );
82- if( this.sfAVI画像 != null )
83- {
84- this.sfAVI画像.Dispose();
85- this.sfAVI画像 = null;
86- }
8754 base.OnManagedリソースの解放();
8855 }
8956 }
9057 public override int On進行描画()
9158 {
92- if( !base.b活性化してない )
93- {
94- if( base.b初めての進行描画 )
95- {
96- this.ct登場アニメ用 = new CCounter( 0, 100, 5, CDTXMania.Timer );
97- this.ctセンサ光 = new CCounter( 0, 100, 30, CDTXMania.Timer );
98- this.ctセンサ光.n現在の値 = 70;
99- base.b初めての進行描画 = false;
100- }
101- this.ct登場アニメ用.t進行();
102- this.ctセンサ光.t進行Loop();
103- if( ( !CDTXMania.stage選曲.bスクロール中 && ( this.ct遅延表示 != null ) ) && this.ct遅延表示.b進行中 )
104- {
105- this.ct遅延表示.t進行();
106- if( this.ct遅延表示.b終了値に達した )
107- {
108- this.ct遅延表示.t停止();
109- }
110- else if( ( this.ct遅延表示.n現在の値 >= 0 ) && this.b新しいプレビューファイルをまだ読み込んでいない )
111- {
112- this.tプレビュー画像・動画の変更();
113- CDTXMania.Timer.t更新();
114- this.ct遅延表示.n現在の経過時間ms = CDTXMania.Timer.n現在時刻;
115- this.b新しいプレビューファイルを読み込んだ = true;
116- }
117- }
118- else if( ( ( this.avi != null ) && ( this.sfAVI画像 != null ) ) && ( this.nAVI再生開始時刻 != -1 ) )
119- {
120- int time = (int) ( ( CDTXMania.Timer.n現在時刻 - this.nAVI再生開始時刻 ) * ( ( (double) CDTXMania.ConfigIni.n演奏速度 ) / 20.0 ) );
121- int frameNoFromTime = this.avi.GetFrameNoFromTime( time );
122- if( frameNoFromTime >= this.avi.GetMaxFrameCount() )
123- {
124- this.nAVI再生開始時刻 = CDTXMania.Timer.n現在時刻;
125- }
126- else if( ( this.n前回描画したフレーム番号 != frameNoFromTime ) && !this.b動画フレームを作成した )
127- {
128- this.b動画フレームを作成した = true;
129- this.n前回描画したフレーム番号 = frameNoFromTime;
130- this.pAVIBmp = this.avi.GetFramePtr( frameNoFromTime );
131- }
132- }
133- this.t描画処理・パネル本体();
134- this.t描画処理・ジャンル文字列();
135- this.t描画処理・プレビュー画像();
136- this.t描画処理・センサ本体();
137- }
13859 return 0;
13960 }
14061
@@ -143,391 +64,6 @@
14364
14465 #region [ private ]
14566 //-----------------
146- private CAvi avi;
147- private bool b動画フレームを作成した;
148- private CCounter ctセンサ光;
149- private CCounter ct遅延表示;
150- private CCounter ct登場アニメ用;
151- private long nAVI再生開始時刻;
152- private int n前回描画したフレーム番号;
153- private int n本体X;
154- private int n本体Y;
155- private IntPtr pAVIBmp;
156- private readonly Rectangle rcセンサ光 = new Rectangle( 0, 0x120, 0x80, 0x60 );
157- private readonly Rectangle rcセンサ本体下半分 = new Rectangle( 0x80, 0, 0x80, 0xc0 );
158- private readonly Rectangle rcセンサ本体上半分 = new Rectangle( 0, 0, 0x80, 0xc0 );
159- private CTexture r表示するプレビュー画像;
160- private Surface sfAVI画像;
161- private string str現在のファイル名;
162- private CTexture txセンサ;
163- private CTexture txパネル本体;
164- private CTexture txプレビュー画像;
165- private CTexture txプレビュー画像がないときの画像;
166- private bool b新しいプレビューファイルを読み込んだ;
167- private bool b新しいプレビューファイルをまだ読み込んでいない
168- {
169- get
170- {
171- return !this.b新しいプレビューファイルを読み込んだ;
172- }
173- set
174- {
175- this.b新しいプレビューファイルを読み込んだ = !value;
176- }
177- }
178-
179- private unsafe void tサーフェイスをクリアする( Surface sf )
180- {
181- DataRectangle rectangle = sf.LockRectangle( LockFlags.None );
182- DataStream data = rectangle.Data;
183- switch( ( rectangle.Pitch / sf.Description.Width ) )
184- {
185- case 4:
186- {
187- uint* numPtr = (uint*) data.DataPointer.ToPointer();
188- for( int i = 0; i < sf.Description.Height; i++ )
189- {
190- for( int j = 0; j < sf.Description.Width; j++ )
191- {
192- ( numPtr + ( i * sf.Description.Width ) )[ j ] = 0;
193- }
194- }
195- break;
196- }
197- case 2:
198- {
199- ushort* numPtr2 = (ushort*) data.DataPointer.ToPointer();
200- for( int k = 0; k < sf.Description.Height; k++ )
201- {
202- for( int m = 0; m < sf.Description.Width; m++ )
203- {
204- ( numPtr2 + ( k * sf.Description.Width ) )[ m ] = 0;
205- }
206- }
207- break;
208- }
209- }
210- sf.UnlockRectangle();
211- }
212- private void tプレビュー画像・動画の変更()
213- {
214- if( this.avi != null )
215- {
216- this.avi.Dispose();
217- this.avi = null;
218- }
219- this.pAVIBmp = IntPtr.Zero;
220- this.nAVI再生開始時刻 = -1;
221- if( !CDTXMania.ConfigIni.bストイックモード )
222- {
223- if( this.tプレビュー動画の指定があれば構築する() )
224- {
225- return;
226- }
227- if( this.tプレビュー画像の指定があれば構築する() )
228- {
229- return;
230- }
231- if( this.t背景画像があればその一部からプレビュー画像を構築する() )
232- {
233- return;
234- }
235- }
236- this.r表示するプレビュー画像 = this.txプレビュー画像がないときの画像;
237- this.str現在のファイル名 = "";
238- }
239- private bool tプレビュー画像の指定があれば構築する()
240- {
241- Cスコア cスコア = CDTXMania.stage選曲.r現在選択中のスコア;
242- if( ( cスコア == null ) || string.IsNullOrEmpty( cスコア.譜面情報.Preimage ) )
243- {
244- return false;
245- }
246- string str = cスコア.ファイル情報.フォルダの絶対パス + cスコア.譜面情報.Preimage;
247- if( !str.Equals( this.str現在のファイル名 ) )
248- {
249- CDTXMania.tテクスチャの解放( ref this.txプレビュー画像 );
250- this.str現在のファイル名 = str;
251- if( !File.Exists( this.str現在のファイル名 ) )
252- {
253- Trace.TraceWarning( "ファイルが存在しません。({0})", new object[] { this.str現在のファイル名 } );
254- return false;
255- }
256- this.txプレビュー画像 = CDTXMania.tテクスチャの生成( this.str現在のファイル名, false );
257- if( this.txプレビュー画像 != null )
258- {
259- this.r表示するプレビュー画像 = this.txプレビュー画像;
260- }
261- else
262- {
263- this.r表示するプレビュー画像 = this.txプレビュー画像がないときの画像;
264- }
265- }
266- return true;
267- }
268- private bool tプレビュー動画の指定があれば構築する()
269- {
270- Cスコア cスコア = CDTXMania.stage選曲.r現在選択中のスコア;
271- if( ( CDTXMania.ConfigIni.bAVI有効 && ( cスコア != null ) ) && !string.IsNullOrEmpty( cスコア.譜面情報.Premovie ) )
272- {
273- string filename = cスコア.ファイル情報.フォルダの絶対パス + cスコア.譜面情報.Premovie;
274- if( filename.Equals( this.str現在のファイル名 ) )
275- {
276- return true;
277- }
278- if( this.avi != null )
279- {
280- this.avi.Dispose();
281- this.avi = null;
282- }
283- this.str現在のファイル名 = filename;
284- if( !File.Exists( this.str現在のファイル名 ) )
285- {
286- Trace.TraceWarning( "ファイルが存在しません。({0})", new object[] { this.str現在のファイル名 } );
287- return false;
288- }
289- try
290- {
291- this.avi = new CAvi( filename );
292- this.nAVI再生開始時刻 = CDTXMania.Timer.n現在時刻;
293- this.n前回描画したフレーム番号 = -1;
294- this.b動画フレームを作成した = false;
295- this.tサーフェイスをクリアする( this.sfAVI画像 );
296- Trace.TraceInformation( "動画を生成しました。({0})", new object[] { filename } );
297- }
298- catch
299- {
300- Trace.TraceError( "動画の生成に失敗しました。({0})", new object[] { filename } );
301- this.avi = null;
302- this.nAVI再生開始時刻 = -1;
303- }
304- }
305- return false;
306- }
307- private bool t背景画像があればその一部からプレビュー画像を構築する()
308- {
309- Cスコア cスコア = CDTXMania.stage選曲.r現在選択中のスコア;
310- if( ( cスコア == null ) || string.IsNullOrEmpty( cスコア.譜面情報.Backgound ) )
311- {
312- return false;
313- }
314- string path = cスコア.ファイル情報.フォルダの絶対パス + cスコア.譜面情報.Backgound;
315- if( !path.Equals( this.str現在のファイル名 ) )
316- {
317- if( !File.Exists( path ) )
318- {
319- Trace.TraceWarning( "ファイルが存在しません。({0})", new object[] { path } );
320- return false;
321- }
322- CDTXMania.tテクスチャの解放( ref this.txプレビュー画像 );
323- this.str現在のファイル名 = path;
324- Bitmap image = null;
325- Bitmap bitmap2 = null;
326- Bitmap bitmap3 = null;
327- try
328- {
329- image = new Bitmap( this.str現在のファイル名 );
330- bitmap2 = new Bitmap(SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height);
331- Graphics graphics = Graphics.FromImage( bitmap2 );
332- int x = 0;
333- for (int i = 0; i < SampleFramework.GameWindowSize.Height; i += image.Height)
334- {
335- for (x = 0; x < SampleFramework.GameWindowSize.Width; x += image.Width)
336- {
337- graphics.DrawImage( image, x, i, image.Width, image.Height );
338- }
339- }
340- graphics.Dispose();
341- bitmap3 = new Bitmap( 0xcc, 0x10d );
342- graphics = Graphics.FromImage( bitmap3 );
343- graphics.DrawImage( bitmap2, 5, 5, new Rectangle( 0x157, 0x6d, 204, 269 ), GraphicsUnit.Pixel );
344- graphics.Dispose();
345- this.txプレビュー画像 = new CTexture( CDTXMania.app.Device, bitmap3, CDTXMania.TextureFormat );
346- this.r表示するプレビュー画像 = this.txプレビュー画像;
347- }
348- catch
349- {
350- Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { this.str現在のファイル名 } );
351- this.r表示するプレビュー画像 = this.txプレビュー画像がないときの画像;
352- return false;
353- }
354- finally
355- {
356- if( image != null )
357- {
358- image.Dispose();
359- }
360- if( bitmap2 != null )
361- {
362- bitmap2.Dispose();
363- }
364- if( bitmap3 != null )
365- {
366- bitmap3.Dispose();
367- }
368- }
369- }
370- return true;
371- }
372- private void t描画処理・ジャンル文字列()
373- {
374- C曲リストノード c曲リストノード = CDTXMania.stage選曲.r現在選択中の曲;
375- Cスコア cスコア = CDTXMania.stage選曲.r現在選択中のスコア;
376- if( ( c曲リストノード != null ) && ( cスコア != null ) )
377- {
378- string str = "";
379- switch( c曲リストノード.eノード種別 )
380- {
381- case C曲リストノード.Eノード種別.SCORE:
382- if( ( c曲リストノード.strジャンル == null ) || ( c曲リストノード.strジャンル.Length <= 0 ) )
383- {
384- if( ( cスコア.譜面情報.ジャンル != null ) && ( cスコア.譜面情報.ジャンル.Length > 0 ) )
385- {
386- str = cスコア.譜面情報.ジャンル;
387- }
388- else
389- {
390- switch( cスコア.譜面情報.曲種別 )
391- {
392- case CDTX.E種別.DTX:
393- str = "DTX";
394- break;
395-
396- case CDTX.E種別.GDA:
397- str = "GDA";
398- break;
399-
400- case CDTX.E種別.G2D:
401- str = "G2D";
402- break;
403-
404- case CDTX.E種別.BMS:
405- str = "BMS";
406- break;
407-
408- case CDTX.E種別.BME:
409- str = "BME";
410- break;
411- }
412- str = "Unknown";
413- }
414- break;
415- }
416- str = c曲リストノード.strジャンル;
417- break;
418-
419- case C曲リストノード.Eノード種別.SCORE_MIDI:
420- str = "MIDI";
421- break;
422-
423- case C曲リストノード.Eノード種別.BOX:
424- str = "MusicBox";
425- break;
426-
427- case C曲リストノード.Eノード種別.BACKBOX:
428- str = "BackBox";
429- break;
430-
431- case C曲リストノード.Eノード種別.RANDOM:
432- str = "Random";
433- break;
434-
435- default:
436- str = "Unknown";
437- break;
438- }
439- CDTXMania.act文字コンソール.tPrint( this.n本体X + 0x12, this.n本体Y - 1, C文字コンソール.Eフォント種別.赤細, str );
440- }
441- }
442- private void t描画処理・センサ本体()
443- {
444- int x = this.n本体X + 410;
445- int y = this.n本体Y - 6;
446- if( this.txセンサ != null )
447- {
448- this.txセンサ.t2D描画( CDTXMania.app.Device, x, y, this.rcセンサ本体上半分 );
449- y += 0xc0;
450- this.txセンサ.t2D描画( CDTXMania.app.Device, x, y, this.rcセンサ本体下半分 );
451- }
452- }
453- private void t描画処理・パネル本体()
454- {
455- if( this.ct登場アニメ用.b終了値に達した || ( this.txパネル本体 != null ) )
456- {
457- this.n本体X = 0x10;
458- this.n本体Y = 0x56;
459- }
460- else
461- {
462- double num = ( (double) this.ct登場アニメ用.n現在の値 ) / 100.0;
463- double num2 = Math.Cos( ( 1.5 + ( 0.5 * num ) ) * Math.PI );
464- this.n本体X = 0x10;
465- this.n本体Y = 0x56 - ( (int) ( this.txパネル本体.sz画像サイズ.Height * ( 1.0 - ( num2 * num2 ) ) ) );
466- }
467- if( this.txパネル本体 != null )
468- {
469- this.txパネル本体.t2D描画( CDTXMania.app.Device, this.n本体X, this.n本体Y );
470- }
471- }
472- private unsafe void t描画処理・プレビュー画像()
473- {
474- if( !CDTXMania.stage選曲.bスクロール中 && ( ( ( this.ct遅延表示 != null ) && ( this.ct遅延表示.n現在の値 > 0 ) ) && !this.b新しいプレビューファイルをまだ読み込んでいない ) )
475- {
476- int x = this.n本体X + 0x24;
477- int y = this.n本体Y + 0x18;
478- float num3 = ( (float) this.ct遅延表示.n現在の値 ) / 100f;
479- float num4 = 0.9f + ( 0.1f * num3 );
480- if( ( this.nAVI再生開始時刻 != -1 ) && ( this.sfAVI画像 != null ) )
481- {
482- if( this.b動画フレームを作成した && ( this.pAVIBmp != IntPtr.Zero ) )
483- {
484- DataRectangle rectangle = this.sfAVI画像.LockRectangle( LockFlags.None );
485- DataStream data = rectangle.Data;
486- int num5 = rectangle.Pitch / this.sfAVI画像.Description.Width;
487- BitmapUtil.BITMAPINFOHEADER* pBITMAPINFOHEADER = (BitmapUtil.BITMAPINFOHEADER*) this.pAVIBmp.ToPointer();
488- if( pBITMAPINFOHEADER->biBitCount == 0x18 )
489- {
490- switch( num5 )
491- {
492- case 2:
493- this.avi.tBitmap24ToGraphicsStreamR5G6B5( pBITMAPINFOHEADER, data, this.sfAVI画像.Description.Width, this.sfAVI画像.Description.Height );
494- break;
495-
496- case 4:
497- this.avi.tBitmap24ToGraphicsStreamX8R8G8B8( pBITMAPINFOHEADER, data, this.sfAVI画像.Description.Width, this.sfAVI画像.Description.Height );
498- break;
499- }
500- }
501- this.sfAVI画像.UnlockRectangle();
502- this.b動画フレームを作成した = false;
503- }
504- using( Surface surface = CDTXMania.app.Device.GetBackBuffer( 0, 0 ) )
505- {
506- CDTXMania.app.Device.UpdateSurface( this.sfAVI画像, new Rectangle( 0, 0, this.sfAVI画像.Description.Width, this.sfAVI画像.Description.Height ), surface, new Point( x, y ) );
507- return;
508- }
509- }
510- if( this.r表示するプレビュー画像 != null )
511- {
512- int width = this.r表示するプレビュー画像.sz画像サイズ.Width;
513- int height = this.r表示するプレビュー画像.sz画像サイズ.Height;
514- if( width > 0x198 )
515- {
516- width = 0x198;
517- }
518- if( height > 0x194 )
519- {
520- height = 0x194;
521- }
522- x += (0x198 - ((int)(width * num4))) / 2;
523- y += (0x194 - ((int)(height * num4))) / 2;
524- this.r表示するプレビュー画像.n透明度 = (int) ( 255f * num3 );
525- this.r表示するプレビュー画像.vc拡大縮小倍率.X = num4;
526- this.r表示するプレビュー画像.vc拡大縮小倍率.Y = num4;
527- this.r表示するプレビュー画像.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( 0, 0, width, height ) );
528- }
529- }
530- }
53167 //-----------------
53268 #endregion
53369 }
--- branches/GITADORA風/DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏Guitarステータスパネル.cs (revision 555)
+++ branches/GITADORA風/DTXManiaプロジェクト/コード/ステージ/07.演奏/ギター画面/CAct演奏Guitarステータスパネル.cs (revision 556)
@@ -169,7 +169,7 @@
169169 this.n本体X[0] = 0;
170170 this.n本体X[1] = 373;
171171 this.n本体X[2] = 665;
172- this.n本体Y = 270;
172+ this.n本体Y = 254;
173173
174174 if (!CDTXMania.DTX.bチップがある.Bass)
175175 {
@@ -225,6 +225,8 @@
225225 this.ft称号フォント.Dispose();
226226 this.ft称号フォント = null;
227227 }
228+ CDTXMania.t安全にDisposeする( ref this.prv表示用フォント );
229+ CDTXMania.t安全にDisposeする( ref this.prv称号フォント );
228230 CDTXMania.tテクスチャの解放(ref this.txスキルパネル);
229231 CDTXMania.tテクスチャの解放(ref this.txパネル文字[0]);
230232 CDTXMania.tテクスチャの解放(ref this.txパネル文字[1]);
@@ -336,8 +338,6 @@
336338 graネームプレート用.DrawImage( bmpTitleName, 6f, 8f );
337339 #endregion
338340
339- this.prv表示用フォント.Dispose();
340- this.prv称号フォント.Dispose();
341341 bmpCardName.Dispose();
342342 bmpTitleName.Dispose();
343343
--- branches/GITADORA風/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏パネル文字列.cs (revision 555)
+++ branches/GITADORA風/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏パネル文字列.cs (revision 556)
@@ -65,7 +65,6 @@
6565 this.n曲名Y = 630;
6666 }
6767
68- this.ft表示用フォント = new Font(CDTXMania.ConfigIni.str曲名表示フォント, 26f, FontStyle.Regular, GraphicsUnit.Pixel);
6968 // this.n文字列の長さdot = 0;
7069 // this.txPanel = null;
7170 this.ct進行用 = new CCounter();
@@ -73,11 +72,8 @@
7372 }
7473 public override void On非活性化()
7574 {
76- if (this.ft表示用フォント != null)
77- {
78- this.ft表示用フォント.Dispose();
79- this.ft表示用フォント = null;
80- }
75+ CDTXMania.t安全にDisposeする( ref this.pfタイトル );
76+ CDTXMania.t安全にDisposeする( ref this.pfアーティスト );
8177 // CDTXMania.tテクスチャの解放(ref this.txPanel);
8278 this.ct進行用 = null;
8379 base.On非活性化();
@@ -105,15 +101,15 @@
105101 else
106102 this.strSongName = CDTXMania.DTX.TITLE;
107103
108- pfタイトル = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 20, FontStyle.Regular);
104+ this.pfタイトル = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 20, FontStyle.Regular);
109105 Bitmap bmpSongName = new Bitmap(1, 1);
110- bmpSongName = pfタイトル.DrawPrivateFont(this.strSongName, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true);
106+ bmpSongName = this.pfタイトル.DrawPrivateFont(this.strSongName, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true);
111107 this.txSongName = CDTXMania.tテクスチャの生成(bmpSongName, false);
112108 bmpSongName.Dispose();
113109
114- pfアーティスト = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 15, FontStyle.Regular);
110+ this.pfアーティスト = new CPrivateFastFont(new FontFamily(CDTXMania.ConfigIni.str選曲リストフォント), 15, FontStyle.Regular);
115111 Bitmap bmpArtistName = new Bitmap(1, 1);
116- bmpArtistName = pfアーティスト.DrawPrivateFont(CDTXMania.DTX.ARTIST, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true);
112+ bmpArtistName = this.pfアーティスト.DrawPrivateFont(CDTXMania.DTX.ARTIST, CPrivateFont.DrawMode.Edge, Color.Black, Color.Black, this.clGITADORAgradationTopColor, this.clGITADORAgradationBottomColor, true);
117113 this.txArtistName = CDTXMania.tテクスチャの生成(bmpArtistName, false);
118114 bmpArtistName.Dispose();
119115 #endregion
@@ -214,7 +210,6 @@
214210 #region [ private ]
215211 //-----------------
216212 private CCounter ct進行用;
217- private Font ft表示用フォント;
218213 // private int n文字列の長さdot;
219214 private int n曲名X;
220215 private int n曲名Y;
--- branches/GITADORA風/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏スキルメーター.cs (revision 555)
+++ branches/GITADORA風/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏スキルメーター.cs (revision 556)
@@ -155,7 +155,13 @@
155155 this.nGraphBG_XPos.Drums = 870;
156156 this.nGraphBG_XPos.Guitar = 356;
157157 this.nGraphBG_XPos.Bass = 647;
158- this.nGraphBG_YPos = 50;
158+ this.nGraphBG_YPos = this.nGraphUsePart == 0 ? 50 : 110;
159+ //2016.06.24 kairera0467 StatusPanelとSkillMaterの場合はX座標を調整する。
160+ if( CDTXMania.ConfigIni.nInfoType == 1 )
161+ {
162+ this.nGraphBG_XPos.Guitar = 629 + 9;
163+ this.nGraphBG_XPos.Bass = 403;
164+ }
159165
160166 if( CDTXMania.ConfigIni.eTargetGhost[ this.nGraphUsePart ] != ETargetGhostData.NONE )
161167 {
@@ -190,13 +196,13 @@
190196 {
191197 //ゲージ本体
192198 int nGaugeSize = (int)( 434.0f * (float)this.dbグラフ値現在 / 100.0f );
193- int nPosY = 527 - nGaugeSize;
199+ int nPosY = this.nGraphUsePart == 0 ? 527 - nGaugeSize : 587 - nGaugeSize;
194200 this.txグラフ_ゲージ.n透明度 = 255;
195201 this.txグラフ_ゲージ.t2D描画( CDTXMania.app.Device, nGraphBG_XPos[ this.nGraphUsePart ] + 45, nPosY, new Rectangle( 2, 2, 30, nGaugeSize ) );
196202
197203 //ゲージ比較
198204 int nTargetGaugeSize = (int)( 434.0f * ( (float)this.dbグラフ値目標 / 100.0f ) );
199- int nTargetGaugePosY = 527 - nTargetGaugeSize;
205+ int nTargetGaugePosY = this.nGraphUsePart == 0 ? 527 - nTargetGaugeSize : 587 - nTargetGaugeSize;
200206 int nTargetGaugeRectX = this.dbグラフ値現在 > this.dbグラフ値目標 ? 38 : 74;
201207 this.txグラフ_ゲージ.n透明度 = 255;
202208 this.txグラフ_ゲージ.t2D描画( CDTXMania.app.Device, nGraphBG_XPos[ this.nGraphUsePart ] + 75, nTargetGaugePosY, new Rectangle( nTargetGaugeRectX, 2, 30, nTargetGaugeSize ) );
Show on old repository browser