+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using System.Drawing;\r
-using FDK;\r
-using SharpDX;\r
-\r
-using Rectangle = System.Drawing.Rectangle;\r
-using Color = System.Drawing.Color;\r
-using SlimDXKey = SlimDX.DirectInput.Key;\r
-\r
-namespace DTXMania\r
-{\r
- internal class CActConfigKeyAssign : CActivity\r
- {\r
- public bool bキー入力待ちの最中である\r
- {\r
- get\r
- {\r
- return this.bキー入力待ち;\r
- }\r
- }\r
-\r
- public void t開始(EPad pad, string strパッド名)\r
- {\r
- this.pad = pad;\r
- this.strパッド名 = strパッド名;\r
- for (int i = 0; i < CConfigXml.AssignableCodes - 2; i++)\r
- {\r
- this.structReset用KeyAssign[i].InputDevice = CDTXMania.Instance.ConfigIni.KeyAssign[pad][i].入力デバイス;\r
- this.structReset用KeyAssign[i].ID = CDTXMania.Instance.ConfigIni.KeyAssign[pad][i].ID;\r
- this.structReset用KeyAssign[i].Code = CDTXMania.Instance.ConfigIni.KeyAssign[pad][i].コード;\r
- }\r
- }\r
-\r
- public void tEnter押下()\r
- {\r
- if (!this.bキー入力待ち)\r
- {\r
- CDTXMania.Instance.Skin.sound決定音.t再生する();\r
- if (ptr == CConfigXml.AssignableCodes - 2)\r
- {\r
- for (int i = 0; i < CConfigXml.AssignableCodes - 2; i++)\r
- {\r
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][i].CopyFrom(this.structReset用KeyAssign[i]);\r
- }\r
- return;\r
- }\r
- else if (ptr == CConfigXml.AssignableCodes - 1)\r
- {\r
-\r
- CDTXMania.Instance.stageコンフィグ.tアサイン完了通知();\r
- return;\r
- }\r
- this.bキー入力待ち = true;\r
- }\r
- }\r
-\r
- public void OnNext()\r
- {\r
- if (!this.bキー入力待ち)\r
- {\r
- CDTXMania.Instance.Skin.soundカーソル移動音.t再生する();\r
- ptr++;\r
- ptr %= CConfigXml.AssignableCodes;\r
- }\r
- }\r
-\r
- public void OnPrevious()\r
- {\r
- if (!this.bキー入力待ち)\r
- {\r
- CDTXMania.Instance.Skin.soundカーソル移動音.t再生する();\r
- --ptr;\r
- ptr += CConfigXml.AssignableCodes;\r
- ptr %= CConfigXml.AssignableCodes;\r
- }\r
- }\r
-\r
- public override void On活性化()\r
- {\r
- if (base.b活性化してない)\r
- {\r
- this.pad = EPad.Unknown;\r
- this.strパッド名 = "";\r
- this.ptr = 0;\r
- this.bキー入力待ち = false;\r
- this.structReset用KeyAssign = new CKeyAssign[CConfigXml.AssignableCodes - 2];\r
- for (int i = 0; i < this.structReset用KeyAssign.Length; ++i)\r
- {\r
- structReset用KeyAssign[i] = new CKeyAssign(EInputDevice.Unknown, 0, 0);\r
- }\r
-\r
- base.On活性化();\r
- }\r
- }\r
-\r
- public override void On非活性化()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- TextureFactory.tテクスチャの解放(ref this.txカーソル);\r
- TextureFactory.tテクスチャの解放(ref this.txHitKeyダイアログ);\r
- base.On非活性化();\r
- }\r
- }\r
-\r
- public override void OnManagedリソースの作成()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- this.prvFont = new CPrivateFastFont(CSkin.Path(@"Graphics\fonts\mplus-1p-heavy.ttf"), (int)(18 * Scale.Y)); // t項目リストの設定 の前に必要\r
- this.txカーソル = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenConfig menu cursor.png"), false);\r
- this.txHitKeyダイアログ = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenConfig hit key to assign dialog.png"), false);\r
- base.OnManagedリソースの作成();\r
- }\r
- }\r
-\r
- public override void OnManagedリソースの解放()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- TextureFactory.t安全にDisposeする(ref prvFont);\r
- }\r
- }\r
-\r
- public override int On進行描画()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- if (this.bキー入力待ち)\r
- {\r
- if (CDTXMania.Instance.Input管理.Keyboard.bキーが押された((int)SlimDXKey.Escape))\r
- {\r
- CDTXMania.Instance.Skin.sound取消音.t再生する();\r
- this.bキー入力待ち = false;\r
- CDTXMania.Instance.Input管理.tポーリング(CDTXMania.Instance.bApplicationActive, false);\r
- }\r
- else if ((this.tキーチェックとアサイン_Keyboard() || this.tキーチェックとアサイン_MidiIn()) || (this.tキーチェックとアサイン_Joypad() || this.tキーチェックとアサイン_Mouse()))\r
- {\r
- this.bキー入力待ち = false;\r
- CDTXMania.Instance.Input管理.tポーリング(CDTXMania.Instance.bApplicationActive, false);\r
- }\r
- }\r
- else if (CDTXMania.Instance.Input管理.Keyboard.bキーが押された((int)SlimDXKey.Delete))\r
- {\r
- CDTXMania.Instance.Skin.sound決定音.t再生する();\r
- CDTXMania.Instance.ConfigIni.KeyAssign[this.pad][ptr].Reset();\r
- }\r
-\r
- if (this.txカーソル != null)\r
- {\r
- int num = 20;\r
- int num2 = 0x144;\r
- int num3 = 0x3e + (num * (ptr + 1));\r
- this.txカーソル.vc拡大縮小倍率 = new Vector3(1f, 0.75f, 1f);\r
- this.txカーソル.t2D描画(CDTXMania.Instance.Device, num2 * Scale.X, num3 * Scale.Y - 6, new Rectangle(0, 0, (int)(0x10 * Scale.X), (int)(0x20 * Scale.Y)));\r
- num2 += 0x10;\r
- Rectangle rectangle = new Rectangle((int)(8 * Scale.X), 0, (int)(0x10 * Scale.X), (int)(0x20 * Scale.Y));\r
- for (int j = 0; j < 14; j++)\r
- {\r
- this.txカーソル.t2D描画(CDTXMania.Instance.Device, num2 * Scale.X, num3 * Scale.Y - 6, rectangle);\r
- num2 += 0x10;\r
- }\r
- this.txカーソル.t2D描画(CDTXMania.Instance.Device, num2 * Scale.X, num3 * Scale.Y - 6, new Rectangle((int)(0x10 * Scale.X), 0, (int)(0x10 * Scale.X), (int)(0x20 * Scale.Y)));\r
- }\r
-\r
- int num5 = 20;\r
- int x = 0x134;\r
- int y = 0x40;\r
- using (Bitmap bmpStr = prvFont.DrawPrivateFont(this.strパッド名, Color.White, Color.Black))\r
- {\r
- CTexture txStr = TextureFactory.tテクスチャの生成(bmpStr);\r
- txStr.vc拡大縮小倍率 = new Vector3(0.75f, 0.75f, 1f);\r
- txStr.t2D描画(CDTXMania.Instance.Device, x * Scale.X, y * Scale.Y - 20);\r
- TextureFactory.tテクスチャの解放(ref txStr);\r
- }\r
-\r
- y += num5;\r
- string strParam;\r
- bool b強調;\r
- for (int i = 0; i < CConfigXml.AssignableCodes - 2; i++)\r
- {\r
- COptionKeyAssign stkeyassignArray = CDTXMania.Instance.ConfigIni.KeyAssign[this.pad][i];\r
- switch (stkeyassignArray.入力デバイス)\r
- {\r
- case EInputDevice.Keyboard:\r
- this.tアサインコードの描画_Keyboard(i + 1, x + 20, y, stkeyassignArray.ID, stkeyassignArray.コード, ptr == i);\r
- break;\r
-\r
- case EInputDevice.MIDIIn:\r
- this.tアサインコードの描画_MidiIn(i + 1, x + 20, y, stkeyassignArray.ID, stkeyassignArray.コード, ptr == i);\r
- break;\r
-\r
- case EInputDevice.JoyPad:\r
- this.tアサインコードの描画_Joypad(i + 1, x + 20, y, stkeyassignArray.ID, stkeyassignArray.コード, ptr == i);\r
- break;\r
-\r
- case EInputDevice.Mouse:\r
- this.tアサインコードの描画_Mouse(i + 1, x + 20, y, stkeyassignArray.ID, stkeyassignArray.コード, ptr == i);\r
- break;\r
-\r
- default:\r
- strParam = string.Format("{0,2}.", i + 1);\r
- b強調 = (ptr == i);\r
- using (Bitmap bmpStr = b強調 ?\r
- prvFont.DrawPrivateFont(strParam, Color.White, Color.Black, Color.Yellow, Color.OrangeRed) :\r
- prvFont.DrawPrivateFont(strParam, Color.White, Color.Black))\r
- {\r
- CTexture txStr = TextureFactory.tテクスチャの生成(bmpStr, false);\r
- txStr.vc拡大縮小倍率 = new Vector3(0.75f, 0.75f, 1f);\r
- txStr.t2D描画(CDTXMania.Instance.Device, (x + 20) * Scale.X, y * Scale.Y - 20);\r
- TextureFactory.tテクスチャの解放(ref txStr);\r
- }\r
- break;\r
- }\r
- y += num5;\r
- }\r
-\r
- strParam = "Reset All Assign";\r
- b強調 = (ptr == CConfigXml.AssignableCodes - 2);\r
- using (Bitmap bmpStr = b強調 ?\r
- prvFont.DrawPrivateFont(strParam, Color.White, Color.Black, Color.Yellow, Color.OrangeRed) :\r
- prvFont.DrawPrivateFont(strParam, Color.White, Color.Black))\r
- {\r
- CTexture txStr = TextureFactory.tテクスチャの生成(bmpStr, false);\r
- txStr.vc拡大縮小倍率 = new Vector3(0.75f, 0.75f, 1f);\r
- txStr.t2D描画(CDTXMania.Instance.Device, (x + 20) * Scale.X, y * Scale.Y - 20);\r
- TextureFactory.tテクスチャの解放(ref txStr);\r
- }\r
-\r
- y += num5;\r
- strParam = "<< Returnto List";\r
- b強調 = (ptr == CConfigXml.AssignableCodes - 1);\r
- using (Bitmap bmpStr = b強調 ?\r
- prvFont.DrawPrivateFont(strParam, Color.White, Color.Black, Color.Yellow, Color.OrangeRed) :\r
- prvFont.DrawPrivateFont(strParam, Color.White, Color.Black))\r
- {\r
- CTexture txStr = TextureFactory.tテクスチャの生成(bmpStr, false);\r
- txStr.vc拡大縮小倍率 = new Vector3(0.75f, 0.75f, 1f);\r
- txStr.t2D描画(CDTXMania.Instance.Device, (x + 20) * Scale.X, y * Scale.Y - 20);\r
- TextureFactory.tテクスチャの解放(ref txStr);\r
- }\r
-\r
- if (this.bキー入力待ち && (this.txHitKeyダイアログ != null))\r
- {\r
- this.txHitKeyダイアログ.t2D描画(CDTXMania.Instance.Device, 0x185 * Scale.X, 0xd7 * Scale.Y);\r
- }\r
- }\r
- return 0;\r
- }\r
-\r
-\r
- // その他\r
- [StructLayout(LayoutKind.Sequential)]\r
- private struct STKEYLABEL\r
- {\r
- public int nCode;\r
- public string strLabel;\r
- public STKEYLABEL(int nCode, string strLabel)\r
- {\r
- this.nCode = nCode;\r
- this.strLabel = strLabel;\r
- }\r
- }\r
-\r
- private bool bキー入力待ち;\r
-\r
- private STKEYLABEL[] KeyLabel = new STKEYLABEL[] {\r
- #region [ *** ]\r
- new STKEYLABEL((int)SlimDXKey.Escape, "[ESC]"),\r
- new STKEYLABEL((int)SlimDXKey.D1, "[ 1 ]"),\r
- new STKEYLABEL((int)SlimDXKey.D2, "[ 2 ]"),\r
- new STKEYLABEL((int)SlimDXKey.D3, "[ 3 ]"),\r
- new STKEYLABEL((int)SlimDXKey.D4, "[ 4 ]"),\r
- new STKEYLABEL((int)SlimDXKey.D5, "[ 5 ]"),\r
- new STKEYLABEL((int)SlimDXKey.D6, "[ 6 ]"),\r
- new STKEYLABEL((int)SlimDXKey.D7, "[ 7 ]"),\r
- new STKEYLABEL((int)SlimDXKey.D8, "[ 8 ]"),\r
- new STKEYLABEL((int)SlimDXKey.D9, "[ 9 ]"),\r
- new STKEYLABEL((int)SlimDXKey.D0, "[ 0 ]"),\r
- new STKEYLABEL((int)SlimDXKey.Minus, "[ - ]"),\r
- new STKEYLABEL((int)SlimDXKey.Equals, "[ = ]"),\r
- new STKEYLABEL((int)SlimDXKey.Backspace, "[BSC]"),\r
- new STKEYLABEL((int)SlimDXKey.Tab, "[TAB]"),\r
- new STKEYLABEL((int)SlimDXKey.Q, "[ Q ]"),\r
- new STKEYLABEL((int)SlimDXKey.W, "[ W ]"),\r
- new STKEYLABEL((int)SlimDXKey.E, "[ E ]"),\r
- new STKEYLABEL((int)SlimDXKey.R, "[ R ]"),\r
- new STKEYLABEL((int)SlimDXKey.T, "[ T ]"),\r
- new STKEYLABEL((int)SlimDXKey.Y, "[ Y ]"),\r
- new STKEYLABEL((int)SlimDXKey.U, "[ U ]"),\r
- new STKEYLABEL((int)SlimDXKey.I, "[ I ]"),\r
- new STKEYLABEL((int)SlimDXKey.O, "[ O ]"),\r
- new STKEYLABEL((int)SlimDXKey.P, "[ P ]"),\r
- new STKEYLABEL((int)SlimDXKey.LeftBracket, "[ [ ]"),\r
- new STKEYLABEL((int)SlimDXKey.RightBracket, "[ ] ]"),\r
- new STKEYLABEL((int)SlimDXKey.Return, "[Enter]"),\r
- new STKEYLABEL((int)SlimDXKey.LeftControl, "[L-Ctrl]"),\r
- new STKEYLABEL((int)SlimDXKey.A, "[ A ]"),\r
- new STKEYLABEL((int)SlimDXKey.S, "[ S ]"),\r
- new STKEYLABEL((int)SlimDXKey.D, "[ D ]"),\r
- new STKEYLABEL((int)SlimDXKey.F, "[ F ]"),\r
- new STKEYLABEL((int)SlimDXKey.G, "[ G ]"),\r
- new STKEYLABEL((int)SlimDXKey.H, "[ H ]"),\r
- new STKEYLABEL((int)SlimDXKey.J, "[ J ]"),\r
- new STKEYLABEL((int)SlimDXKey.K, "[ K ]"),\r
- new STKEYLABEL((int)SlimDXKey.L, "[ L ]"),\r
- new STKEYLABEL((int)SlimDXKey.Semicolon, "[ ; ]"),\r
- new STKEYLABEL((int)SlimDXKey.Apostrophe, "[ ' ]"),\r
- new STKEYLABEL((int)SlimDXKey.Grave, "[ ` ]"),\r
- new STKEYLABEL((int)SlimDXKey.LeftShift, "[L-Shift]"),\r
- new STKEYLABEL((int)SlimDXKey.Backslash, @"[ \]"),\r
- new STKEYLABEL((int)SlimDXKey.Z, "[ Z ]"),\r
- new STKEYLABEL((int)SlimDXKey.X, "[ X ]"),\r
- new STKEYLABEL((int)SlimDXKey.C, "[ C ]"),\r
- new STKEYLABEL((int)SlimDXKey.V, "[ V ]"),\r
- new STKEYLABEL((int)SlimDXKey.B, "[ B ]"),\r
- new STKEYLABEL((int)SlimDXKey.N, "[ N ]"),\r
- new STKEYLABEL((int)SlimDXKey.M, "[ M ]"),\r
- new STKEYLABEL((int)SlimDXKey.Comma, "[ , ]"),\r
- new STKEYLABEL((int)SlimDXKey.Period, "[ . ]"),\r
- new STKEYLABEL((int)SlimDXKey.Slash, "[ / ]"),\r
- new STKEYLABEL((int)SlimDXKey.RightShift, "[R-Shift]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPadStar, "[ * ]"),\r
- new STKEYLABEL((int)SlimDXKey.LeftAlt, "[L-Alt]"),\r
- new STKEYLABEL((int)SlimDXKey.Space, "[Space]"),\r
- new STKEYLABEL((int)SlimDXKey.CapsLock, "[CAPS]"),\r
- new STKEYLABEL((int)SlimDXKey.F1, "[F1]"),\r
- new STKEYLABEL((int)SlimDXKey.F2, "[F2]"),\r
- new STKEYLABEL((int)SlimDXKey.F3, "[F3]"),\r
- new STKEYLABEL((int)SlimDXKey.F4, "[F4]"),\r
- new STKEYLABEL((int)SlimDXKey.F5, "[F5]"),\r
- new STKEYLABEL((int)SlimDXKey.F6, "[F6]"),\r
- new STKEYLABEL((int)SlimDXKey.F7, "[F7]"),\r
- new STKEYLABEL((int)SlimDXKey.F8, "[F8]"),\r
- new STKEYLABEL((int)SlimDXKey.F9, "[F9]"),\r
- new STKEYLABEL((int)SlimDXKey.F10, "[F10]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberLock, "[NumLock]"),\r
- new STKEYLABEL((int)SlimDXKey.ScrollLock, "[Scroll]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPad7, "[NPad7]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPad8, "[NPad8]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPad9, "[NPad9]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPadMinus, "[NPad-]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPad4, "[NPad4]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPad5, "[NPad5]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPad6, "[NPad6]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPadPlus, "[NPad+]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPad1, "[NPad1]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPad2, "[NPad2]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPad3, "[NPad3]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPad0, "[NPad0]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPadPeriod, "[NPad.]"),\r
- new STKEYLABEL((int)SlimDXKey.F11, "[F11]"),\r
- new STKEYLABEL((int)SlimDXKey.F12, "[F12]"),\r
- new STKEYLABEL((int)SlimDXKey.F13, "[F13]"),\r
- new STKEYLABEL((int)SlimDXKey.F14, "[F14]"),\r
- new STKEYLABEL((int)SlimDXKey.F15, "[F15]"),\r
- new STKEYLABEL((int)SlimDXKey.Kana, "[Kana]"),\r
- new STKEYLABEL((int)SlimDXKey.AbntC1, "[ ? ]"),\r
- new STKEYLABEL((int)SlimDXKey.Convert, "[Henkan]"),\r
- new STKEYLABEL((int)SlimDXKey.NoConvert, "[MuHenkan]"),\r
- new STKEYLABEL((int)SlimDXKey.Backslash, @"[ \ ]"),\r
- new STKEYLABEL((int)SlimDXKey.AbntC2, "[NPad.]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPadEquals, "[NPad=]"),\r
- new STKEYLABEL((int)SlimDXKey.PreviousTrack, "[ ^ ]"), // DIK_CIRCUMFLEX = 0x90\r
- new STKEYLABEL((int)SlimDXKey.AT, "[ @ ]"),\r
- new STKEYLABEL((int)SlimDXKey.Colon, "[ : ]"),\r
- new STKEYLABEL((int)SlimDXKey.Underline, "[ _ ]"),\r
- new STKEYLABEL((int)SlimDXKey.Kanji, "[Kanji]"),\r
- new STKEYLABEL((int)SlimDXKey.Stop, "[Stop]"),\r
- new STKEYLABEL((int)SlimDXKey.AX, "[AX]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPadEnter, "[NPEnter]"),\r
- new STKEYLABEL((int)SlimDXKey.RightControl, "[R-Ctrl]"),\r
- new STKEYLABEL((int)SlimDXKey.Mute, "[Mute]"),\r
- new STKEYLABEL((int)SlimDXKey.Calculator, "[Calc]"),\r
- new STKEYLABEL((int)SlimDXKey.PlayPause, "[PlayPause]"),\r
- new STKEYLABEL((int)SlimDXKey.MediaStop, "[MediaStop]"),\r
- new STKEYLABEL((int)SlimDXKey.VolumeDown, "[Volume-]"),\r
- new STKEYLABEL((int)SlimDXKey.VolumeUp, "[Volume+]"),\r
- new STKEYLABEL((int)SlimDXKey.WebHome, "[WebHome]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPadComma, "[NPad,]"),\r
- new STKEYLABEL((int)SlimDXKey.NumberPadSlash, "[ / ]"),\r
- new STKEYLABEL((int)SlimDXKey.PrintScreen, "[PrtScn]"),\r
- new STKEYLABEL((int)SlimDXKey.RightAlt, "[R-Alt]"),\r
- new STKEYLABEL((int)SlimDXKey.Pause, "[Pause]"),\r
- new STKEYLABEL((int)SlimDXKey.Home, "[Home]"),\r
- new STKEYLABEL((int)SlimDXKey.UpArrow, "[Up]"),\r
- new STKEYLABEL((int)SlimDXKey.PageUp, "[PageUp]"),\r
- new STKEYLABEL((int)SlimDXKey.LeftArrow, "[Left]"),\r
- new STKEYLABEL((int)SlimDXKey.RightArrow, "[Right]"),\r
- new STKEYLABEL((int)SlimDXKey.End, "[End]"),\r
- new STKEYLABEL((int)SlimDXKey.DownArrow, "[Down]"),\r
- new STKEYLABEL((int)SlimDXKey.PageDown, "[PageDown]"),\r
- new STKEYLABEL((int)SlimDXKey.Insert, "[Insert]"),\r
- new STKEYLABEL((int)SlimDXKey.Delete, "[Delete]"),\r
- new STKEYLABEL((int)SlimDXKey.LeftWindowsKey, "[L-Win]"),\r
- new STKEYLABEL((int)SlimDXKey.RightWindowsKey, "[R-Win]"),\r
- new STKEYLABEL((int)SlimDXKey.Applications, "[APP]"),\r
- new STKEYLABEL((int)SlimDXKey.Power, "[Power]"),\r
- new STKEYLABEL((int)SlimDXKey.Sleep, "[Sleep]"),\r
- new STKEYLABEL((int)SlimDXKey.Wake, "[Wake]"),\r
- #endregion\r
- };\r
-\r
- private EPad pad;\r
- int ptr;\r
- private CKeyAssign[] structReset用KeyAssign;\r
- private string strパッド名;\r
- private CTexture txHitKeyダイアログ;\r
- private CTexture txカーソル;\r
- private CPrivateFastFont prvFont;\r
-\r
- private void tアサインコードの描画_Joypad(int line, int x, int y, int nID, int nCode, bool b強調)\r
- {\r
- string str = string.Format("{0,2}. ", line);\r
- switch (nCode)\r
- {\r
- case 0:\r
- str += "Left";\r
- break;\r
-\r
- case 1:\r
- str += "Right";\r
- break;\r
-\r
- case 2:\r
- str += "Up";\r
- break;\r
-\r
- case 3:\r
- str += "Down";\r
- break;\r
-\r
- case 4:\r
- str += "Forward";\r
- break;\r
-\r
- case 5:\r
- str += "Back";\r
- break;\r
-\r
- default:\r
- if ((6 <= nCode) && (nCode < 6 + 128)) // other buttons (128 types)\r
- {\r
- str += string.Format("Button{0}", nCode - 5);\r
- }\r
- else if ((6 + 128 <= nCode) && (nCode < 6 + 128 + 8)) // POV HAT ( 8 types; 45 degrees per HATs)\r
- {\r
- str += string.Format("POV {0}", (nCode - 6 - 128) * 45);\r
- }\r
- else\r
- {\r
- str += string.Format("Code{0}", nCode);\r
- }\r
- break;\r
- }\r
- using (Bitmap bmpStr = b強調 ?\r
- prvFont.DrawPrivateFont(str, Color.White, Color.Black, Color.Yellow, Color.OrangeRed) :\r
- prvFont.DrawPrivateFont(str, Color.White, Color.Black))\r
- {\r
- CTexture txStr = TextureFactory.tテクスチャの生成(bmpStr, false);\r
- txStr.vc拡大縮小倍率 = new Vector3(0.75f, 0.75f, 1f);\r
- txStr.t2D描画(CDTXMania.Instance.Device, x * Scale.X, y * Scale.Y - 20);\r
- TextureFactory.tテクスチャの解放(ref txStr);\r
- }\r
- }\r
-\r
- private void tアサインコードの描画_Keyboard(int line, int x, int y, int nID, int nCode, bool b強調)\r
- {\r
- string str = null;\r
- foreach (STKEYLABEL stkeylabel in this.KeyLabel)\r
- {\r
- if (stkeylabel.nCode == nCode)\r
- {\r
- str = string.Format("{0,2}. Key {1}", line, stkeylabel.strLabel);\r
- break;\r
- }\r
- }\r
- if (str == null)\r
- {\r
- str = string.Format("{0,2}. Key 0x{1:X2}", line, nCode);\r
- }\r
-\r
- using (Bitmap bmpStr = b強調 ?\r
- prvFont.DrawPrivateFont(str, Color.White, Color.Black, Color.Yellow, Color.OrangeRed) :\r
- prvFont.DrawPrivateFont(str, Color.White, Color.Black))\r
- {\r
- CTexture txStr = TextureFactory.tテクスチャの生成(bmpStr, false);\r
- txStr.vc拡大縮小倍率 = new Vector3(0.75f, 0.75f, 1f);\r
- txStr.t2D描画(CDTXMania.Instance.Device, x * Scale.X, y * Scale.Y - 20);\r
- TextureFactory.tテクスチャの解放(ref txStr);\r
- }\r
- }\r
-\r
- private void tアサインコードの描画_MidiIn(int line, int x, int y, int nID, int nCode, bool b強調)\r
- {\r
- string str = string.Format("{0,2}. MidiIn #{1} code.{2}", line, nID, nCode);\r
- using (Bitmap bmpStr = b強調 ?\r
- prvFont.DrawPrivateFont(str, Color.White, Color.Black, Color.Yellow, Color.OrangeRed) :\r
- prvFont.DrawPrivateFont(str, Color.White, Color.Black))\r
- {\r
- CTexture txStr = TextureFactory.tテクスチャの生成(bmpStr, false);\r
- txStr.vc拡大縮小倍率 = new Vector3(0.75f, 0.75f, 1f);\r
- txStr.t2D描画(CDTXMania.Instance.Device, x * Scale.X, y * Scale.Y - 20);\r
- TextureFactory.tテクスチャの解放(ref txStr);\r
- }\r
- }\r
-\r
- private void tアサインコードの描画_Mouse(int line, int x, int y, int nID, int nCode, bool b強調)\r
- {\r
- string str = string.Format("{0,2}. Mouse Button{1}", line, nCode);\r
- using (Bitmap bmpStr = b強調 ?\r
- prvFont.DrawPrivateFont(str, Color.White, Color.Black, Color.Yellow, Color.OrangeRed) :\r
- prvFont.DrawPrivateFont(str, Color.White, Color.Black))\r
- {\r
- CTexture txStr = TextureFactory.tテクスチャの生成(bmpStr, false);\r
- txStr.vc拡大縮小倍率 = new Vector3(0.75f, 0.75f, 1f);\r
- txStr.t2D描画(CDTXMania.Instance.Device, x * Scale.X, y * Scale.Y - 20);\r
- TextureFactory.tテクスチャの解放(ref txStr);\r
- }\r
- }\r
-\r
- private bool tキーチェックとアサイン_Joypad()\r
- {\r
- foreach (IInputDevice device in CDTXMania.Instance.Input管理.list入力デバイス)\r
- {\r
- if (device.e入力デバイス種別 == E入力デバイス種別.Joystick)\r
- {\r
- for (int i = 0; i < 6 + 0x80 + 8; i++) // +6 for Axis, +8 for HAT\r
- {\r
- if (device.bキーが押された(i))\r
- {\r
- CDTXMania.Instance.Skin.sound決定音.t再生する();\r
-\r
- // #xxxxx: 2017.5.7 from: アサイン済みのキーと今回割り当てるキーが同じである場合は、削除されないようコードを未使用値(ここでは-1)にする。\r
- if (i == CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].コード)\r
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].コード = -1;\r
-\r
- CDTXMania.Instance.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する(EInputDevice.JoyPad, device.ID, i);\r
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].入力デバイス = EInputDevice.JoyPad;\r
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].ID = device.ID;\r
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].コード = i;\r
- return true;\r
- }\r
- }\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- private bool tキーチェックとアサイン_Keyboard()\r
- {\r
- for( int i = 0; i < 256; i++ )\r
- {\r
- if( i != (int) SlimDXKey.Escape &&\r
- i != (int) SlimDXKey.UpArrow &&\r
- i != (int) SlimDXKey.DownArrow &&\r
- i != (int) SlimDXKey.LeftArrow &&\r
- i != (int) SlimDXKey.RightArrow &&\r
- i != (int) SlimDXKey.Delete &&\r
- CDTXMania.Instance.Input管理.Keyboard.bキーが押された( i ) )\r
- {\r
- CDTXMania.Instance.Skin.sound決定音.t再生する();\r
-\r
- // #xxxxx: 2017.5.7 from: アサイン済みのキーと今回割り当てるキーが同じである場合は、削除されないようコードを未使用値(ここでは-1)にする。\r
- if( i == CDTXMania.Instance.ConfigIni.KeyAssign[ pad ][ ptr ].コード )\r
- CDTXMania.Instance.ConfigIni.KeyAssign[ pad ][ ptr ].コード = -1;\r
-\r
- CDTXMania.Instance.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する( EInputDevice.Keyboard, 0, i );\r
-\r
- CDTXMania.Instance.ConfigIni.KeyAssign[ pad ][ ptr ].入力デバイス = EInputDevice.Keyboard;\r
- CDTXMania.Instance.ConfigIni.KeyAssign[ pad ][ ptr ].ID = 0;\r
- CDTXMania.Instance.ConfigIni.KeyAssign[ pad ][ ptr ].コード = i;\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- private bool tキーチェックとアサイン_MidiIn()\r
- {\r
- foreach (IInputDevice device in CDTXMania.Instance.Input管理.list入力デバイス)\r
- {\r
- if (device.e入力デバイス種別 == E入力デバイス種別.MidiIn)\r
- {\r
- for (int i = 0; i < 0x100; i++)\r
- {\r
- if (device.bキーが押された(i))\r
- {\r
- CDTXMania.Instance.Skin.sound決定音.t再生する();\r
- CDTXMania.Instance.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する(EInputDevice.MIDIIn, device.ID, i);\r
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].入力デバイス = EInputDevice.MIDIIn;\r
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].ID = device.ID;\r
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].コード = i;\r
- return true;\r
- }\r
- }\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- private bool tキーチェックとアサイン_Mouse()\r
- {\r
- for (int i = 0; i < 8; i++)\r
- {\r
- if (CDTXMania.Instance.Input管理.Mouse.bキーが押された(i))\r
- {\r
- CDTXMania.Instance.Skin.sound決定音.t再生する();\r
- CDTXMania.Instance.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する(EInputDevice.Mouse, 0, i);\r
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].入力デバイス = EInputDevice.Mouse;\r
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].ID = 0;\r
- CDTXMania.Instance.ConfigIni.KeyAssign[pad][ptr].コード = i;\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
- }\r
-}\r