OSDN Git Service

#36057 コンフィグまわりのリファクタ(リソース不完全なので注意)
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 05.選曲 / CActSelectShowCurrentPosition.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Drawing;\r
5 using System.Diagnostics;\r
6 using System.IO;\r
7 using SlimDX;\r
8 using FDK;\r
9 \r
10 namespace DTXMania\r
11 {\r
12         internal class CActSelectShowCurrentPosition : CActivity\r
13         {\r
14                 // メソッド\r
15 \r
16                 public CActSelectShowCurrentPosition()\r
17                 {\r
18                         base.b活性化してない = true;\r
19                 }\r
20 \r
21                 // CActivity 実装\r
22 \r
23                 public override void On活性化()\r
24                 {\r
25                         if (this.b活性化してる)\r
26                                 return;\r
27 \r
28                         base.On活性化();\r
29                 }\r
30                 public override void On非活性化()\r
31                 {\r
32                         base.On非活性化();\r
33                 }\r
34                 public override void OnManagedリソースの作成()\r
35                 {\r
36                         if (!base.b活性化してない)\r
37                         {\r
38                                 string pathScrollBar = CSkin.Path(@"Graphics\ScreenSelect scrollbar.png");\r
39                                 string pathScrollPosition = CSkin.Path(@"Graphics\ScreenSelect scrollbar.png");\r
40                                 if (File.Exists(pathScrollBar))\r
41                                 {\r
42                                         this.txScrollBar = TextureFactory.tテクスチャの生成(pathScrollBar, false);\r
43                                 }\r
44                                 if (File.Exists(pathScrollPosition))\r
45                                 {\r
46                                         this.txScrollPosition = TextureFactory.tテクスチャの生成(pathScrollPosition, false);\r
47                                 }\r
48                                 base.OnManagedリソースの作成();\r
49                         }\r
50                 }\r
51                 public override void OnManagedリソースの解放()\r
52                 {\r
53                         if (!base.b活性化してない)\r
54                         {\r
55                                 TextureFactory.t安全にDisposeする(ref this.txScrollBar);\r
56                                 TextureFactory.t安全にDisposeする(ref this.txScrollPosition);\r
57 \r
58                                 base.OnManagedリソースの解放();\r
59                         }\r
60                 }\r
61                 public override int On進行描画()\r
62                 {\r
63                         #region [ スクロールバーの描画 #27648 ]\r
64                         if (this.txScrollBar != null)\r
65                         {\r
66                                 for (int sy = 0; sy < (int)(336 * Scale.Y); sy += (int)(128 * Scale.Y))\r
67                                 {\r
68                                         int ry = (sy / (int)(128 * Scale.Y));\r
69                                         int h = ((ry + 1) * (int)(128 * Scale.Y) > (int)(336 * Scale.Y)) ? (int)(336 * Scale.Y) - ry * (int)(128 * Scale.Y) : (int)(128 * Scale.Y);\r
70                                         this.txScrollBar.t2D描画(\r
71                                                 CDTXMania.Instance.Device,\r
72                                                 SampleFramework.GameWindowSize.Width - 12 * Scale.X,\r
73                                                 58 * Scale.Y + sy,\r
74                                                 new Rectangle(\r
75                                                         (int)(ry * 12 * Scale.X),\r
76                                                         0,\r
77                                                         (int)(12 * Scale.X),\r
78                                                         h\r
79                                                 )\r
80                                         );  // 本当のy座標は88なんだが、なぜか約30のバイアスが掛かる・・・\r
81                                 }\r
82                         }\r
83                         #endregion\r
84                         #region [ スクロール地点の描画 (計算はCActSelect曲リストで行う。スクロール位置と選曲項目の同期のため。)#27648 ]\r
85                         if (this.txScrollPosition != null)\r
86                         {\r
87                                 int py = CDTXMania.Instance.stage選曲.nスクロールバー相対y座標;\r
88                                 if (py <= 336 * Scale.Y - 6 - 8 && py >= 0)\r
89                                 {\r
90                                         this.txScrollPosition.t2D描画(\r
91                                                 CDTXMania.Instance.Device,\r
92                                                 SampleFramework.GameWindowSize.Width - (12 - 3) * Scale.X,\r
93                                                 58 * Scale.Y + py,\r
94                                                 new Rectangle(\r
95                                                         (int)(30 * Scale.X),\r
96                                                         (int)(120 * Scale.Y),\r
97                                                         (int)(6 * Scale.X),\r
98                                                         (int)(8 * Scale.Y)\r
99                                                 )\r
100                                         );\r
101                                 }\r
102                         }\r
103                         #endregion\r
104 \r
105                         return 0;\r
106                 }\r
107 \r
108 \r
109                 // その他\r
110 \r
111                 #region [ private ]\r
112                 //-----------------\r
113                 private CTexture txScrollPosition;\r
114                 private CTexture txScrollBar;\r
115                 //-----------------\r
116                 #endregion\r
117         }\r
118 }\r