+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using SharpDX.Direct3D9;\r
-using FDK;\r
-using DTXMania.Coordinates;\r
-\r
-namespace DTXMania\r
-{\r
- internal class CActオプションパネル : CActivity\r
- {\r
- public STDGBSValue<CXY> Pos;\r
-\r
- EOptionPanelDirection direction;\r
- Rectangle rect;\r
-\r
- readonly Point[] ptDark = new Point[] { new Point(1, 0), new Point(1, 1), new Point(1, 7) };\r
- /// <summary>\r
- /// Off, Hid, Sud, HidSud, SInv, FInv\r
- /// </summary>\r
- readonly Point[] ptSudHidInv = new Point[] { new Point( 0, 0 ), new Point( 0, 2 ), new Point( 0, 1 ), new Point( 0, 3 ), new Point( 4, 7 ), new Point( 5, 7 ) };\r
- readonly Point[] ptLight = new Point[] { new Point(5, 4), new Point(5, 5) };\r
- readonly Point[] ptRandom = new Point[] { new Point(3, 4), new Point(3, 5), new Point(3, 6), new Point(3, 7) };\r
- readonly Point[] ptReverse = new Point[] { new Point(1, 2), new Point(1, 3) };\r
- readonly Point[] ptTight = new Point[] { new Point(4, 4), new Point(4, 5) };\r
- readonly Point[] ptScrollSpeed = new Point[]\r
- {\r
- new Point(2, 0), new Point(2, 1), new Point(2, 2), new Point(2, 3),\r
- new Point(3, 0), new Point(3, 1), new Point(3, 2), new Point(3, 3),\r
- new Point(4, 0), new Point(4, 1), new Point(4, 2), new Point(4, 3),\r
- new Point(5, 0), new Point(5, 1), new Point(5, 2), new Point(5, 3)\r
- };\r
-\r
- private CTexture txオプションパネル;\r
-\r
- public CActオプションパネル(EOptionPanelDirection dir)\r
- {\r
- direction = dir;\r
- rect = new Rectangle();\r
- }\r
-\r
- public override void On非活性化()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- TextureFactory.tテクスチャの解放(ref this.txオプションパネル);\r
- base.On非活性化();\r
- }\r
- }\r
-\r
- public override void OnManagedリソースの作成()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- this.txオプションパネル = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\Screen option panels.png"), false);\r
- base.OnManagedリソースの作成();\r
- }\r
- }\r
-\r
- public override void OnManagedリソースの解放()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- TextureFactory.tテクスチャの解放(ref txオプションパネル);\r
- base.OnManagedリソースの解放();\r
- }\r
- }\r
-\r
- private void IncrementXY(ref int x, ref int y)\r
- {\r
- if (direction == EOptionPanelDirection.Horizontal)\r
- {\r
- x += rect.Width;\r
- }\r
- else if (direction == EOptionPanelDirection.Vertical)\r
- {\r
- y += rect.Height;\r
- }\r
- }\r
-\r
- private void DrawOption(int idx, Point[] pts, int x, int y)\r
- {\r
- if (idx >= pts.Length)\r
- {\r
- idx = pts.Length - 1;\r
- }\r
- if (idx < 0)\r
- {\r
- idx = 0;\r
- }\r
- Point p = pts[idx];\r
- rect.X = p.X * rect.Width;\r
- rect.Y = p.Y * rect.Height;\r
- txオプションパネル.t2D描画(CDTXMania.Instance.Device, x, y, rect);\r
- }\r
-\r
- public override int On進行描画()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- if (this.txオプションパネル != null)\r
- {\r
-\r
- for (EPart part = EPart.Drums; part <= EPart.Bass; ++part)\r
- {\r
- if ( CDTXMania.Instance.ConfigIni.b楽器有効(part) &&\r
- (\r
- (CDTXMania.Instance.r現在のステージ == CDTXMania.Instance.stage演奏画面 && \r
- CDTXMania.Instance.DTX != null && CDTXMania.Instance.DTX.bチップがある[part]) ||\r
- CDTXMania.Instance.r現在のステージ != CDTXMania.Instance.stage演奏画面\r
- )\r
- )\r
- {\r
- int x = Pos[part].X;\r
- int y = Pos[part].Y;\r
-\r
- rect.Width = CDTXMania.Instance.Coordinates.ImgOptionPanel.W;\r
- rect.Height = CDTXMania.Instance.Coordinates.ImgOptionPanel.H;\r
-\r
- // Dark\r
- DrawOption((int)CDTXMania.Instance.ConfigIni.eDark.Value, ptDark, x, y);\r
- IncrementXY(ref x, ref y);\r
-\r
- // ScrollSpeed\r
- DrawOption(CDTXMania.Instance.ConfigIni.nScrollSpeed[part] - 1, ptScrollSpeed, x, y);\r
- IncrementXY(ref x, ref y);\r
-\r
- // Sud Hid Inv\r
- DrawOption((int)CDTXMania.Instance.ConfigIni.eSudHidInv[part].Value, ptSudHidInv, x, y);\r
- IncrementXY(ref x, ref y);\r
-\r
- // Reverse\r
- DrawOption(CDTXMania.Instance.ConfigIni.bReverse[part] ? 1 : 0, ptReverse, x, y);\r
- IncrementXY(ref x, ref y);\r
-\r
- if (part == EPart.Drums)\r
- {\r
- // Tight\r
- DrawOption(CDTXMania.Instance.ConfigIni.bTight ? 1 : 0, ptTight, x, y);\r
- IncrementXY(ref x, ref y);\r
- }\r
-\r
- if (part == EPart.Guitar || part == EPart.Bass)\r
- {\r
- // Random\r
- DrawOption((int)CDTXMania.Instance.ConfigIni.eRandom[part].Value, ptRandom, x, y);\r
- IncrementXY(ref x, ref y);\r
-\r
- // Light\r
- DrawOption(CDTXMania.Instance.ConfigIni.bLight[part].Value ? 1 : 0, ptLight, x, y);\r
- IncrementXY(ref x, ref y);\r
- }\r
- }\r
- }\r
- }\r
- }\r
- return 0;\r
- }\r
- }\r
-}\r