diff --git a/OpenTaiko/src/Common/CConfigIni.cs b/OpenTaiko/src/Common/CConfigIni.cs index ed5f6705..854dda9a 100644 --- a/OpenTaiko/src/Common/CConfigIni.cs +++ b/OpenTaiko/src/Common/CConfigIni.cs @@ -3313,10 +3313,10 @@ namespace OpenTaiko { private void ProcessGuidSection(string key, string value) { switch (key) { case "JoystickID": - this.tJoystickIDの取得(value); + this.GetJoystickID(value); break; case "GamepadID": - this.tGamepadIDの取得(value); + this.GetGamepadID(value); break; } } @@ -3569,8 +3569,8 @@ namespace OpenTaiko { private bool bConfigIniFileExists; private string ConfigIniFileName; - private void tJoystickIDの取得(string strキー記述) { - string[] strArray = strキー記述.Split(new char[] { ',' }); + private void GetJoystickID(string keyDescription) { + string[] strArray = keyDescription.Split(new char[] { ',' }); if (strArray.Length >= 2) { int result = 0; if ((int.TryParse(strArray[0], out result) && (result >= 0)) && (result <= 9)) { @@ -3583,8 +3583,8 @@ namespace OpenTaiko { } } - private void tGamepadIDの取得(string strキー記述) { - string[] strArray = strキー記述.Split(new char[] { ',' }); + private void GetGamepadID(string keyDescription) { + string[] strArray = keyDescription.Split(new char[] { ',' }); if (strArray.Length >= 2) { int result = 0; if ((int.TryParse(strArray[0], out result) && (result >= 0)) && (result <= 9)) { diff --git a/OpenTaiko/src/Common/CDTXVersion.cs b/OpenTaiko/src/Common/CDTXVersion.cs deleted file mode 100644 index c206681c..00000000 --- a/OpenTaiko/src/Common/CDTXVersion.cs +++ /dev/null @@ -1,175 +0,0 @@ -using System.Text; - -namespace OpenTaiko { - /// - /// DTXMania のバージョン。 - /// 例1:"078b" → 整数部=078, 小数部=2000000 ('英字'+'yymmdd') - /// 例2:"078a(100124)" → 整数部=078, 小数部=1100124 ('英字'+'yymmdd') - /// - public class CDTXVersion { - // Properties - - /// - /// バージョンが未知のときに true になる。 - /// - public bool Unknown { - get; - private set; - } - - /// - /// DTXMania のバージョンの整数部を表す。 - /// 例1:"078b" → 整数部=078 - /// 例2:"078a(100124)" → 整数部=078 - /// - public int n整数部; - - /// - /// DTXMania のバージョンの小数部を表す。 - /// 小数部は、'英字(0~26) * 1000000 + 日付(yymmdd)' の式で表される整数。 - /// 例1:"078b" → 小数部=2000000 - /// 例2:"078a(100124)" → 小数部=1100124 - /// - public int n小数部; - - - // Constructor - - public CDTXVersion() { - this.n整数部 = 0; - this.n小数部 = 0; - this.Unknown = true; - } - public CDTXVersion(int n整数部) { - this.n整数部 = n整数部; - this.n小数部 = 0; - this.Unknown = false; - } - public CDTXVersion(string Version) { - this.n整数部 = 0; - this.n小数部 = 0; - this.Unknown = true; - - if (Version.ToLower().Equals("unknown")) { - this.Unknown = true; - } else { - int num = 0; - int length = Version.Length; - if ((num < length) && char.IsDigit(Version[num])) { - // 整数部 取得 - while ((num < length) && char.IsDigit(Version[num])) { - this.n整数部 = (this.n整数部 * 10) + CDTXVersion.DIG10.IndexOf(Version[num++]); - } - - // 小数部(1)英字部分 取得 - while ((num < length) && ((Version[num] == ' ') || (Version[num] == '('))) { - num++; - } - if ((num < length) && (CDTXVersion.DIG36.IndexOf(Version[num]) >= 10)) { - this.n小数部 = CDTXVersion.DIG36.IndexOf(Version[num++]) - 10; - if (this.n小数部 >= 0x1a) { - this.n小数部 -= 0x1a; - } - this.n小数部++; - } - - // 小数部(2)日付部分(yymmdd) 取得 - while ((num < length) && ((Version[num] == ' ') || (Version[num] == '('))) { - num++; - } - for (int i = 0; i < 6; i++) { - this.n小数部 *= 10; - if ((num < length) && char.IsDigit(Version[num])) { - this.n小数部 += CDTXVersion.DIG10.IndexOf(Version[num]); - } - num++; - } - this.Unknown = false; - } else { - this.Unknown = true; - } - } - } - public CDTXVersion(int n整数部, int n小数部) { - this.n整数部 = n整数部; - this.n小数部 = n小数部; - this.Unknown = false; - } - - - // メソッド - - public string toString() { - var result = new StringBuilder(32); - - // 整数部 - result.Append(this.n整数部.ToString("000")); - - // 英字部分(あれば) - if (this.n小数部 >= 1000000) { - int n英字 = Math.Min(this.n小数部 / 1000000, 26); // 1~26 - result.Append(CDTXVersion.DIG36[10 + (n英字 - 1)]); - } - - // 日付部分(あれば) - int n日付 = this.n小数部 % 1000000; - if (n日付 > 0) { - result.Append('('); - result.Append(n日付.ToString("000000")); - result.Append(')'); - } - - return result.ToString(); - } - - public static bool operator ==(CDTXVersion x, CDTXVersion y) { - return (((x.n整数部 == y.n整数部) && (x.n小数部 == y.n小数部)) && (x.Unknown == y.Unknown)); - } - public static bool operator >(CDTXVersion x, CDTXVersion y) { - return ((x.n整数部 > y.n整数部) || ((x.n整数部 == y.n整数部) && (x.n小数部 > y.n小数部))); - } - public static bool operator >=(CDTXVersion x, CDTXVersion y) { - return ((x.n整数部 > y.n整数部) || ((x.n整数部 == y.n整数部) && (x.n小数部 >= y.n小数部))); - } - public static bool operator !=(CDTXVersion x, CDTXVersion y) { - if ((x.n整数部 == y.n整数部) && (x.n小数部 == y.n小数部)) { - return (x.Unknown != y.Unknown); - } - return true; - } - public static bool operator <(CDTXVersion x, CDTXVersion y) { - return ((x.n整数部 < y.n整数部) || ((x.n整数部 == y.n整数部) && (x.n小数部 < y.n小数部))); - } - public static bool operator <=(CDTXVersion x, CDTXVersion y) { - return ((x.n整数部 < y.n整数部) || ((x.n整数部 == y.n整数部) && (x.n小数部 <= y.n小数部))); - } - public override bool Equals(object obj) // 2011.1.3 yyagi: warningを無くすために追加 - { - if (obj == null) { - return false; - } - if (this.GetType() != obj.GetType()) { - return false; - } - CDTXVersion objCDTXVersion = (CDTXVersion)obj; - if (!int.Equals(this.n整数部, objCDTXVersion.n整数部) || !int.Equals(this.n小数部, objCDTXVersion.n小数部)) { - return false; - } - return true; - } - public override int GetHashCode() // 2011.1.3 yyagi: warningを無くすために追加 - { - string v = this.toString(); - return v.GetHashCode(); - } - - // その他 - - #region [ private ] - //----------------- - private const string DIG36 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; - private const string DIG10 = "0123456789"; - //----------------- - #endregion - } -} diff --git a/OpenTaiko/src/Common/CPad.cs b/OpenTaiko/src/Common/CPad.cs index eefd86ee..62fa3d80 100644 --- a/OpenTaiko/src/Common/CPad.cs +++ b/OpenTaiko/src/Common/CPad.cs @@ -5,7 +5,7 @@ namespace OpenTaiko { public class CPad { // Properties - internal STHIT st検知したデバイス; + internal STHIT detectedDevice; [StructLayout(LayoutKind.Sequential)] internal struct STHIT { public bool Keyboard; @@ -21,24 +21,20 @@ namespace OpenTaiko { } } - // Constructor - internal CPad(CConfigIni configIni, CInputManager mgrInput) { this.rConfigIni = configIni; - this.rInput管理 = mgrInput; - this.st検知したデバイス.Clear(); + this.inputManager = mgrInput; + this.detectedDevice.Clear(); } - - // メソッド - + // Methods public List GetEvents(EInstrumentPad part, EPad pad) { CConfigIni.CKeyAssign.STKEYASSIGN[] stkeyassignArray = this.rConfigIni.KeyAssign[(int)part][(int)pad]; List list = new List(); // すべての入力デバイスについて… - foreach (IInputDevice device in this.rInput管理.InputDevices) { + foreach (IInputDevice device in this.inputManager.InputDevices) { if ((device.InputEvents != null) && (device.InputEvents.Count != 0)) { foreach (STInputEvent event2 in device.InputEvents) { for (int i = 0; i < stkeyassignArray.Length; i++) { @@ -46,41 +42,40 @@ namespace OpenTaiko { case EInputDevice.Keyboard: if ((device.CurrentType == InputDeviceType.Keyboard) && (event2.nKey == stkeyassignArray[i].Code)) { list.Add(event2); - this.st検知したデバイス.Keyboard = true; + this.detectedDevice.Keyboard = true; } break; case EInputDevice.MIDIInput: if (((device.CurrentType == InputDeviceType.MidiIn) && (device.ID == stkeyassignArray[i].ID)) && (event2.nKey == stkeyassignArray[i].Code)) { list.Add(event2); - this.st検知したデバイス.MIDIIN = true; + this.detectedDevice.MIDIIN = true; } break; case EInputDevice.Joypad: if (((device.CurrentType == InputDeviceType.Joystick) && (device.ID == stkeyassignArray[i].ID)) && (event2.nKey == stkeyassignArray[i].Code)) { list.Add(event2); - this.st検知したデバイス.Joypad = true; + this.detectedDevice.Joypad = true; } break; case EInputDevice.Gamepad: if (((device.CurrentType == InputDeviceType.Gamepad) && (device.ID == stkeyassignArray[i].ID)) && (event2.nKey == stkeyassignArray[i].Code)) { list.Add(event2); - this.st検知したデバイス.Gamepad = true; + this.detectedDevice.Gamepad = true; } break; case EInputDevice.Mouse: if ((device.CurrentType == InputDeviceType.Mouse) && (event2.nKey == stkeyassignArray[i].Code)) { list.Add(event2); - this.st検知したデバイス.Mouse = true; + this.detectedDevice.Mouse = true; } break; } } } - continue; } } return list; @@ -92,47 +87,47 @@ namespace OpenTaiko { for (int i = 0; i < stkeyassignArray.Length; i++) { switch (stkeyassignArray[i].InputDevice) { case EInputDevice.Keyboard: - if (!this.rInput管理.Keyboard.KeyPressed(stkeyassignArray[i].Code)) + if (!this.inputManager.Keyboard.KeyPressed(stkeyassignArray[i].Code)) break; - this.st検知したデバイス.Keyboard = true; + this.detectedDevice.Keyboard = true; return true; case EInputDevice.MIDIInput: { - IInputDevice device2 = this.rInput管理.MidiIn(stkeyassignArray[i].ID); + IInputDevice device2 = this.inputManager.MidiIn(stkeyassignArray[i].ID); if ((device2 == null) || !device2.KeyPressed(stkeyassignArray[i].Code)) break; - this.st検知したデバイス.MIDIIN = true; + this.detectedDevice.MIDIIN = true; return true; } case EInputDevice.Joypad: { if (!this.rConfigIni.dicJoystick.ContainsKey(stkeyassignArray[i].ID)) break; - IInputDevice device = this.rInput管理.Joystick(stkeyassignArray[i].ID); + IInputDevice device = this.inputManager.Joystick(stkeyassignArray[i].ID); if ((device == null) || !device.KeyPressed(stkeyassignArray[i].Code)) break; - this.st検知したデバイス.Joypad = true; + this.detectedDevice.Joypad = true; return true; } case EInputDevice.Gamepad: { if (!this.rConfigIni.dicJoystick.ContainsKey(stkeyassignArray[i].ID)) break; - IInputDevice device = this.rInput管理.Gamepad(stkeyassignArray[i].ID); + IInputDevice device = this.inputManager.Gamepad(stkeyassignArray[i].ID); if ((device == null) || !device.KeyPressed(stkeyassignArray[i].Code)) break; - this.st検知したデバイス.Gamepad = true; + this.detectedDevice.Gamepad = true; return true; } case EInputDevice.Mouse: - if (!this.rInput管理.Mouse.KeyPressed(stkeyassignArray[i].Code)) + if (!this.inputManager.Mouse.KeyPressed(stkeyassignArray[i].Code)) break; - this.st検知したデバイス.Mouse = true; + this.detectedDevice.Mouse = true; return true; } } @@ -151,27 +146,27 @@ namespace OpenTaiko { } return true; } - public bool b押されている(EInstrumentPad part, EPad pad) { + public bool IsPressing(EInstrumentPad part, EPad pad) { if (part != EInstrumentPad.Unknown) { CConfigIni.CKeyAssign.STKEYASSIGN[] stkeyassignArray = this.rConfigIni.KeyAssign[(int)part][(int)pad]; for (int i = 0; i < stkeyassignArray.Length; i++) { switch (stkeyassignArray[i].InputDevice) { case EInputDevice.Keyboard: - if (!this.rInput管理.Keyboard.KeyPressing(stkeyassignArray[i].Code)) { + if (!this.inputManager.Keyboard.KeyPressing(stkeyassignArray[i].Code)) { break; } - this.st検知したデバイス.Keyboard = true; + this.detectedDevice.Keyboard = true; return true; case EInputDevice.Joypad: { if (!this.rConfigIni.dicJoystick.ContainsKey(stkeyassignArray[i].ID)) { break; } - IInputDevice device = this.rInput管理.Joystick(stkeyassignArray[i].ID); + IInputDevice device = this.inputManager.Joystick(stkeyassignArray[i].ID); if ((device == null) || !device.KeyPressing(stkeyassignArray[i].Code)) { break; } - this.st検知したデバイス.Joypad = true; + this.detectedDevice.Joypad = true; return true; } @@ -179,27 +174,27 @@ namespace OpenTaiko { if (!this.rConfigIni.dicJoystick.ContainsKey(stkeyassignArray[i].ID)) { break; } - IInputDevice device = this.rInput管理.Gamepad(stkeyassignArray[i].ID); + IInputDevice device = this.inputManager.Gamepad(stkeyassignArray[i].ID); if ((device == null) || !device.KeyPressing(stkeyassignArray[i].Code)) { break; } - this.st検知したデバイス.Gamepad = true; + this.detectedDevice.Gamepad = true; return true; } case EInputDevice.Mouse: - if (!this.rInput管理.Mouse.KeyPressing(stkeyassignArray[i].Code)) { + if (!this.inputManager.Mouse.KeyPressing(stkeyassignArray[i].Code)) { break; } - this.st検知したデバイス.Mouse = true; + this.detectedDevice.Mouse = true; return true; } } } return false; } - public bool b押されているGB(EPad pad) { - if (!this.b押されている(EInstrumentPad.Guitar, pad)) { - return this.b押されている(EInstrumentPad.Bass, pad); + public bool IsPressingGB(EPad pad) { + if (!this.IsPressing(EInstrumentPad.Guitar, pad)) { + return this.IsPressing(EInstrumentPad.Bass, pad); } return true; } @@ -210,7 +205,7 @@ namespace OpenTaiko { #region [ private ] //----------------- private CConfigIni rConfigIni; - private CInputManager rInput管理; + private CInputManager inputManager; //----------------- #endregion } diff --git a/OpenTaiko/src/Common/CTextConsole.cs b/OpenTaiko/src/Common/CTextConsole.cs index 7df452db..0d003fa7 100644 --- a/OpenTaiko/src/Common/CTextConsole.cs +++ b/OpenTaiko/src/Common/CTextConsole.cs @@ -3,8 +3,6 @@ using FDK; namespace OpenTaiko { internal class CTextConsole : CActivity { - // 定数 - public enum EFontType { White, Cyan, @@ -14,83 +12,77 @@ namespace OpenTaiko { GraySlim } - // メソッド - - public void tPrint(int x, int y, EFontType font, string strAlphanumericString) { - if (!base.IsDeActivated && !string.IsNullOrEmpty(strAlphanumericString)) { + public void Print(int x, int y, EFontType font, string alphanumericString) { + if (!base.IsDeActivated && !string.IsNullOrEmpty(alphanumericString)) { int BOL = x; - for (int i = 0; i < strAlphanumericString.Length; i++) { - char ch = strAlphanumericString[i]; + for (int i = 0; i < alphanumericString.Length; i++) { + char ch = alphanumericString[i]; if (ch == '\n') { x = BOL; - y += nFontHeight; + y += this.fontHeight; } else { - int index = str表記可能文字.IndexOf(ch); + int index = printableCharacters.IndexOf(ch); if (index < 0) { - x += nFontWidth; + x += this.fontWidth; } else { - if (this.txフォント8x16[(int)((int)font / (int)EFontType.WhiteSlim)] != null) { - this.txフォント8x16[(int)((int)font / (int)EFontType.WhiteSlim)].t2D描画(x, y, this.rc文字の矩形領域[(int)((int)font % (int)EFontType.WhiteSlim), index]); + if (this.fontTextures[(int)((int)font / (int)EFontType.WhiteSlim)] != null) { + this.fontTextures[(int)((int)font / (int)EFontType.WhiteSlim)].t2D描画(x, y, this.characterRectangles[(int)((int)font % (int)EFontType.WhiteSlim), index]); } - x += nFontWidth; + x += this.fontWidth; } } } } } - - // CActivity 実装 - public override void DeActivate() { - if (this.rc文字の矩形領域 != null) - this.rc文字の矩形領域 = null; + if (this.characterRectangles != null) + this.characterRectangles = null; base.DeActivate(); } + public override void CreateManagedResource() { if (!base.IsDeActivated) { - this.txフォント8x16[0] = OpenTaiko.Tx.TxC(@"Console_Font.png"); - this.txフォント8x16[1] = OpenTaiko.Tx.TxC(@"Console_Font_Small.png"); + this.fontTextures[0] = OpenTaiko.Tx.TxC(@"Console_Font.png"); + this.fontTextures[1] = OpenTaiko.Tx.TxC(@"Console_Font_Small.png"); - nFontWidth = this.txフォント8x16[0].szTextureSize.Width / 32; - nFontHeight = this.txフォント8x16[0].szTextureSize.Height / 16; + this.fontWidth = this.fontTextures[0].szTextureSize.Width / 32; + this.fontHeight = this.fontTextures[0].szTextureSize.Height / 16; - this.rc文字の矩形領域 = new Rectangle[3, str表記可能文字.Length]; + this.characterRectangles = new Rectangle[3, printableCharacters.Length]; for (int i = 0; i < 3; i++) { - for (int j = 0; j < str表記可能文字.Length; j++) { - int regionX = nFontWidth * 16, regionY = nFontHeight * 8; - this.rc文字の矩形領域[i, j].X = ((i / 2) * regionX) + ((j % 16) * nFontWidth); - this.rc文字の矩形領域[i, j].Y = ((i % 2) * regionY) + ((j / 16) * nFontHeight); - this.rc文字の矩形領域[i, j].Width = nFontWidth; - this.rc文字の矩形領域[i, j].Height = nFontHeight; + for (int j = 0; j < printableCharacters.Length; j++) { + int regionX = this.fontWidth * 16, regionY = this.fontHeight * 8; + this.characterRectangles[i, j].X = ((i / 2) * regionX) + ((j % 16) * this.fontWidth); + this.characterRectangles[i, j].Y = ((i % 2) * regionY) + ((j / 16) * this.fontHeight); + this.characterRectangles[i, j].Width = this.fontWidth; + this.characterRectangles[i, j].Height = this.fontHeight; } } base.CreateManagedResource(); } } + public override void ReleaseManagedResource() { if (!base.IsDeActivated) { for (int i = 0; i < 2; i++) { - if (this.txフォント8x16[i] != null) { - this.txフォント8x16[i].Dispose(); - this.txフォント8x16[i] = null; + if (this.fontTextures[i] != null) { + this.fontTextures[i].Dispose(); + this.fontTextures[i] = null; } } base.ReleaseManagedResource(); } } - - // その他 - #region [ private ] //----------------- - private Rectangle[,] rc文字の矩形領域; - private const string str表記可能文字 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ "; - public int nFontWidth = 8, nFontHeight = 16; - private CTexture[] txフォント8x16 = new CTexture[2]; + private Rectangle[,] characterRectangles; + private const string printableCharacters = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ "; + public int fontWidth = 8, fontHeight = 16; + private CTexture[] fontTextures = new CTexture[2]; //----------------- #endregion } diff --git a/OpenTaiko/src/Common/CVersionList.cs b/OpenTaiko/src/Common/CVersionList.cs deleted file mode 100644 index 451a9071..00000000 --- a/OpenTaiko/src/Common/CVersionList.cs +++ /dev/null @@ -1,30 +0,0 @@ -namespace OpenTaiko { - class CVersionList { - public static string[] VersionList = { - "0.1.0", - "0.2.0", - "0.3.0", - "0.3.1", - "0.3.2", - "0.3.3", - "0.3.4", - "0.3.4.1", - "0.3.4.2", - "0.4.0", - "0.4.1", - "0.4.2", - "0.4.3", - "0.5.0", - "0.5.1", - "0.5.2", - "0.5.2.1", - "Pre 0.5.3", - "0.5.3", - "0.5.3.1", - "0.5.3.2", - "0.5.4", - "Pre 0.6.0 b1", - "Pre 0.6.0 b2", - }; - } -} diff --git a/OpenTaiko/src/Common/ConfigManager.cs b/OpenTaiko/src/Common/ConfigManager.cs index 50310992..84e67064 100644 --- a/OpenTaiko/src/Common/ConfigManager.cs +++ b/OpenTaiko/src/Common/ConfigManager.cs @@ -4,29 +4,27 @@ using Newtonsoft.Json.Converters; namespace OpenTaiko { /// - /// 設定ファイル入出力クラス。 + /// Class for reading and writing configuration files. /// public static class ConfigManager { private static readonly JsonSerializerSettings Settings = new JsonSerializerSettings() { ObjectCreationHandling = ObjectCreationHandling.Auto, DefaultValueHandling = DefaultValueHandling.Include, - // ContractResolver = new CamelCasePropertyNamesContractResolver(), NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore, Converters = new StringEnumConverter[] { new StringEnumConverter() } }; /// - /// 設定ファイルの読み込みを行います。ファイルが存在しなかった場合、そのクラスの新規インスタンスを返します。 + /// Reads the configuration file. If the file does not exist, it will be created. /// - /// シリアライズしたクラス。 - /// ファイル名。 - /// デシリアライズ結果。 + /// Type of the object to deserialize. + /// File name. + /// Deserialized object. public static T GetConfig(string filePath) where T : new() { var json = ""; if (!System.IO.File.Exists(filePath)) { - // ファイルが存在しないので SaveConfig(new T(), filePath); } using (var stream = new System.IO.StreamReader(filePath, Encoding.UTF8)) { @@ -36,10 +34,10 @@ namespace OpenTaiko { } /// - /// 設定ファイルの書き込みを行います。 + /// Writes the object to a file. /// - /// シリアライズするインスタンス。 - /// ファイル名。 + /// Object to serialize. + /// File name. public static void SaveConfig(object obj, string filePath) { (new FileInfo(filePath)).Directory.Create(); using (var stream = new System.IO.StreamWriter(filePath, false, Encoding.UTF8)) { diff --git a/OpenTaiko/src/Common/OpenTaiko.cs b/OpenTaiko/src/Common/OpenTaiko.cs index f145ca9d..5b561768 100755 --- a/OpenTaiko/src/Common/OpenTaiko.cs +++ b/OpenTaiko/src/Common/OpenTaiko.cs @@ -13,8 +13,8 @@ using SkiaSharp; using Rectangle = System.Drawing.Rectangle; namespace OpenTaiko { - internal class OpenTaiko : Game { - // Properties + internal class OpenTaiko : Game { + // Properties #region [ properties ] public static readonly string VERSION = Assembly.GetExecutingAssembly().GetName().Version.ToString(); public static readonly string AppDisplayThreePartVersion = GetAppDisplayThreePartVersion(); @@ -39,8 +39,8 @@ namespace OpenTaiko { ?.InformationalVersion ?? $"{GetAppDisplayThreePartVersion()} (unknown informational version)"; public static readonly string SLIMDXDLL = "c_net20x86_Jun2010"; - public static readonly string D3DXDLL = "d3dx9_43.dll"; // June 2010 - + public static readonly string D3DXDLL = "d3dx9_43.dll"; // June 2010 + public static CStage latestSongSelect { get; private set; @@ -62,8 +62,8 @@ namespace OpenTaiko { public static CVisualLogManager VisualLogManager { get; private set; - } - + } + #region [DTX instances] public static CDTX DTX { get { @@ -165,10 +165,10 @@ namespace OpenTaiko { return OpenTaiko.DTX_5P; } return null; - } - + } + #endregion - + public static CSongReplay[] ReplayInstances = new CSongReplay[5]; public static bool IsPerformingCalibration; @@ -180,7 +180,7 @@ namespace OpenTaiko { public static CInputManager InputManager { get; private set; - } + } #region [ 入力範囲ms ] public static int nPerfect範囲ms { get { @@ -225,7 +225,7 @@ namespace OpenTaiko { } return ConfigIni.nHitRangeMs.Poor; } - } + } #endregion public static CPad Pad { get; @@ -241,7 +241,7 @@ namespace OpenTaiko { } public static CSongs管理 Songs管理 { get; - set; // 2012.1.26 yyagi private解除 CStage起動でのdesirialize読み込みのため + set; // 2012.1.26 yyagi private解除 CStage起動でのdesirialize読み込みのため } public static CEnumSongs EnumSongs { get; @@ -369,14 +369,14 @@ namespace OpenTaiko { get; set; } - public static DiscordRpcClient DiscordClient; - - // 0 : 1P, 1 : 2P + public static DiscordRpcClient DiscordClient; + + // 0 : 1P, 1 : 2P public static int SaveFile = 0; - public static SaveFile[] SaveFileInstances = new SaveFile[5]; - - // 0 : Hidari, 1 : Migi (1P only) + public static SaveFile[] SaveFileInstances = new SaveFile[5]; + + // 0 : Hidari, 1 : Migi (1P only) public static int PlayerSide = 0; public static int GetActualPlayer(int player) { @@ -389,12 +389,12 @@ namespace OpenTaiko { public static bool P1IsBlue() { return (OpenTaiko.PlayerSide == 1 && OpenTaiko.ConfigIni.nPlayerCount == 1); - } - + } + #endregion - - // Constructor - + + // Constructor + public OpenTaiko() : base("OpenTaiko.ico") { OpenTaiko.app = this; } @@ -413,19 +413,19 @@ namespace OpenTaiko { } } - public static CCounter BeatScaling; - + public static CCounter BeatScaling; + /// /// Returns true for this session if the game fails to locate Config.ini.
/// This could be treated as the player's first time launching the game. ///
- public static bool ConfigIsNew; - - - - // メソッド - - + public static bool ConfigIsNew; + + + + // メソッド + + #region [ #24609 リザルト画像をpngで保存する ] // #24609 2011.3.14 yyagi; to save result screen in case BestRank or HiSkill. /// /// リザルト画像のキャプチャと保存。 @@ -454,26 +454,26 @@ namespace OpenTaiko { GetScreenShotAsync(save); return success; - } + } #endregion - - // Game 実装 - - - protected override void Configuration() { + + // Game 実装 + + + protected override void Configuration() { #region [ strEXEのあるフォルダを決定する ] - //----------------- - strEXEのあるフォルダ = Environment.CurrentDirectory + Path.DirectorySeparatorChar; - // END #23629 2010.11.13 from - //----------------- + //----------------- + strEXEのあるフォルダ = Environment.CurrentDirectory + Path.DirectorySeparatorChar; + // END #23629 2010.11.13 from + //----------------- #endregion - + ConfigIni = new CConfigIni(); string path = strEXEのあるフォルダ + "Config.ini"; if (File.Exists(path)) { - try { - // Load config info + try { + // Load config info ConfigIni.LoadFromFile(path); } catch (Exception e) { Trace.TraceError(e.ToString()); @@ -546,7 +546,7 @@ namespace OpenTaiko { protected override void Update() { InputManager?.Polling(OpenTaiko.ConfigIni.bBufferedInputs); } - protected override void Draw() { + protected override void Draw() { #if !DEBUG try #endif @@ -561,26 +561,26 @@ namespace OpenTaiko { float scale = 1.0f + ((1.0f - value) / 40.0f); Camera *= Matrix4X4.CreateScale(scale, scale, 1.0f); if (BeatScaling.CurrentValue == BeatScaling.EndValue) BeatScaling = null; - } - - // #xxxxx 2013.4.8 yyagi; sleepの挿入位置を、EndScnene~Present間から、BeginScene前に移動。描画遅延を小さくするため。 - + } + + // #xxxxx 2013.4.8 yyagi; sleepの挿入位置を、EndScnene~Present間から、BeginScene前に移動。描画遅延を小さくするため。 + if (r現在のステージ != null) { OpenTaiko.NamePlate.lcNamePlate.Update(); - this.n進行描画の戻り値 = (r現在のステージ != null) ? r現在のステージ.Draw() : 0; - - CScoreIni scoreIni = null; - + this.n進行描画の戻り値 = (r現在のステージ != null) ? r現在のステージ.Draw() : 0; + + CScoreIni scoreIni = null; + #region [ 曲検索スレッドの起動/終了 ] - // ここに"Enumerating Songs..."表示を集約 - actEnumSongs.Draw(); // "Enumerating Songs..."アイコンの描画 - + // ここに"Enumerating Songs..."表示を集約 + actEnumSongs.Draw(); // "Enumerating Songs..."アイコンの描画 + switch (r現在のステージ.eStageID) { case CStage.EStage.Title: case CStage.EStage.Config: case CStage.EStage.SongSelect: case CStage.EStage.SongLoading: - if (EnumSongs != null) { + if (EnumSongs != null) { #region [ (特定条件時) 曲検索スレッドの起動_開始 ] if (r現在のステージ.eStageID == CStage.EStage.Title && r直前のステージ.eStageID == CStage.EStage.StartUp && @@ -592,15 +592,15 @@ namespace OpenTaiko { actEnumSongs.CreateUnmanagedResource(); } OpenTaiko.stageSongSelect.bIsEnumeratingSongs = true; - EnumSongs.Init(); // 取得した曲数を、新インスタンスにも与える - EnumSongs.StartEnumFromDisk(); // 曲検索スレッドの起動_開始 - } + EnumSongs.Init(); // 取得した曲数を、新インスタンスにも与える + EnumSongs.StartEnumFromDisk(); // 曲検索スレッドの起動_開始 + } #endregion - + #region [ 曲検索の中断と再開 ] if (r現在のステージ.eStageID == CStage.EStage.SongSelect && !EnumSongs.IsSongListEnumCompletelyDone) { switch (this.n進行描画の戻り値) { - case 0: // 何もない + case 0: // 何もない EnumSongs.Resume(); EnumSongs.IsSlowdown = false; actEnumSongs.Activate(); @@ -610,8 +610,8 @@ namespace OpenTaiko { } break; - case 2: // 曲決定 - EnumSongs.Suspend(); // #27060 バックグラウンドの曲検索を一時停止 + case 2: // 曲決定 + EnumSongs.Suspend(); // #27060 バックグラウンドの曲検索を一時停止 actEnumSongs.DeActivate(); if (!ConfigIni.PreAssetsLoading) { actEnumSongs.ReleaseManagedResource(); @@ -619,19 +619,19 @@ namespace OpenTaiko { } break; } - } + } #endregion - + #region [ 曲探索中断待ち待機 ] if (r現在のステージ.eStageID == CStage.EStage.SongLoading && !EnumSongs.IsSongListEnumCompletelyDone && - EnumSongs.thDTXFileEnumerate != null) // #28700 2012.6.12 yyagi; at Compact mode, enumerating thread does not exist. + EnumSongs.thDTXFileEnumerate != null) // #28700 2012.6.12 yyagi; at Compact mode, enumerating thread does not exist. { - EnumSongs.WaitUntilSuspended(); // 念のため、曲検索が一時中断されるまで待機 - } + EnumSongs.WaitUntilSuspended(); // 念のため、曲検索が一時中断されるまで待機 + } #endregion - + #region [ 曲検索が完了したら、実際の曲リストに反映する ] - // CStage選曲.On活性化() に回した方がいいかな? + // CStage選曲.On活性化() に回した方がいいかな? if (EnumSongs.IsSongListEnumerated) { actEnumSongs.DeActivate(); if (!ConfigIni.PreAssetsLoading) { @@ -643,20 +643,20 @@ namespace OpenTaiko { bool bRemakeSongTitleBar = (r現在のステージ.eStageID == CStage.EStage.SongSelect) ? true : false; OpenTaiko.stageSongSelect.Refresh(EnumSongs.Songs管理, bRemakeSongTitleBar); EnumSongs.SongListEnumCompletelyDone(); - } + } #endregion } break; - } + } #endregion - + switch (r現在のステージ.eStageID) { case CStage.EStage.None: break; - case CStage.EStage.StartUp: + case CStage.EStage.StartUp: #region [ *** ] - //----------------------------- + //----------------------------- if (this.n進行描画の戻り値 != 0) { r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { @@ -674,18 +674,18 @@ namespace OpenTaiko { r現在のステージ = stageタイトル; this.tガベージコレクションを実行する(); - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.Title: + case CStage.EStage.Title: #region [ *** ] - //----------------------------- + //----------------------------- switch (this.n進行描画の戻り値) { - case (int)CStageタイトル.E戻り値.GAMESTART: + case (int)CStageタイトル.E戻り値.GAMESTART: #region [ 選曲処理へ ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -701,14 +701,14 @@ namespace OpenTaiko { r直前のステージ = r現在のステージ; r現在のステージ = stageSongSelect; - OpenTaiko.latestSongSelect = stageSongSelect; - //----------------------------- + OpenTaiko.latestSongSelect = stageSongSelect; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.DANGAMESTART: + case (int)CStageタイトル.E戻り値.DANGAMESTART: #region [ 段位選択処理へ ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -723,14 +723,14 @@ namespace OpenTaiko { } r直前のステージ = r現在のステージ; r現在のステージ = stage段位選択; - OpenTaiko.latestSongSelect = stage段位選択; - //----------------------------- + OpenTaiko.latestSongSelect = stage段位選択; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.TAIKOTOWERSSTART: + case (int)CStageタイトル.E戻り値.TAIKOTOWERSSTART: #region [Online Lounge] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -744,14 +744,14 @@ namespace OpenTaiko { stageTowerSelect.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stageTowerSelect; - //----------------------------- + r現在のステージ = stageTowerSelect; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.HEYA: + case (int)CStageタイトル.E戻り値.HEYA: #region [Heya menu] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -765,14 +765,14 @@ namespace OpenTaiko { stageHeya.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stageHeya; - //----------------------------- + r現在のステージ = stageHeya; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.ONLINELOUNGE: + case (int)CStageタイトル.E戻り値.ONLINELOUNGE: #region [Online Lounge] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -786,14 +786,14 @@ namespace OpenTaiko { stageOnlineLounge.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stageOnlineLounge; - //----------------------------- + r現在のステージ = stageOnlineLounge; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.CONFIG: + case (int)CStageタイトル.E戻り値.CONFIG: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -807,14 +807,14 @@ namespace OpenTaiko { stageコンフィグ.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stageコンフィグ; - //----------------------------- + r現在のステージ = stageコンフィグ; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.EXIT: + case (int)CStageタイトル.E戻り値.EXIT: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -828,14 +828,14 @@ namespace OpenTaiko { stage終了.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stage終了; - //----------------------------- + r現在のステージ = stage終了; + //----------------------------- #endregion break; - case (int)CStageタイトル.E戻り値.AIBATTLEMODE: + case (int)CStageタイトル.E戻り値.AIBATTLEMODE: #region [ 選曲処理へ ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -855,25 +855,25 @@ namespace OpenTaiko { ConfigIni.nPreviousPlayerCount = ConfigIni.nPlayerCount; ConfigIni.nPlayerCount = 2; ConfigIni.bAIBattleMode = true; - ConfigIni.tInitializeAILevel(); - //----------------------------- + ConfigIni.tInitializeAILevel(); + //----------------------------- #endregion break; - } - - //----------------------------- + } + + //----------------------------- #endregion break; - case CStage.EStage.Config: + case CStage.EStage.Config: #region [ *** ] - //----------------------------- + //----------------------------- if (this.n進行描画の戻り値 != 0) { switch (r直前のステージ.eStageID) { - case CStage.EStage.Title: + case CStage.EStage.Title: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -891,13 +891,13 @@ namespace OpenTaiko { r現在のステージ = stageタイトル; this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case CStage.EStage.SongSelect: + + case CStage.EStage.SongSelect: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -914,23 +914,23 @@ namespace OpenTaiko { r現在のステージ = stageSongSelect; this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion } return; - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.SongSelect: + case CStage.EStage.SongSelect: #region [ *** ] - //----------------------------- + //----------------------------- switch (this.n進行描画の戻り値) { - case (int)CStage選曲.E戻り値.タイトルに戻る: + case (int)CStage選曲.E戻り値.タイトルに戻る: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -952,16 +952,16 @@ namespace OpenTaiko { if (ConfigIni.bAIBattleMode == true) { ConfigIni.nPlayerCount = ConfigIni.nPreviousPlayerCount; ConfigIni.bAIBattleMode = false; - } + } this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case (int)CStage選曲.E戻り値.選曲した: + + case (int)CStage選曲.E戻り値.選曲した: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -975,45 +975,45 @@ namespace OpenTaiko { stage曲読み込み.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stage曲読み込み; - + r現在のステージ = stage曲読み込み; + /* Skin.bgm選曲画面イン.t停止する(); Skin.bgm選曲画面.t停止する(); - */ + */ CSongSelectSongManager.stopSong(); CSongSelectSongManager.enable(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - // case (int) CStage選曲.E戻り値.オプション呼び出し: + + // case (int) CStage選曲.E戻り値.オプション呼び出し: #region [ *** ] - // //----------------------------- - // r現在のステージ.On非活性化(); - // Trace.TraceInformation( "----------------------" ); - // Trace.TraceInformation( "■ オプション" ); - // stageオプション.On活性化(); - // r直前のステージ = r現在のステージ; - // r現在のステージ = stageオプション; - // - // foreach( STPlugin pg in this.listプラグイン ) - // { - // Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); - // pg.plugin.Onステージ変更(); - // Directory.SetCurrentDirectory( CDTXMania.strEXEのあるフォルダ ); - // } - // - // this.tガベージコレクションを実行する(); - // break; - // //----------------------------- + // //----------------------------- + // r現在のステージ.On非活性化(); + // Trace.TraceInformation( "----------------------" ); + // Trace.TraceInformation( "■ オプション" ); + // stageオプション.On活性化(); + // r直前のステージ = r現在のステージ; + // r現在のステージ = stageオプション; + // + // foreach( STPlugin pg in this.listプラグイン ) + // { + // Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + // pg.plugin.Onステージ変更(); + // Directory.SetCurrentDirectory( CDTXMania.strEXEのあるフォルダ ); + // } + // + // this.tガベージコレクションを実行する(); + // break; + // //----------------------------- #endregion - - case (int)CStage選曲.E戻り値.コンフィグ呼び出し: + + case (int)CStage選曲.E戻り値.コンフィグ呼び出し: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1033,14 +1033,14 @@ namespace OpenTaiko { CSongSelectSongManager.enable(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case (int)CStage選曲.E戻り値.スキン変更: - + + case (int)CStage選曲.E戻り値.スキン変更: + #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1051,20 +1051,20 @@ namespace OpenTaiko { stageChangeSkin.Activate(); r直前のステージ = r現在のステージ; r現在のステージ = stageChangeSkin; - break; - //----------------------------- + break; + //----------------------------- #endregion - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.DanDojoSelect: + case CStage.EStage.DanDojoSelect: #region [ *** ] switch (this.n進行描画の戻り値) { - case (int)CStage選曲.E戻り値.タイトルに戻る: + case (int)CStage選曲.E戻り値.タイトルに戻る: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1078,24 +1078,24 @@ namespace OpenTaiko { stageタイトル.CreateUnmanagedResource(); } r直前のステージ = r現在のステージ; - r現在のステージ = stageタイトル; - + r現在のステージ = stageタイトル; + /* Skin.bgm選曲画面イン.t停止する(); Skin.bgm選曲画面.t停止する(); - */ + */ CSongSelectSongManager.stopSong(); CSongSelectSongManager.enable(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case (int)CStage選曲.E戻り値.選曲した: + + case (int)CStage選曲.E戻り値.選曲した: #region [ *** ] - //----------------------------- - + //----------------------------- + r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1112,19 +1112,19 @@ namespace OpenTaiko { r現在のステージ = stage曲読み込み; this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - } + } #endregion break; - case CStage.EStage.Heya: + case CStage.EStage.Heya: #region [ *** ] switch (this.n進行描画の戻り値) { - case (int)CStage選曲.E戻り値.タイトルに戻る: + case (int)CStage選曲.E戻り値.タイトルに戻る: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1144,34 +1144,34 @@ namespace OpenTaiko { CSongSelectSongManager.enable(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - } + } #endregion break; - case CStage.EStage.SongLoading: + case CStage.EStage.SongLoading: #region [ *** ] - //----------------------------- + //----------------------------- if (this.n進行描画の戻り値 != 0) { - OpenTaiko.Pad.st検知したデバイス.Clear(); // 入力デバイスフラグクリア(2010.9.11) + OpenTaiko.Pad.detectedDevice.Clear(); // 入力デバイスフラグクリア(2010.9.11) r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); r現在のステージ.ReleaseUnmanagedResource(); - } + } #region [ ESC押下時は、曲の読み込みを中止して選曲画面に戻る ] - if (this.n進行描画の戻り値 == (int)ESongLoadingScreenReturnValue.LoadCanceled) { - //DTX.t全チップの再生停止(); + if (this.n進行描画の戻り値 == (int)ESongLoadingScreenReturnValue.LoadCanceled) { + //DTX.t全チップの再生停止(); if (DTX != null) { DTX.DeActivate(); DTX.ReleaseManagedResource(); DTX.ReleaseUnmanagedResource(); - } - - // ??? - + } + + // ??? + /* if (stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) { @@ -1189,8 +1189,8 @@ namespace OpenTaiko { r直前のステージ = r現在のステージ; r現在のステージ = stage選曲; } - */ - + */ + Trace.TraceInformation("----------------------"); Trace.TraceInformation("■ Return to song select menu"); OpenTaiko.latestSongSelect.Activate(); @@ -1198,17 +1198,17 @@ namespace OpenTaiko { OpenTaiko.latestSongSelect.CreateManagedResource(); OpenTaiko.latestSongSelect.CreateUnmanagedResource(); } - r直前のステージ = r現在のステージ; - - // Seek latest registered song select screen + r直前のステージ = r現在のステージ; + + // Seek latest registered song select screen r現在のステージ = OpenTaiko.latestSongSelect; break; - } + } #endregion - + Trace.TraceInformation("----------------------"); - Trace.TraceInformation("■ Gameplay (Drum Screen)"); + Trace.TraceInformation("■ Gameplay (Drum Screen)"); #if false // #23625 2011.1.11 Config.iniからダメージ/回復値の定数変更を行う場合はここを有効にする 087リリースに合わせ機能無効化 for (int i = 0; i < 5; i++) { @@ -1225,16 +1225,16 @@ for (int i = 0; i < 3; i++) { r現在のステージ = stage演奏ドラム画面; this.tガベージコレクションを実行する(); - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.Game: + case CStage.EStage.Game: #region [ *** ] - + switch (this.n進行描画の戻り値) { - case (int)EGameplayScreenReturnValue.ReloadAndReplay: + case (int)EGameplayScreenReturnValue.ReloadAndReplay: #region [ DTXファイルを再読み込みして、再演奏 ] DTX.t全チップの再生停止(); DTX.DeActivate(); @@ -1253,21 +1253,21 @@ for (int i = 0; i < 3; i++) { r直前のステージ = r現在のステージ; r現在のステージ = stage曲読み込み; this.tガベージコレクションを実行する(); - break; + break; #endregion - - //case (int) E演奏画面の戻り値.再演奏: + + //case (int) E演奏画面の戻り値.再演奏: #region [ 再読み込み無しで、再演奏 ] #endregion - // break; - + // break; + case (int)EGameplayScreenReturnValue.Continue: break; - case (int)EGameplayScreenReturnValue.PerformanceInterrupted: + case (int)EGameplayScreenReturnValue.PerformanceInterrupted: #region [ 演奏キャンセル ] - //----------------------------- - + //----------------------------- + DTX.t全チップの再生停止(); DTX.DeActivate(); DTX.ReleaseManagedResource(); @@ -1276,8 +1276,8 @@ for (int i = 0; i < 3; i++) { if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); r現在のステージ.ReleaseUnmanagedResource(); - } - + } + Trace.TraceInformation("----------------------"); Trace.TraceInformation("■ Return to song select menu"); OpenTaiko.latestSongSelect.Activate(); @@ -1285,21 +1285,21 @@ for (int i = 0; i < 3; i++) { OpenTaiko.latestSongSelect.CreateManagedResource(); OpenTaiko.latestSongSelect.CreateUnmanagedResource(); } - r直前のステージ = r現在のステージ; - - // Seek latest registered song select screen + r直前のステージ = r現在のステージ; + + // Seek latest registered song select screen r現在のステージ = OpenTaiko.latestSongSelect; - + this.tガベージコレクションを実行する(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case (int)EGameplayScreenReturnValue.StageFailed: + + case (int)EGameplayScreenReturnValue.StageFailed: #region [ 演奏失敗(StageFailed) ] - //----------------------------- - + //----------------------------- + DTX.t全チップの再生停止(); DTX.DeActivate(); DTX.ReleaseManagedResource(); @@ -1319,20 +1319,20 @@ for (int i = 0; i < 3; i++) { } r直前のステージ = r現在のステージ; r現在のステージ = stageSongSelect; - + this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case (int)EGameplayScreenReturnValue.StageCleared: + + case (int)EGameplayScreenReturnValue.StageCleared: #region [ 演奏クリア ] - //----------------------------- - - // Fetch the results of the finished play + //----------------------------- + + // Fetch the results of the finished play CScoreIni.C演奏記録 c演奏記録_Drums; stage演奏ドラム画面.t演奏結果を格納する(out c演奏記録_Drums); - + r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1348,20 +1348,20 @@ for (int i = 0; i < 3; i++) { } r直前のステージ = r現在のステージ; r現在のステージ = stage結果; - - break; - //----------------------------- + + break; + //----------------------------- #endregion - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.Results: + case CStage.EStage.Results: #region [ *** ] - //----------------------------- - if (this.n進行描画の戻り値 != 0) { - //DTX.t全チップの再生一時停止(); + //----------------------------- + if (this.n進行描画の戻り値 != 0) { + //DTX.t全チップの再生一時停止(); DTX.t全チップの再生停止とミキサーからの削除(); DTX.DeActivate(); DTX.ReleaseManagedResource(); @@ -1371,11 +1371,11 @@ for (int i = 0; i < 3; i++) { r現在のステージ.ReleaseManagedResource(); r現在のステージ.ReleaseUnmanagedResource(); } - this.tガベージコレクションを実行する(); - - - // After result screen - + this.tガベージコレクションを実行する(); + + + // After result screen + /* if (stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) { @@ -1393,8 +1393,8 @@ for (int i = 0; i < 3; i++) { r直前のステージ = r現在のステージ; r現在のステージ = stage選曲; } - */ - + */ + Trace.TraceInformation("----------------------"); Trace.TraceInformation("■ Return to song select menu"); OpenTaiko.latestSongSelect.Activate(); @@ -1402,26 +1402,26 @@ for (int i = 0; i < 3; i++) { OpenTaiko.latestSongSelect.CreateManagedResource(); OpenTaiko.latestSongSelect.CreateUnmanagedResource(); } - r直前のステージ = r現在のステージ; - - // Seek latest registered song select screen + r直前のステージ = r現在のステージ; + + // Seek latest registered song select screen r現在のステージ = OpenTaiko.latestSongSelect; stageSongSelect.NowSong++; this.tガベージコレクションを実行する(); - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.TaikoTowers: + case CStage.EStage.TaikoTowers: #region [ *** ] switch (this.n進行描画の戻り値) { - case (int)EReturnValue.ReturnToTitle: + case (int)EReturnValue.ReturnToTitle: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1431,23 +1431,23 @@ for (int i = 0; i < 3; i++) { Trace.TraceInformation("■ Title"); stageタイトル.Activate(); r直前のステージ = r現在のステージ; - r現在のステージ = stageタイトル; - + r現在のステージ = stageタイトル; + /* Skin.bgm選曲画面イン.t停止する(); Skin.bgm選曲画面.t停止する(); - */ + */ CSongSelectSongManager.stopSong(); CSongSelectSongManager.enable(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - - case (int)EReturnValue.SongChoosen: + + case (int)EReturnValue.SongChoosen: #region [ *** ] - //----------------------------- + //----------------------------- latestSongSelect = stageTowerSelect; r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { @@ -1465,16 +1465,16 @@ for (int i = 0; i < 3; i++) { r現在のステージ = stage曲読み込み; this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - } + } #endregion break; - case CStage.EStage.ChangeSkin: + case CStage.EStage.ChangeSkin: #region [ *** ] - //----------------------------- + //----------------------------- if (this.n進行描画の戻り値 != 0) { r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { @@ -1491,28 +1491,28 @@ for (int i = 0; i < 3; i++) { r直前のステージ = r現在のステージ; r現在のステージ = stageSongSelect; this.tガベージコレクションを実行する(); - } - //----------------------------- + } + //----------------------------- #endregion break; - case CStage.EStage.End: + case CStage.EStage.End: #region [ *** ] - //----------------------------- + //----------------------------- if (this.n進行描画の戻り値 != 0) { base.Exit(); return; - } - //----------------------------- + } + //----------------------------- #endregion break; - default: + default: #region [ *** ] switch (this.n進行描画の戻り値) { - case (int)CStage選曲.E戻り値.タイトルに戻る: + case (int)CStage選曲.E戻り値.タイトルに戻る: #region [ *** ] - //----------------------------- + //----------------------------- r現在のステージ.DeActivate(); if (!ConfigIni.PreAssetsLoading) { r現在のステージ.ReleaseManagedResource(); @@ -1532,10 +1532,10 @@ for (int i = 0; i < 3; i++) { CSongSelectSongManager.enable(); this.tガベージコレクションを実行する(); - break; - //----------------------------- + break; + //----------------------------- #endregion - } + } #endregion break; } @@ -1554,8 +1554,8 @@ for (int i = 0; i < 3; i++) { Camera *= Matrix4X4.CreateTranslation(fCamXOffset / 1280, fCamYOffset / 720, 1f); - if (OpenTaiko.DTX != null) { - //object rendering + if (OpenTaiko.DTX != null) { + //object rendering foreach (KeyValuePair pair in OpenTaiko.DTX.listObj) { pair.Value.tDraw(); } @@ -1567,17 +1567,17 @@ for (int i = 0; i < 3; i++) { if (r現在のステージ != null && r現在のステージ.eStageID != CStage.EStage.StartUp && OpenTaiko.Tx.Network_Connection != null) { if (Math.Abs(SoundManager.PlayTimer.SystemTimeMs - this.前回のシステム時刻ms) > 10000) { this.前回のシステム時刻ms = SoundManager.PlayTimer.SystemTimeMs; - Task.Factory.StartNew(() => { - //IPv4 8.8.8.8にPingを送信する(timeout 5000ms) + Task.Factory.StartNew(() => { + //IPv4 8.8.8.8にPingを送信する(timeout 5000ms) PingReply reply = new Ping().Send("8.8.8.8", 5000); this.bネットワークに接続中 = reply.Status == IPStatus.Success; }); } OpenTaiko.Tx.Network_Connection.t2D描画(GameWindowSize.Width - (OpenTaiko.Tx.Network_Connection.szTextureSize.Width / 2), GameWindowSize.Height - OpenTaiko.Tx.Network_Connection.szTextureSize.Height, new Rectangle((OpenTaiko.Tx.Network_Connection.szTextureSize.Width / 2) * (this.bネットワークに接続中 ? 0 : 1), 0, OpenTaiko.Tx.Network_Connection.szTextureSize.Width / 2, OpenTaiko.Tx.Network_Connection.szTextureSize.Height)); - } - // オーバレイを描画する(テクスチャの生成されていない起動ステージは例外 - - // Display log cards + } + // オーバレイを描画する(テクスチャの生成されていない起動ステージは例外 + + // Display log cards VisualLogManager.Display(); if (r現在のステージ != null && r現在のステージ.eStageID != CStage.EStage.StartUp && OpenTaiko.Tx.Overlay != null) { @@ -1585,7 +1585,7 @@ for (int i = 0; i < 3; i++) { } } - if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.Capture)) { + if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.Capture)) { #if DEBUG if (OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.LeftControl)) { if (r現在のステージ.eStageID != CStage.EStage.Game) { @@ -1601,42 +1601,42 @@ for (int i = 0; i < 3; i++) { r現在のステージ.CreateUnmanagedResource(); } } - } else { - // Debug.WriteLine( "capture: " + string.Format( "{0:2x}", (int) e.KeyCode ) + " " + (int) e.KeyCode ); + } else { + // Debug.WriteLine( "capture: " + string.Format( "{0:2x}", (int) e.KeyCode ) + " " + (int) e.KeyCode ); string strFullPath = Path.Combine(OpenTaiko.strEXEのあるフォルダ, "Capture_img"); strFullPath = Path.Combine(strFullPath, DateTime.Now.ToString("yyyyMMddHHmmss") + ".png"); SaveResultScreen(strFullPath); - } + } #else string strFullPath = Path.Combine(OpenTaiko.strEXEのあるフォルダ, "Capture_img"); strFullPath = Path.Combine(strFullPath, DateTime.Now.ToString("yyyyMMddHHmmss") + ".png"); SaveResultScreen(strFullPath); #endif - } - + } + #region [ 全画面_ウインドウ切り替え ] if (this.b次のタイミングで全画面_ウィンドウ切り替えを行う) { ConfigIni.bFullScreen = !ConfigIni.bFullScreen; app.ToggleWindowMode(); this.b次のタイミングで全画面_ウィンドウ切り替えを行う = false; - } + } #endregion #region [ 垂直基線同期切り替え ] if (this.b次のタイミングで垂直帰線同期切り替えを行う) { VSync = ConfigIni.bEnableVSync; this.b次のタイミングで垂直帰線同期切り替えを行う = false; - } + } #endregion - + #if DEBUG if (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.F11)) OpenTaiko.ConfigIni.DEBUG_bShowImgui = !OpenTaiko.ConfigIni.DEBUG_bShowImgui; if (OpenTaiko.ConfigIni.DEBUG_bShowImgui) - ImGuiDebugWindow.Draw(); + ImGuiDebugWindow.Draw(); #endif - } + } #if !DEBUG catch( Exception e ) { @@ -1648,12 +1648,12 @@ for (int i = 0; i < 3; i++) { throw e; } #endif - } - - // その他 - + } + + // その他 + #region [ 汎用ヘルパー ] - //----------------- + //----------------- public static CTexture tテクスチャの生成(string fileName) { return tテクスチャの生成(fileName, false); } @@ -1716,8 +1716,8 @@ for (int i = 0; i < 3; i++) { Trace.TraceError("Texture generation has failed. ({0})", fileName); return null; } - } - + } + /// プロパティ、インデクサには ref は使用できないので注意。 public static void tDisposeSafely(ref T obj) { if (obj == null) @@ -1731,7 +1731,7 @@ for (int i = 0; i < 3; i++) { obj = default(T); } - public static void t安全にDisposeする(ref T[] array) where T : class, IDisposable //2020.08.01 Mr-Ojii twopointzero氏のソースコードをもとに追加 + public static void t安全にDisposeする(ref T[] array) where T : class, IDisposable //2020.08.01 Mr-Ojii twopointzero氏のソースコードをもとに追加 { if (array == null) { return; @@ -1741,8 +1741,8 @@ for (int i = 0; i < 3; i++) { array[i]?.Dispose(); array[i] = null; } - } - + } + /// /// そのフォルダの連番画像の最大値を返す。 /// @@ -1752,8 +1752,8 @@ for (int i = 0; i < 3; i++) { num++; } return num; - } - + } + /// /// 曲名テクスチャの縮小倍率を返す。 /// @@ -1766,8 +1766,8 @@ for (int i = 0; i < 3; i++) { if (cTexture.szTextureSize.Width <= samePixel) scalingRate = 1.0f; return scalingRate; - } - + } + /// /// 難易度を表す数字を列挙体に変換します。 /// @@ -1792,13 +1792,13 @@ for (int i = 0; i < 3; i++) { default: throw new IndexOutOfRangeException(); } - } - - //----------------- + } + + //----------------- #endregion - + #region [ private ] - //----------------- + //----------------- private bool bマウスカーソル表示中 = true; private bool b終了処理完了済み; public bool bネットワークに接続中 { get; private set; } = false; @@ -1809,8 +1809,8 @@ for (int i = 0; i < 3; i++) { public List listトップレベルActivities; private int n進行描画の戻り値; - private string strWindowTitle - // ayo komi isn't this useless code? - tfd500 + private string strWindowTitle + // ayo komi isn't this useless code? - tfd500 { get { return "OpenTaiko"; @@ -1822,12 +1822,12 @@ for (int i = 0; i < 3; i++) { private set; } - private void t起動処理() { - + private void t起動処理() { + #region [ Read Config.ini and Database files ] - //--------------------- - - // Port <= 0.5.4 NamePlate.json to Pre 0.6.0 b1 Saves\ + //--------------------- + + // Port <= 0.5.4 NamePlate.json to Pre 0.6.0 b1 Saves\ NamePlateConfig = new NamePlateConfig(); NamePlateConfig.tNamePlateConfig(); @@ -1844,20 +1844,20 @@ for (int i = 0; i < 3; i++) { if (!File.Exists("Saves.db3")) { File.Copy(@$".init{Path.DirectorySeparatorChar}Saves.db3", "Saves.db3"); - } - // Add a condition here (if old Saves\ format save files exist) to port them to database (?) - SaveFileInstances = DBSaves.FetchSaveInstances(); - - //--------------------- + } + // Add a condition here (if old Saves\ format save files exist) to port them to database (?) + SaveFileInstances = DBSaves.FetchSaveInstances(); + + //--------------------- #endregion - + #region [ ログ出力開始 ] - //--------------------- + //--------------------- Trace.AutoFlush = true; if (ConfigIni.bOutputLogs) { try { Trace.Listeners.Add(new CTraceLogListener(new StreamWriter(System.IO.Path.Combine(strEXEのあるフォルダ, "OpenTaiko.log"), false, Encoding.GetEncoding(OpenTaiko.sEncType)))); - } catch (System.UnauthorizedAccessException) // #24481 2011.2.20 yyagi + } catch (System.UnauthorizedAccessException) // #24481 2011.2.20 yyagi { int c = (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName == "ja") ? 0 : 1; string[] mes_writeErr = { @@ -1875,27 +1875,27 @@ for (int i = 0; i < 3; i++) { Trace.TraceInformation("■ Application Info:"); Trace.TraceInformation("OS Version: " + Environment.OSVersion); Trace.TraceInformation("Processors: " + Environment.ProcessorCount.ToString()); - Trace.TraceInformation("CLR Version: " + Environment.Version.ToString()); - //--------------------- + Trace.TraceInformation("CLR Version: " + Environment.Version.ToString()); + //--------------------- #endregion - - DTX = null; - + + DTX = null; + #region [ Skin の初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing skin..."); - Trace.Indent(); + Trace.Indent(); #if !DEBUG try #endif { Skin = new CSkin(OpenTaiko.ConfigIni.strSystemSkinSubfolderFullName, false); - OpenTaiko.ConfigIni.strSystemSkinSubfolderFullName = OpenTaiko.Skin.GetCurrentSkinSubfolderFullName(true); // 旧指定のSkinフォルダが消滅していた場合に備える - + OpenTaiko.ConfigIni.strSystemSkinSubfolderFullName = OpenTaiko.Skin.GetCurrentSkinSubfolderFullName(true); // 旧指定のSkinフォルダが消滅していた場合に備える + ChangeResolution(OpenTaiko.Skin.Resolution[0], OpenTaiko.Skin.Resolution[1]); Trace.TraceInformation("Skin successfully initialized."); - } + } #if !DEBUG catch (Exception e) { @@ -1907,12 +1907,12 @@ for (int i = 0; i < 3; i++) { Trace.Unindent(); } #endif - - //--------------------- + + //--------------------- #endregion - //----------- + //----------- #region [ Timer の初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing timer..."); Trace.Indent(); try { @@ -1920,13 +1920,13 @@ for (int i = 0; i < 3; i++) { Trace.TraceInformation("Timer successfully initialized."); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion - //----------- - + //----------- + #region [ FPS カウンタの初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing FPS counter..."); Trace.Indent(); try { @@ -1934,11 +1934,11 @@ for (int i = 0; i < 3; i++) { Trace.TraceInformation("FPS counter initialized."); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ act文字コンソールの初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing console..."); Trace.Indent(); try { @@ -1954,11 +1954,11 @@ for (int i = 0; i < 3; i++) { Trace.TraceError("Console failed to initialize."); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ Input管理 の初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing DirectInput and MIDI input..."); Trace.Indent(); try { @@ -2004,11 +2004,11 @@ for (int i = 0; i < 3; i++) { throw; } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ Pad の初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initialize pad..."); Trace.Indent(); try { @@ -2019,11 +2019,11 @@ for (int i = 0; i < 3; i++) { Trace.TraceError("Pad failed to initialize."); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ Sound管理 の初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing sound device..."); Trace.Indent(); try { @@ -2048,16 +2048,16 @@ for (int i = 0; i < 3; i++) { SoundManager = new SoundManager(Window_, soundDeviceType, OpenTaiko.ConfigIni.nBassBufferSizeMs, - OpenTaiko.ConfigIni.nWASAPIBufferSizeMs, - // CDTXMania.ConfigIni.nASIOBufferSizeMs, + OpenTaiko.ConfigIni.nWASAPIBufferSizeMs, + // CDTXMania.ConfigIni.nASIOBufferSizeMs, 0, OpenTaiko.ConfigIni.nASIODevice, OpenTaiko.ConfigIni.bUseOSTimer - ); - //Sound管理 = FDK.CSound管理.Instance; - //Sound管理.t初期化( soundDeviceType, 0, 0, CDTXMania.ConfigIni.nASIODevice, base.Window.Handle ); - - + ); + //Sound管理 = FDK.CSound管理.Instance; + //Sound管理.t初期化( soundDeviceType, 0, 0, CDTXMania.ConfigIni.nASIODevice, base.Window.Handle ); + + Trace.TraceInformation("Initializing loudness scanning, song gain control, and sound group level control..."); Trace.Indent(); try { @@ -2089,16 +2089,16 @@ for (int i = 0; i < 3; i++) { throw new NullReferenceException("No sound devices are enabled. Please check your audio settings.", e); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ Songs管理 の初期化 ] - //--------------------- + //--------------------- Trace.TraceInformation("Initializing song list..."); Trace.Indent(); try { - Songs管理 = new CSongs管理(); - // Songs管理_裏読 = new CSongs管理(); + Songs管理 = new CSongs管理(); + // Songs管理_裏読 = new CSongs管理(); EnumSongs = new CEnumSongs(); actEnumSongs = new CActEnumSongs(); Trace.TraceInformation("Song list initialized."); @@ -2107,16 +2107,16 @@ for (int i = 0; i < 3; i++) { Trace.TraceError("Song list failed to initialize."); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ Random の初期化 ] - //--------------------- - Random = new Random(); - //--------------------- + //--------------------- + Random = new Random(); + //--------------------- #endregion #region [ Stages initialisation ] - //--------------------- + //--------------------- r現在のステージ = null; r直前のステージ = null; stage起動 = new CStage起動(); @@ -2150,10 +2150,10 @@ for (int i = 0; i < 3; i++) { this.listトップレベルActivities.Add(stage演奏ドラム画面); this.listトップレベルActivities.Add(stage結果); this.listトップレベルActivities.Add(stageChangeSkin); - this.listトップレベルActivities.Add(stage終了); - //--------------------- + this.listトップレベルActivities.Add(stage終了); + //--------------------- #endregion - + #region Discordの処理 DiscordClient = new DiscordRpcClient("939341030141096007"); DiscordClient?.Initialize(); @@ -2166,15 +2166,15 @@ for (int i = 0; i < 3; i++) { LargeImageKey = OpenTaiko.LargeImageKey, LargeImageText = OpenTaiko.LargeImageText, } - }); + }); #endregion - - - Trace.TraceInformation("Application successfully started."); - - + + + Trace.TraceInformation("Application successfully started."); + + #region [ 最初のステージの起動 ] - //--------------------- + //--------------------- Trace.TraceInformation("----------------------"); Trace.TraceInformation("■ Startup"); @@ -2183,9 +2183,9 @@ for (int i = 0; i < 3; i++) { if (!ConfigIni.PreAssetsLoading) { r現在のステージ.CreateManagedResource(); r現在のステージ.CreateUnmanagedResource(); - } - - //--------------------- + } + + //--------------------- #endregion } @@ -2201,10 +2201,10 @@ for (int i = 0; i < 3; i++) { private void t終了処理() { if (!this.b終了処理完了済み) { Trace.TraceInformation("----------------------"); - Trace.TraceInformation("■ Shutdown"); + Trace.TraceInformation("■ Shutdown"); #region [ 曲検索の終了処理 ] - //--------------------- - + //--------------------- + if (actEnumSongs != null) { Trace.TraceInformation("Ending enumeration of songs..."); Trace.Indent(); @@ -2218,12 +2218,12 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region [ 現在のステージの終了処理 ] - //--------------------- - if (OpenTaiko.r現在のステージ != null && OpenTaiko.r現在のステージ.IsActivated) // #25398 2011.06.07 MODIFY FROM + //--------------------- + if (OpenTaiko.r現在のステージ != null && OpenTaiko.r現在のステージ.IsActivated) // #25398 2011.06.07 MODIFY FROM { Trace.TraceInformation("Exiting stage..."); Trace.Indent(); @@ -2237,27 +2237,27 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion - + #region Discordの処理 - DiscordClient?.Dispose(); + DiscordClient?.Dispose(); #endregion #region [ 曲リストの終了処理 ] - //--------------------- + //--------------------- if (Songs管理 != null) { Trace.TraceInformation("Ending song list..."); Trace.Indent(); - try { + try { #pragma warning disable SYSLIB0011 if (EnumSongs.IsSongListEnumCompletelyDone) { BinaryFormatter songlistdb_ = new BinaryFormatter(); using Stream songlistdb = File.OpenWrite($"{OpenTaiko.strEXEのあるフォルダ}songlist.db"); songlistdb_.Serialize(songlistdb, Songs管理.listSongsDB); - } + } #pragma warning restore SYSLIB0011 - + Songs管理 = null; Trace.TraceInformation("Song list terminated."); } catch (Exception exception) { @@ -2266,14 +2266,14 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region TextureLoaderの処理 - Tx.DisposeTexture(); + Tx.DisposeTexture(); #endregion #region [ スキンの終了処理 ] - //--------------------- + //--------------------- if (Skin != null) { Trace.TraceInformation("Terminating skin..."); Trace.Indent(); @@ -2287,11 +2287,11 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region [ DirectSoundの終了処理 ] - //--------------------- + //--------------------- if (SoundManager != null) { Trace.TraceInformation("Ending DirectSound devices..."); Trace.Indent(); @@ -2305,11 +2305,11 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region [ パッドの終了処理 ] - //--------------------- + //--------------------- if (Pad != null) { Trace.TraceInformation("Ending pads..."); Trace.Indent(); @@ -2322,11 +2322,11 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region [ DirectInput, MIDI入力の終了処理 ] - //--------------------- + //--------------------- if (InputManager != null) { Trace.TraceInformation("Ending DirectInput and MIDI devices..."); Trace.Indent(); @@ -2340,11 +2340,11 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region [ 文字コンソールの終了処理 ] - //--------------------- + //--------------------- if (actTextConsole != null) { Trace.TraceInformation("Ending console..."); Trace.Indent(); @@ -2360,11 +2360,11 @@ for (int i = 0; i < 3; i++) { } finally { Trace.Unindent(); } - } - //--------------------- + } + //--------------------- #endregion #region [ FPSカウンタの終了処理 ] - //--------------------- + //--------------------- Trace.TraceInformation("Ending FPS counter..."); Trace.Indent(); try { @@ -2374,11 +2374,11 @@ for (int i = 0; i < 3; i++) { Trace.TraceInformation("FPS counter terminated."); } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ タイマの終了処理 ] - //--------------------- + //--------------------- Trace.TraceInformation("Ending timer..."); Trace.Indent(); try { @@ -2391,11 +2391,11 @@ for (int i = 0; i < 3; i++) { } } finally { Trace.Unindent(); - } - //--------------------- + } + //--------------------- #endregion #region [ Config.iniの出力 ] - //--------------------- + //--------------------- Trace.TraceInformation("Outputting Config.ini..."); Trace.TraceInformation("This only needs to be done once, unless you have deleted the file!"); string str = strEXEのあるフォルダ + "Config.ini"; @@ -2427,9 +2427,9 @@ for (int i = 0; i < 3; i++) { Trace.TraceInformation("Deinitialized loudness scanning, song gain control, and sound group level control."); } - ConfigIni = null; - - //--------------------- + ConfigIni = null; + + //--------------------- #endregion Trace.TraceInformation("OpenTaiko has closed down successfully."); this.b終了処理完了済み = true; @@ -2444,9 +2444,9 @@ for (int i = 0; i < 3; i++) { private void ChangeResolution(int nWidth, int nHeight) { GameWindowSize.Width = nWidth; - GameWindowSize.Height = nHeight; - - //WindowSize = new Silk.NET.Maths.Vector2D(nWidth, nHeight); + GameWindowSize.Height = nHeight; + + //WindowSize = new Silk.NET.Maths.Vector2D(nWidth, nHeight); } public void RefreshSkin() { @@ -2473,9 +2473,9 @@ for (int i = 0; i < 3; i++) { OpenTaiko.stage結果.RefreshSkin(); CActSelectPopupMenu.RefleshSkin(); CActSelect段位リスト.RefleshSkin(); - } + } #endregion - + #region [ EXTENDED VARIABLES ] public static float fCamXOffset; public static float fCamYOffset; @@ -2486,7 +2486,7 @@ for (int i = 0; i < 3; i++) { public static float fCamXScale = 1.0f; public static float fCamYScale = 1.0f; - public static Color4 borderColor = new Color4(1f, 0f, 0f, 0f); + public static Color4 borderColor = new Color4(1f, 0f, 0f, 0f); #endregion } } diff --git a/OpenTaiko/src/Components/CVisualLogManager.cs b/OpenTaiko/src/Components/CVisualLogManager.cs index dae605e4..6b8e8b45 100644 --- a/OpenTaiko/src/Components/CVisualLogManager.cs +++ b/OpenTaiko/src/Components/CVisualLogManager.cs @@ -23,7 +23,7 @@ namespace OpenTaiko { int x = 0; int y = 0 + (40 * screenPosition); - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.Cyan, msg); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.Cyan, msg); } public bool IsExpired() { diff --git a/OpenTaiko/src/Stages/01.StartUp/CStage起動.cs b/OpenTaiko/src/Stages/01.StartUp/CStage起動.cs index 44d0a2fd..2539a878 100644 --- a/OpenTaiko/src/Stages/01.StartUp/CStage起動.cs +++ b/OpenTaiko/src/Stages/01.StartUp/CStage起動.cs @@ -173,7 +173,7 @@ namespace OpenTaiko { int x = 320; int y = 20; for (int i = 0; i < this.list進行文字列.Count; i++) { - OpenTaiko.actTextConsole.tPrint((int)(x * OpenTaiko.Skin.Resolution[0] / 1280.0), (int)(y * OpenTaiko.Skin.Resolution[1] / 720.0), CTextConsole.EFontType.White, this.list進行文字列[i]); + OpenTaiko.actTextConsole.Print((int)(x * OpenTaiko.Skin.Resolution[0] / 1280.0), (int)(y * OpenTaiko.Skin.Resolution[1] / 720.0), CTextConsole.EFontType.White, this.list進行文字列[i]); y += 24; } //----------------- diff --git a/OpenTaiko/src/Stages/02.Title/CStageタイトル.cs b/OpenTaiko/src/Stages/02.Title/CStageタイトル.cs index 13d648b1..49ae6859 100644 --- a/OpenTaiko/src/Stages/02.Title/CStageタイトル.cs +++ b/OpenTaiko/src/Stages/02.Title/CStageタイトル.cs @@ -823,11 +823,11 @@ namespace OpenTaiko { //string strVersion = "KTT:J:A:I:2017072200"; string strCreator = "https://github.com/0AuBSQ/OpenTaiko"; AssemblyName asmApp = Assembly.GetExecutingAssembly().GetName(); - OpenTaiko.actTextConsole.tPrint(4, 44, CTextConsole.EFontType.White, "DEBUG BUILD"); - OpenTaiko.actTextConsole.tPrint(4, 4, CTextConsole.EFontType.White, asmApp.Name + " Ver." + OpenTaiko.VERSION + " (" + strCreator + ")"); - OpenTaiko.actTextConsole.tPrint(4, 24, CTextConsole.EFontType.White, "Skin:" + OpenTaiko.Skin.Skin_Name + " Ver." + OpenTaiko.Skin.Skin_Version + " (" + OpenTaiko.Skin.Skin_Creator + ")"); + OpenTaiko.actTextConsole.Print(4, 44, CTextConsole.EFontType.White, "DEBUG BUILD"); + OpenTaiko.actTextConsole.Print(4, 4, CTextConsole.EFontType.White, asmApp.Name + " Ver." + OpenTaiko.VERSION + " (" + strCreator + ")"); + OpenTaiko.actTextConsole.Print(4, 24, CTextConsole.EFontType.White, "Skin:" + OpenTaiko.Skin.Skin_Name + " Ver." + OpenTaiko.Skin.Skin_Version + " (" + OpenTaiko.Skin.Skin_Creator + ")"); //CDTXMania.act文字コンソール.tPrint(4, 24, C文字コンソール.Eフォント種別.白, strSubTitle); - OpenTaiko.actTextConsole.tPrint(4, (OpenTaiko.Skin.Resolution[1] - 24), CTextConsole.EFontType.White, "TJAPlayer3 forked TJAPlayer2 forPC(kairera0467)"); + OpenTaiko.actTextConsole.Print(4, (OpenTaiko.Skin.Resolution[1] - 24), CTextConsole.EFontType.White, "TJAPlayer3 forked TJAPlayer2 forPC(kairera0467)"); #endif //TJAPlayer3.actTextConsole.tPrint(4, 64, CTextConsole.EFontType.White, CScoreIni_Importer.Status); diff --git a/OpenTaiko/src/Stages/04.Config/CActCalibrationMode.cs b/OpenTaiko/src/Stages/04.Config/CActCalibrationMode.cs index e2b4a145..6d598692 100644 --- a/OpenTaiko/src/Stages/04.Config/CActCalibrationMode.cs +++ b/OpenTaiko/src/Stages/04.Config/CActCalibrationMode.cs @@ -134,14 +134,14 @@ namespace OpenTaiko { offsettext?.t2D描画(OpenTaiko.Skin.Config_Calibration_OffsetText[0] - offsettext.szTextureSize.Width, OpenTaiko.Skin.Config_Calibration_OffsetText[1]); - OpenTaiko.actTextConsole.tPrint(OpenTaiko.Skin.Config_Calibration_InfoText[0], OpenTaiko.Skin.Config_Calibration_InfoText[1], CTextConsole.EFontType.Cyan, + OpenTaiko.actTextConsole.Print(OpenTaiko.Skin.Config_Calibration_InfoText[0], OpenTaiko.Skin.Config_Calibration_InfoText[1], CTextConsole.EFontType.Cyan, "MEDIAN OFFSET : " + GetMedianOffset() + "ms\n"); - OpenTaiko.actTextConsole.tPrint(OpenTaiko.Skin.Config_Calibration_InfoText[0], OpenTaiko.Skin.Config_Calibration_InfoText[1] + OpenTaiko.actTextConsole.nFontHeight, CTextConsole.EFontType.White, + OpenTaiko.actTextConsole.Print(OpenTaiko.Skin.Config_Calibration_InfoText[0], OpenTaiko.Skin.Config_Calibration_InfoText[1] + OpenTaiko.actTextConsole.fontHeight, CTextConsole.EFontType.White, "MIN OFFSET : " + GetLowestOffset() + "ms\n" + "MAX OFFSET : " + GetHighestOffset() + "ms\n" + "LAST OFFSET : " + LastOffset + "ms\n" + "OFFSET COUNT : " + (Offsets != null ? Offsets.Count : 0)); - OpenTaiko.actTextConsole.tPrint(OpenTaiko.Skin.Config_Calibration_InfoText[0], OpenTaiko.Skin.Config_Calibration_InfoText[1] + (OpenTaiko.actTextConsole.nFontHeight * 5), CTextConsole.EFontType.White, + OpenTaiko.actTextConsole.Print(OpenTaiko.Skin.Config_Calibration_InfoText[0], OpenTaiko.Skin.Config_Calibration_InfoText[1] + (OpenTaiko.actTextConsole.fontHeight * 5), CTextConsole.EFontType.White, "CURRENT OFFSET: " + CurrentOffset() + "ms"); #endregion diff --git a/OpenTaiko/src/Stages/04.Config/CStageコンフィグ.cs b/OpenTaiko/src/Stages/04.Config/CStageコンフィグ.cs index 53ad368a..62aae328 100644 --- a/OpenTaiko/src/Stages/04.Config/CStageコンフィグ.cs +++ b/OpenTaiko/src/Stages/04.Config/CStageコンフィグ.cs @@ -5,15 +5,15 @@ using FDK; using SkiaSharp; namespace OpenTaiko { - internal class CStageコンフィグ : CStage { - // Properties - + internal class CStageコンフィグ : CStage { + // Properties + public CActDFPFont actFont { get; private set; } - public CActCalibrationMode actCalibrationMode; - - - // Constructor - + public CActCalibrationMode actCalibrationMode; + + + // Constructor + public CStageコンフィグ() { CActDFPFont font; base.eStageID = CStage.EStage.Config; @@ -26,40 +26,40 @@ namespace OpenTaiko { base.ChildActivities.Add(this.actオプションパネル = new CActオプションパネル()); base.ChildActivities.Add(this.actCalibrationMode = new CActCalibrationMode()); base.IsDeActivated = true; - } - - - // メソッド - - public void tアサイン完了通知() // CONFIGにのみ存在 - { // - this.eItemPanelモード = EItemPanelモード.パッド一覧; // - } // - public void tパッド選択通知(EKeyConfigPart part, EKeyConfigPad pad) // - { // - this.actKeyAssign.t開始(part, pad, this.actList.ib現在の選択項目.str項目名); // - this.eItemPanelモード = EItemPanelモード.キーコード一覧; // - } // - public void t項目変更通知() // OPTIONと共通 - { // - this.t説明文パネルに現在選択されている項目の説明を描画する(); // - } // - - - // CStage 実装 - + } + + + // メソッド + + public void tアサイン完了通知() // CONFIGにのみ存在 + { // + this.eItemPanelモード = EItemPanelモード.パッド一覧; // + } // + public void tパッド選択通知(EKeyConfigPart part, EKeyConfigPad pad) // + { // + this.actKeyAssign.t開始(part, pad, this.actList.ib現在の選択項目.str項目名); // + this.eItemPanelモード = EItemPanelモード.キーコード一覧; // + } // + public void t項目変更通知() // OPTIONと共通 + { // + this.t説明文パネルに現在選択されている項目の説明を描画する(); // + } // + + + // CStage 実装 + public override void Activate() { Trace.TraceInformation("コンフィグステージを活性化します。"); Trace.Indent(); try { OpenTaiko.Skin.bgmコンフィグ画面.tPlay(); - this.n現在のメニュー番号 = 0; // - for (int i = 0; i < 4; i++) // - { // - this.ctキー反復用[i] = new CCounter(0, 0, 0, OpenTaiko.Timer); // - } // - this.bメニューにフォーカス中 = true; // ここまでOPTIONと共通 + this.n現在のメニュー番号 = 0; // + for (int i = 0; i < 4; i++) // + { // + this.ctキー反復用[i] = new CCounter(0, 0, 0, OpenTaiko.Timer); // + } // + this.bメニューにフォーカス中 = true; // ここまでOPTIONと共通 this.eItemPanelモード = EItemPanelモード.パッド一覧; ReloadMenus(); @@ -77,7 +77,7 @@ namespace OpenTaiko { Trace.TraceInformation("コンフィグステージの活性化を完了しました。"); Trace.Unindent(); } - base.Activate(); // 2011.3.14 yyagi: On活性化()をtryの中から外に移動 + base.Activate(); // 2011.3.14 yyagi: On活性化()をtryの中から外に移動 } public override void DeActivate() { Trace.TraceInformation("コンフィグステージを非活性化します。"); @@ -85,7 +85,7 @@ namespace OpenTaiko { try { OpenTaiko.Skin.bgmコンフィグ画面.tStop(); - OpenTaiko.ConfigIni.t書き出し(OpenTaiko.strEXEのあるフォルダ + "Config.ini"); // CONFIGだけ + OpenTaiko.ConfigIni.t書き出し(OpenTaiko.strEXEのあるフォルダ + "Config.ini"); // CONFIGだけ for (int i = 0; i < 4; i++) { this.ctキー反復用[i] = null; } @@ -143,23 +143,23 @@ namespace OpenTaiko { } } - public override void CreateManagedResource() // OPTIONと画像以外共通 - { - //if (HPrivateFastFont.FontExists(TJAPlayer3.Skin.FontName)) - //{ - // this.ftフォント = new CCachedFontRenderer(TJAPlayer3.Skin.FontName, (int)TJAPlayer3.Skin.Config_Font_Scale_Description, CFontRenderer.FontStyle.Bold); - //} - //else - //{ - // this.ftフォント = new CCachedFontRenderer(CFontRenderer.DefaultFontName, (int)TJAPlayer3.Skin.Config_Font_Scale_Description, CFontRenderer.FontStyle.Bold); - //} + public override void CreateManagedResource() // OPTIONと画像以外共通 + { + //if (HPrivateFastFont.FontExists(TJAPlayer3.Skin.FontName)) + //{ + // this.ftフォント = new CCachedFontRenderer(TJAPlayer3.Skin.FontName, (int)TJAPlayer3.Skin.Config_Font_Scale_Description, CFontRenderer.FontStyle.Bold); + //} + //else + //{ + // this.ftフォント = new CCachedFontRenderer(CFontRenderer.DefaultFontName, (int)TJAPlayer3.Skin.Config_Font_Scale_Description, CFontRenderer.FontStyle.Bold); + //} this.ftフォント = HPrivateFastFont.tInstantiateMainFont((int)OpenTaiko.Skin.Config_Font_Scale_Description, CFontRenderer.FontStyle.Bold); - OpenTaiko.Tx.Config_Cursor = OpenTaiko.tテクスチャの生成(CSkin.Path($"{TextureLoader.BASE}{TextureLoader.CONFIG}Cursor.png")); - - //ctBackgroundAnime = new CCounter(0, TJAPlayer3.Tx.Config_Background.szテクスチャサイズ.Width, 20, TJAPlayer3.Timer); - + OpenTaiko.Tx.Config_Cursor = OpenTaiko.tテクスチャの生成(CSkin.Path($"{TextureLoader.BASE}{TextureLoader.CONFIG}Cursor.png")); + + //ctBackgroundAnime = new CCounter(0, TJAPlayer3.Tx.Config_Background.szテクスチャサイズ.Width, 20, TJAPlayer3.Timer); + /* string[] strMenuItem = { CLangManager.LangInstance.GetString(10085), @@ -183,20 +183,20 @@ namespace OpenTaiko { } } } - */ + */ base.CreateManagedResource(); } - public override void ReleaseManagedResource() // OPTIONと同じ(COnfig.iniの書き出しタイミングのみ異なるが、無視して良い) + public override void ReleaseManagedResource() // OPTIONと同じ(COnfig.iniの書き出しタイミングのみ異なるが、無視して良い) { if (this.ftフォント != null) { this.ftフォント.Dispose(); this.ftフォント = null; - } - //CDTXMania.tテクスチャの解放( ref this.tx背景 ); - //CDTXMania.tテクスチャの解放( ref this.tx上部パネル ); - //CDTXMania.tテクスチャの解放( ref this.tx下部パネル ); - //CDTXMania.tテクスチャの解放( ref this.txMenuカーソル ); - + } + //CDTXMania.tテクスチャの解放( ref this.tx背景 ); + //CDTXMania.tテクスチャの解放( ref this.tx上部パネル ); + //CDTXMania.tテクスチャの解放( ref this.tx下部パネル ); + //CDTXMania.tテクスチャの解放( ref this.txMenuカーソル ); + OpenTaiko.tテクスチャの解放(ref this.tx説明文パネル); base.ReleaseManagedResource(); } @@ -208,31 +208,31 @@ namespace OpenTaiko { base.ePhaseID = CStage.EPhase.Common_FADEIN; this.actFIFO.tフェードイン開始(); base.IsFirstDraw = false; - } - - //ctBackgroundAnime.t進行Loop(); - - // 描画 - + } + + //ctBackgroundAnime.t進行Loop(); + + // 描画 + #region [ Background ] - - //--------------------- + + //--------------------- /* for(int i = 0; i < 2; i++) if (TJAPlayer3.Tx.Config_Background != null ) TJAPlayer3.Tx.Config_Background.t2D描画( 0 + -(TJAPlayer3.Tx.Config_Background.szテクスチャサイズ.Width * i) + ctBackgroundAnime.n現在の値, 0 ); if(TJAPlayer3.Tx.Config_Header != null ) TJAPlayer3.Tx.Config_Header.t2D描画( 0, 0 ); - */ + */ Background.Update(); - Background.Draw(); - //--------------------- - + Background.Draw(); + //--------------------- + #endregion - + #region [ Menu Cursor ] - //--------------------- - if (OpenTaiko.Tx.Config_Cursor != null) { + //--------------------- + if (OpenTaiko.Tx.Config_Cursor != null) { #region Old /* Rectangle rectangle; @@ -253,63 +253,63 @@ namespace OpenTaiko { TJAPlayer3.Tx.TJAPlayer3.Tx.Config_Cursor.t2D描画( x, y, rectangle ); x += rectangle.Width; } - */ + */ #endregion - - + + int x = OpenTaiko.Skin.Config_Item_X[this.n現在のメニュー番号]; int y = OpenTaiko.Skin.Config_Item_Y[this.n現在のメニュー番号]; int width = OpenTaiko.Tx.Config_Cursor.sz画像サイズ.Width / 3; int height = OpenTaiko.Tx.Config_Cursor.sz画像サイズ.Height; - int move = OpenTaiko.Skin.Config_Item_Width; - - //Left + int move = OpenTaiko.Skin.Config_Item_Width; + + //Left OpenTaiko.Tx.Config_Cursor.t2D中心基準描画(x - (width / 2) - move, y, - new Rectangle(0, 0, width, height)); - - //Right + new Rectangle(0, 0, width, height)); + + //Right OpenTaiko.Tx.Config_Cursor.t2D中心基準描画(x + (width / 2) + move, y, - new Rectangle(width * 2, 0, width, height)); - - //Center + new Rectangle(width * 2, 0, width, height)); + + //Center OpenTaiko.Tx.Config_Cursor.vcScaleRatio.X = (move / (float)width) * 2.0f; OpenTaiko.Tx.Config_Cursor.t2D拡大率考慮中央基準描画(x, y, new Rectangle(width, 0, width, height)); OpenTaiko.Tx.Config_Cursor.vcScaleRatio.X = 1.0f; - } - //--------------------- + } + //--------------------- #endregion - + #region [ Menu ] - //--------------------- - //int menuY = 162 - 22 + 13; - //int stepY = 39; - for (int i = 0; i < txMenuItemLeft.GetLength(0); i++) { - //Bitmap bmpStr = (this.n現在のメニュー番号 == i) ? - // prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) : - // prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black ); - //txMenuItemLeft = CDTXMania.tテクスチャの生成( bmpStr, false ); - + //--------------------- + //int menuY = 162 - 22 + 13; + //int stepY = 39; + for (int i = 0; i < txMenuItemLeft.GetLength(0); i++) { + //Bitmap bmpStr = (this.n現在のメニュー番号 == i) ? + // prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) : + // prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black ); + //txMenuItemLeft = CDTXMania.tテクスチャの生成( bmpStr, false ); + int flag = (this.n現在のメニュー番号 == i) ? 1 : 0; - txMenuItemLeft[i, flag].t2D中心基準描画(OpenTaiko.Skin.Config_Item_X[i] + OpenTaiko.Skin.Config_Item_Font_Offset[0], OpenTaiko.Skin.Config_Item_Y[i] + OpenTaiko.Skin.Config_Item_Font_Offset[1]); //55 - //txMenuItem.Dispose(); - //menuY += stepY; - } - //--------------------- + txMenuItemLeft[i, flag].t2D中心基準描画(OpenTaiko.Skin.Config_Item_X[i] + OpenTaiko.Skin.Config_Item_Font_Offset[0], OpenTaiko.Skin.Config_Item_Y[i] + OpenTaiko.Skin.Config_Item_Font_Offset[1]); //55 + //txMenuItem.Dispose(); + //menuY += stepY; + } + //--------------------- #endregion - + #region [ Explanation Panel ] - //--------------------- + //--------------------- if (this.tx説明文パネル != null) - this.tx説明文パネル.t2D描画(OpenTaiko.Skin.Config_ExplanationPanel[0], OpenTaiko.Skin.Config_ExplanationPanel[1]); - //--------------------- + this.tx説明文パネル.t2D描画(OpenTaiko.Skin.Config_ExplanationPanel[0], OpenTaiko.Skin.Config_ExplanationPanel[1]); + //--------------------- #endregion - + #region [ Item ] - //--------------------- + //--------------------- switch (this.eItemPanelモード) { case EItemPanelモード.パッド一覧: this.actList.t進行描画(!this.bメニューにフォーカス中); @@ -318,31 +318,31 @@ namespace OpenTaiko { case EItemPanelモード.キーコード一覧: this.actKeyAssign.Draw(); break; - } - //--------------------- + } + //--------------------- #endregion - - //#region [ 上部パネル ] - ////--------------------- - //if( this.tx上部パネル != null ) - // this.tx上部パネル.t2D描画( CDTXMania.app.Device, 0, 0 ); - ////--------------------- - //#endregion - //#region [ 下部パネル ] - ////--------------------- - //if( this.tx下部パネル != null ) - // this.tx下部パネル.t2D描画( CDTXMania.app.Device, 0, 720 - this.tx下部パネル.szテクスチャサイズ.Height ); - ////--------------------- - //#endregion - + + //#region [ 上部パネル ] + ////--------------------- + //if( this.tx上部パネル != null ) + // this.tx上部パネル.t2D描画( CDTXMania.app.Device, 0, 0 ); + ////--------------------- + //#endregion + //#region [ 下部パネル ] + ////--------------------- + //if( this.tx下部パネル != null ) + // this.tx下部パネル.t2D描画( CDTXMania.app.Device, 0, 720 - this.tx下部パネル.szテクスチャサイズ.Height ); + ////--------------------- + //#endregion + #region [ Option Panel ] - //--------------------- - //this.actオプションパネル.On進行描画(); - //--------------------- + //--------------------- + //this.actオプションパネル.On進行描画(); + //--------------------- #endregion - + #region [ FadeOut ] - //--------------------- + //--------------------- switch (base.ePhaseID) { case CStage.EPhase.Common_FADEIN: if (this.actFIFO.Draw() != 0) { @@ -355,16 +355,16 @@ namespace OpenTaiko { break; } return 1; - } - //--------------------- + } + //--------------------- #endregion - + #region [ Enumerating Songs ] - // CActEnumSongs側で表示する + // CActEnumSongs側で表示する #endregion - - // キー入力 - + + // キー入力 + if ((base.ePhaseID != CStage.EPhase.Common_NORMAL) || this.actKeyAssign.bキー入力待ちの最中である) return 0; @@ -396,8 +396,8 @@ namespace OpenTaiko { status_text.t2D_DisplayImage_AnchorCenter(SampleFramework.GameWindowSize.Width / 2, SampleFramework.GameWindowSize.Height / 2); } } - } - // 曲データの一覧取得中は、キー入力を無効化する + } + // 曲データの一覧取得中は、キー入力を無効化する else if (!OpenTaiko.EnumSongs.IsEnumerating || OpenTaiko.actEnumSongs.bコマンドでの曲データ取得 != true) { if (!OpenTaiko.Skin.bgmコンフィグ画面.bIsPlaying) OpenTaiko.Skin.bgmコンフィグ画面.tPlay(); @@ -409,19 +409,19 @@ namespace OpenTaiko { OpenTaiko.stageコンフィグ.tアサイン完了通知(); return 0; } - if (!this.actList.bIsKeyAssignSelected && !this.actList.bIsFocusingParameter) // #24525 2011.3.15 yyagi, #32059 2013.9.17 yyagi + if (!this.actList.bIsKeyAssignSelected && !this.actList.bIsFocusingParameter) // #24525 2011.3.15 yyagi, #32059 2013.9.17 yyagi { this.bメニューにフォーカス中 = true; } this.t説明文パネルに現在選択されているメニューの説明を描画する(); - this.actList.tEsc押下(); // #24525 2011.3.15 yyagi ESC押下時の右メニュー描画用 + this.actList.tEsc押下(); // #24525 2011.3.15 yyagi ESC押下時の右メニュー描画用 } else { this.actFIFO.tフェードアウト開始(); base.ePhaseID = CStage.EPhase.Common_FADEOUT; } } else if ((OpenTaiko.Pad.bPressedDGB(EPad.CY) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RD)) || (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LC) || (OpenTaiko.ConfigIni.bEnterIsNotUsedInKeyAssignments && OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Return)))) { - if (this.n現在のメニュー番号 == 2) { - // Exit + if (this.n現在のメニュー番号 == 2) { + // Exit OpenTaiko.Skin.soundDecideSFX.tPlay(); this.actFIFO.tフェードアウト開始(); base.ePhaseID = CStage.EPhase.Common_FADEOUT; @@ -432,14 +432,14 @@ namespace OpenTaiko { } else { switch (this.eItemPanelモード) { case EItemPanelモード.パッド一覧: - bool bIsKeyAssignSelectedBeforeHitEnter = this.actList.bIsKeyAssignSelected; // #24525 2011.3.15 yyagi + bool bIsKeyAssignSelectedBeforeHitEnter = this.actList.bIsKeyAssignSelected; // #24525 2011.3.15 yyagi this.actList.tEnter押下(); this.t説明文パネルに現在選択されている項目の説明を描画する(); if (this.actList.b現在選択されている項目はReturnToMenuである) { this.t説明文パネルに現在選択されているメニューの説明を描画する(); - if (bIsKeyAssignSelectedBeforeHitEnter == false) // #24525 2011.3.15 yyagi + if (bIsKeyAssignSelectedBeforeHitEnter == false) // #24525 2011.3.15 yyagi { this.bメニューにフォーカス中 = true; } @@ -453,24 +453,24 @@ namespace OpenTaiko { } } this.ctキー反復用.Up.KeyIntervalFunc(OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.UpArrow), new CCounter.KeyProcess(this.tカーソルを上へ移動する)); - this.ctキー反復用.R.KeyIntervalFunc(OpenTaiko.Pad.b押されているGB(EPad.HH), new CCounter.KeyProcess(this.tカーソルを上へ移動する)); + this.ctキー反復用.R.KeyIntervalFunc(OpenTaiko.Pad.IsPressingGB(EPad.HH), new CCounter.KeyProcess(this.tカーソルを上へ移動する)); if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.SD)) { this.tカーソルを上へ移動する(); } this.ctキー反復用.Down.KeyIntervalFunc(OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.DownArrow), new CCounter.KeyProcess(this.tカーソルを下へ移動する)); - this.ctキー反復用.B.KeyIntervalFunc(OpenTaiko.Pad.b押されているGB(EPad.BD), new CCounter.KeyProcess(this.tカーソルを下へ移動する)); + this.ctキー反復用.B.KeyIntervalFunc(OpenTaiko.Pad.IsPressingGB(EPad.BD), new CCounter.KeyProcess(this.tカーソルを下へ移動する)); if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LT)) { this.tカーソルを下へ移動する(); } } return 0; - } - - - // その他 - + } + + + // その他 + #region [ private ] - //----------------- + //----------------- private enum EItemPanelモード { パッド一覧, キーコード一覧 @@ -520,9 +520,9 @@ namespace OpenTaiko { throw new IndexOutOfRangeException(); } } - } - - //private CCounter ctBackgroundAnime; + } + + //private CCounter ctBackgroundAnime; private CActFIFOWhite actFIFO; private CActConfigKeyAssign actKeyAssign; public CActConfigList actList; @@ -533,12 +533,12 @@ namespace OpenTaiko { private const int DESC_W = 220; private EItemPanelモード eItemPanelモード; internal CCachedFontRenderer ftフォント; - private int n現在のメニュー番号; - //private CTexture txMenuカーソル; - //private CTexture tx下部パネル; - //private CTexture tx上部パネル; - private CTexture tx説明文パネル; - //private CTexture tx背景; + private int n現在のメニュー番号; + //private CTexture txMenuカーソル; + //private CTexture tx下部パネル; + //private CTexture tx上部パネル; + private CTexture tx説明文パネル; + //private CTexture tx背景; private CTexture[,] txMenuItemLeft; private ScriptBG Background; @@ -631,8 +631,8 @@ namespace OpenTaiko { } private void t説明文パネルに現在選択されている項目の説明を描画する() { try { - var image = new SKBitmap(440, 288); // 説明文領域サイズの縦横 2 倍。(描画時に 0.5 倍で表示する___のは中止。処理速度向上のため。) - + var image = new SKBitmap(440, 288); // 説明文領域サイズの縦横 2 倍。(描画時に 0.5 倍で表示する___のは中止。処理速度向上のため。) + CItemBase item = this.actList.ib現在の選択項目; if ((item.str説明文 != null) && (item.str説明文.Length > 0)) { image.Dispose(); @@ -648,8 +648,8 @@ namespace OpenTaiko { Trace.TraceError("説明文パネルテクスチャの作成に失敗しました。"); this.tx説明文パネル = null; } - } - //----------------- + } + //----------------- #endregion } } diff --git a/OpenTaiko/src/Stages/05.SongSelect/CActSelectPopupMenu.cs b/OpenTaiko/src/Stages/05.SongSelect/CActSelectPopupMenu.cs index 08dae64c..cfdc2870 100644 --- a/OpenTaiko/src/Stages/05.SongSelect/CActSelectPopupMenu.cs +++ b/OpenTaiko/src/Stages/05.SongSelect/CActSelectPopupMenu.cs @@ -264,14 +264,14 @@ namespace OpenTaiko { #endregion #region [ キー入力: 前に移動 ] this.ctキー反復用.Up.KeyIntervalFunc(OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.UpArrow), new CCounter.KeyProcess(this.t前に移動)); - this.ctキー反復用.R.KeyIntervalFunc(OpenTaiko.Pad.b押されているGB(EPad.R), new CCounter.KeyProcess(this.t前に移動)); + this.ctキー反復用.R.KeyIntervalFunc(OpenTaiko.Pad.IsPressingGB(EPad.R), new CCounter.KeyProcess(this.t前に移動)); if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.SD) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LBlue)) { this.t前に移動(); } #endregion #region [ キー入力: 次に移動 ] this.ctキー反復用.Down.KeyIntervalFunc(OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.DownArrow), new CCounter.KeyProcess(this.t次に移動)); - this.ctキー反復用.B.KeyIntervalFunc(OpenTaiko.Pad.b押されているGB(EPad.B), new CCounter.KeyProcess(this.t次に移動)); + this.ctキー反復用.B.KeyIntervalFunc(OpenTaiko.Pad.IsPressingGB(EPad.B), new CCounter.KeyProcess(this.t次に移動)); if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LT) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RBlue)) { this.t次に移動(); } diff --git a/OpenTaiko/src/Stages/05.SongSelect/CStage選曲.cs b/OpenTaiko/src/Stages/05.SongSelect/CStage選曲.cs index 4a65048d..2bc07685 100644 --- a/OpenTaiko/src/Stages/05.SongSelect/CStage選曲.cs +++ b/OpenTaiko/src/Stages/05.SongSelect/CStage選曲.cs @@ -5,16 +5,16 @@ using System.Text; using DiscordRPC; using FDK; -namespace OpenTaiko { +namespace OpenTaiko { /* ** class CSongSelectSongManager ** playSongIfPossible : Play song is enabled and not playing, supports both intro and regular song ** stopSong : Stop song without disabling it ** enable : Enable the menu song ** disable : Disable the menu song - */ + */ #region [Generic static class for handling the menu song] - + static internal class CSongSelectSongManager { public static CSkin.CSystemSound bgmIn { get { @@ -68,12 +68,12 @@ namespace OpenTaiko { private static bool inSongPlayed = false; private static bool isSongDisabled = false; - } - + } + #endregion - - internal class CStage選曲 : CStage { - // Properties + + internal class CStage選曲 : CStage { + // Properties public int nスクロールバー相対y座標 { get { if (actSongList != null) { @@ -132,17 +132,17 @@ namespace OpenTaiko { set { this.actSongList.rCurrentlySelectedSong = value; } - } - - // コンストラクタ + } + + // コンストラクタ public CStage選曲() { base.eStageID = CStage.EStage.SongSelect; base.ePhaseID = CStage.EPhase.Common_NORMAL; base.IsDeActivated = true; base.ChildActivities.Add(this.actオプションパネル = new CActオプションパネル()); base.ChildActivities.Add(this.actFIFO = new CActFIFOBlack()); - base.ChildActivities.Add(this.actFIfrom結果画面 = new CActFIFOBlack()); - //base.list子Activities.Add( this.actFOtoNowLoading = new CActFIFOBlack() ); + base.ChildActivities.Add(this.actFIfrom結果画面 = new CActFIFOBlack()); + //base.list子Activities.Add( this.actFOtoNowLoading = new CActFIFOBlack() ); base.ChildActivities.Add(this.actFOtoNowLoading = new CActFIFOStart()); base.ChildActivities.Add(this.actSongList = new CActSelect曲リスト()); base.ChildActivities.Add(this.actSongInfo = new CActSelectSongInfo()); @@ -174,12 +174,12 @@ namespace OpenTaiko { stBoardNumber[i].pt = new Point(15 * i, 0); } - this.CommandHistory = new CCommandHistory(); // #24063 2011.1.16 yyagi - } - - - // メソッド - + this.CommandHistory = new CCommandHistory(); // #24063 2011.1.16 yyagi + } + + + // メソッド + public void tNotifySelectedSongChange() { int scroll = this.ct背景スクロール用タイマー.CurrentValue; @@ -213,10 +213,10 @@ namespace OpenTaiko { this.act演奏履歴パネル.t選択曲が変更された(); this.actステータスパネル.t選択曲が変更された(); this.actArtistComment.t選択曲が変更された(); - actDanInfo.UpdateSong(); - + actDanInfo.UpdateSong(); + #region [ プラグインにも通知する(BOX, RANDOM, BACK なら通知しない)] - //--------------------- + //--------------------- if (OpenTaiko.app != null) { var c曲リストノード = OpenTaiko.stageSongSelect.rNowSelectedSong; var cスコア = OpenTaiko.stageSongSelect.r現在選択中のスコア; @@ -225,13 +225,13 @@ namespace OpenTaiko { string str選択曲ファイル名 = cスコア.ファイル情報.ファイルの絶対パス; int n曲番号inブロック = OpenTaiko.stageSongSelect.actSongList.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(c曲リストノード); } - } - //--------------------- + } + //--------------------- #endregion - } - - // CStage 実装 - + } + + // CStage 実装 + /// /// 曲リストをリセットする /// @@ -245,9 +245,9 @@ namespace OpenTaiko { Trace.Indent(); try { nChoosenSongDifficulty = new int[5]; - this.eフェードアウト完了時の戻り値 = E戻り値.継続; - - // BGM played + this.eフェードアウト完了時の戻り値 = E戻り値.継続; + + // BGM played this.bBGM再生済み = false; this.ct背景スクロール用タイマー = new CCounter(0, txGenreBack.szTextureSize.Width, 30, OpenTaiko.Timer); @@ -256,15 +256,15 @@ namespace OpenTaiko { OpenTaiko.Skin.voiceMenuSongSelect[OpenTaiko.SaveFile]?.tPlay(); for (int i = 0; i < 2; i++) - this.ctキー反復用[i] = new CCounter(0, 0, 0, OpenTaiko.Timer); - - //ctChara_Normal = new CCounter(0, TJAPlayer3.Tx.SongSelect_Chara_Normal.Length - 1, 1000 / 45, TJAPlayer3.Timer); - CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.NORMAL); - - //ctChara_Select = new CCounter(); - //ctChara_Jump[0] = new CCounter(); - //ctChara_Jump[1] = new CCounter(); - + this.ctキー反復用[i] = new CCounter(0, 0, 0, OpenTaiko.Timer); + + //ctChara_Normal = new CCounter(0, TJAPlayer3.Tx.SongSelect_Chara_Normal.Length - 1, 1000 / 45, TJAPlayer3.Timer); + CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.NORMAL); + + //ctChara_Select = new CCounter(); + //ctChara_Jump[0] = new CCounter(); + //ctChara_Jump[1] = new CCounter(); + CMenuCharacter.tDisableCounter(CMenuCharacter.ECharacterAnimation.SELECT); CMenuCharacter.tDisableCounter(CMenuCharacter.ECharacterAnimation.START); @@ -274,22 +274,22 @@ namespace OpenTaiko { this.PuchiChara.IdleAnimation(); - ctBackgroundFade.CurrentValue = 600; - + ctBackgroundFade.CurrentValue = 600; + /* if(TJAPlayer3.ConfigIni.bBGM音を発声する && !TJAPlayer3.Skin.bgm選曲画面イン.b再生中 && !TJAPlayer3.Skin.bgm選曲画面.b再生中) TJAPlayer3.Skin.bgm選曲画面イン.t再生する(); - */ - - + */ + + for (int i = 0; i < 3; i++) - r[i] = new Random(); - - //this.act難易度選択画面.bIsDifficltSelect = true; + r[i] = new Random(); + + //this.act難易度選択画面.bIsDifficltSelect = true; base.Activate(); - this.actステータスパネル.t選択曲が変更された(); // 最大ランクを更新 - // Discord Presenceの更新 + this.actステータスパネル.t選択曲が変更された(); // 最大ランクを更新 + // Discord Presenceの更新 OpenTaiko.DiscordClient?.SetPresence(new RichPresence() { Details = "", State = "SongSelect", @@ -344,9 +344,9 @@ namespace OpenTaiko { public override int Draw() { if (!base.IsDeActivated) { this.ct背景スクロール用タイマー.TickLoop(); - this.ctOldBGScroll.TickLoop(); + this.ctOldBGScroll.TickLoop(); #region [ 初めての進行描画 ] - //--------------------- + //--------------------- if (base.IsFirstDraw) { this.ct登場時アニメ用共通 = new CCounter(0, 100, 3, OpenTaiko.Timer); if (OpenTaiko.r直前のステージ == OpenTaiko.stage結果) { @@ -358,20 +358,20 @@ namespace OpenTaiko { } this.tNotifySelectedSongChange(); base.IsFirstDraw = false; - } - //--------------------- + } + //--------------------- #endregion - - + + ctTimer.Tick(); ctCreditAnime.TickLoop(); - ctBackgroundFade.Tick(); - - //ctChara_Select.t進行(); - //ctChara_Jump[0].t進行(); - //ctChara_Jump[1].t進行(); - //ctChara_Normal.t進行Loop(); - + ctBackgroundFade.Tick(); + + //ctChara_Select.t進行(); + //ctChara_Jump[0].t進行(); + //ctChara_Jump[1].t進行(); + //ctChara_Normal.t進行Loop(); + this.ct登場時アニメ用共通.Tick(); if (OpenTaiko.ConfigIni.bAIBattleMode) { @@ -382,10 +382,10 @@ namespace OpenTaiko { OpenTaiko.Tx.SongSelect_Background.t2D描画(0, 0); } - if (this.rNowSelectedSong != null) { - + if (this.rNowSelectedSong != null) { + #region [Background] - + nGenreBack = this.NowBg; nOldGenreBack = this.OldBg; @@ -414,12 +414,12 @@ namespace OpenTaiko { } } } - } - + } + #endregion - + #region [Song Panel] - + if (this.rNowSelectedSong.eノード種別 == CSongListNode.ENodeType.BOX) { OpenTaiko.Tx.SongSelect_Song_Panel[0]?.t2D描画(0, 0); } else if (this.rNowSelectedSong.eノード種別 == CSongListNode.ENodeType.SCORE) { @@ -436,15 +436,15 @@ namespace OpenTaiko { else OpenTaiko.Tx.SongSelect_Song_Panel[1]?.t2D描画(0, 0); } - } - + } + #endregion } this.actSongList.Draw(); int y = 0; if (this.ct登場時アニメ用共通.IsTicked) { - double db登場割合 = ((double)this.ct登場時アニメ用共通.CurrentValue) / 100.0; // 100が最終値 + double db登場割合 = ((double)this.ct登場時アニメ用共通.CurrentValue) / 100.0; // 100が最終値 double dbY表示割合 = Math.Sin(Math.PI / 2 * db登場割合); y = ((int)(OpenTaiko.Tx.SongSelect_Header.sz画像サイズ.Height * dbY表示割合)) - OpenTaiko.Tx.SongSelect_Header.sz画像サイズ.Height; } @@ -452,10 +452,10 @@ namespace OpenTaiko { OpenTaiko.Tx.SongSelect_Header?.t2D描画(0, 0); OpenTaiko.Tx.SongSelect_Footer?.t2D描画(0, 0); - tTimerDraw(100 - ctTimer.CurrentValue); - + tTimerDraw(100 - ctTimer.CurrentValue); + #region [Song Info] - + if (this.rNowSelectedSong != null) { if (this.rNowSelectedSong.eノード種別 == CSongListNode.ENodeType.BOX) { } else if (this.rNowSelectedSong.eノード種別 == CSongListNode.ENodeType.SCORE) { @@ -472,34 +472,34 @@ namespace OpenTaiko { } } } - } - + } + #endregion - + tSongNumberDraw(OpenTaiko.Skin.SongSelect_SongNumber_X[0], OpenTaiko.Skin.SongSelect_SongNumber_Y[0], NowSong); tSongNumberDraw(OpenTaiko.Skin.SongSelect_SongNumber_X[1], OpenTaiko.Skin.SongSelect_SongNumber_Y[1], MaxSong); - this.actInformation.Draw(); - + this.actInformation.Draw(); + #region[Modicons] - + for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) { ModIcons.tDisplayModsMenu(OpenTaiko.Skin.SongSelect_ModIcons_X[i], OpenTaiko.Skin.SongSelect_ModIcons_Y[i], i); } if (OpenTaiko.ConfigIni.bTokkunMode) - OpenTaiko.actTextConsole.tPrint(0, 0, CTextConsole.EFontType.White, "GAME: TRAINING MODE"); + OpenTaiko.actTextConsole.Print(0, 0, CTextConsole.EFontType.White, "GAME: TRAINING MODE"); if (OpenTaiko.ConfigIni.eGameMode == EGame.Survival) - OpenTaiko.actTextConsole.tPrint(0, 16, CTextConsole.EFontType.White, "GAME: SURVIVAL"); + OpenTaiko.actTextConsole.Print(0, 16, CTextConsole.EFontType.White, "GAME: SURVIVAL"); if (OpenTaiko.ConfigIni.eGameMode == EGame.SurvivalHard) - OpenTaiko.actTextConsole.tPrint(0, 16, CTextConsole.EFontType.White, "GAME: SURVIVAL HARD"); + OpenTaiko.actTextConsole.Print(0, 16, CTextConsole.EFontType.White, "GAME: SURVIVAL HARD"); if (OpenTaiko.ConfigIni.bSuperHard) - OpenTaiko.actTextConsole.tPrint(0, 32, CTextConsole.EFontType.Cyan, "SUPER HARD MODE : ON"); - + OpenTaiko.actTextConsole.Print(0, 32, CTextConsole.EFontType.Cyan, "SUPER HARD MODE : ON"); + #endregion - + #region [Preimage, upper lock layer and unlock conditions] - + if (this.rNowSelectedSong != null && this.rNowSelectedSong.eノード種別 == CSongListNode.ENodeType.SCORE) { var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(this.rNowSelectedSong); @@ -518,44 +518,44 @@ namespace OpenTaiko { TitleTextureKey.ResolveTitleTexture(actSongList.ttkNowUnlockConditionText)?.t2D描画(OpenTaiko.Skin.SongSelect_Unlock_Conditions_Text[0], OpenTaiko.Skin.SongSelect_Unlock_Conditions_Text[1]); } } - } - + } + #endregion - + this.actPresound.Draw(); this.act演奏履歴パネル.Draw(); - this.actShowCurrentPosition.Draw(); // #27648 2011.3.28 yyagi - - // Select screen song + this.actShowCurrentPosition.Draw(); // #27648 2011.3.28 yyagi + + // Select screen song if (base.ePhaseID == CStage.EPhase.Common_NORMAL) { CSongSelectSongManager.playSongIfPossible(); } if (this.ctDiffSelect移動待ち != null) - this.ctDiffSelect移動待ち.Tick(); - - + this.ctDiffSelect移動待ち.Tick(); + + #region [Character & PuchiChara] - - - //if (this.ctChara_Select.b終了値に達してない) - + + + //if (this.ctChara_Select.b終了値に達してない) + for (int player = 0; player < OpenTaiko.ConfigIni.nPlayerCount; player++) { CCounter ___cc = CMenuCharacter._getReferenceCounter(CMenuCharacter.ECharacterAnimation.SELECT)[player]; - int _charaId = OpenTaiko.SaveFileInstances[OpenTaiko.GetActualPlayer(player)].data.Character; - - //int chara_x = TJAPlayer3.Skin.Characters_Menu_X[_charaId][player]; - //int chara_y = TJAPlayer3.Skin.Characters_Menu_Y[_charaId][player]; - + int _charaId = OpenTaiko.SaveFileInstances[OpenTaiko.GetActualPlayer(player)].data.Character; + + //int chara_x = TJAPlayer3.Skin.Characters_Menu_X[_charaId][player]; + //int chara_y = TJAPlayer3.Skin.Characters_Menu_Y[_charaId][player]; + int chara_x = OpenTaiko.Skin.SongSelect_NamePlate_X[player] + OpenTaiko.Tx.NamePlateBase.szTextureSize.Width / 2; - int chara_y = OpenTaiko.Skin.SongSelect_NamePlate_Y[player]; - - //int puchi_x = player == 0 ? 0 + 100 : 981 + 250; - //int puchi_y = player == 0 ? 330 + 230 : 330 + 230; - + int chara_y = OpenTaiko.Skin.SongSelect_NamePlate_Y[player]; + + //int puchi_x = player == 0 ? 0 + 100 : 981 + 250; + //int puchi_y = player == 0 ? 330 + 230 : 330 + 230; + int puchi_x = chara_x + OpenTaiko.Skin.Adjustments_MenuPuchichara_X[player % 2]; int puchi_y = chara_y + OpenTaiko.Skin.Adjustments_MenuPuchichara_Y[player % 2]; @@ -581,19 +581,19 @@ namespace OpenTaiko { this.PuchiChara.On進行描画(puchi_x, puchi_y, false, 255, false, player); } } - } - - + } + + #endregion - + #region [ Nameplate ] for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) { OpenTaiko.NamePlate.tNamePlateDraw(OpenTaiko.Skin.SongSelect_NamePlate_X[i], OpenTaiko.Skin.SongSelect_NamePlate_Y[i], i); - } + } #endregion - + #region [Pad displayables] - + int defaultTable = Math.Max(0, Math.Min((int)Difficulty.Edit + 1, OpenTaiko.ConfigIni.nDefaultCourse)); int[] currentPads = new int[5] { @@ -601,9 +601,9 @@ namespace OpenTaiko { defaultTable, defaultTable, defaultTable, - defaultTable }; - - //int currentPad = (int)Difficulty.Edit + 1; + defaultTable }; + + //int currentPad = (int)Difficulty.Edit + 1; if (OpenTaiko.stageSongSelect.actDifficultySelectionScreen.bIsDifficltSelect) { if (OpenTaiko.stageSongSelect.actDifficultySelectionScreen.n現在の選択行[0] >= 2) currentPads[0] = OpenTaiko.stageSongSelect.actDifficultySelectionScreen.n現在の選択行[0] - 2; @@ -626,9 +626,9 @@ namespace OpenTaiko { OpenTaiko.Tx.SongSelect_Table[currentPads[i]]?.t2D描画(OpenTaiko.Skin.SongSelect_Table_X[i], OpenTaiko.Skin.SongSelect_Table_Y[i]); - CActSelect曲リスト.CScorePad[] SPArrRef = CSongDict.ScorePads[p]; - - // Current board + CActSelect曲リスト.CScorePad[] SPArrRef = CSongDict.ScorePads[p]; + + // Current board for (int j = 0; j < 11; j++) { tBoardNumberDraw(OpenTaiko.Skin.SongSelect_BoardNumber_X[i][j], OpenTaiko.Skin.SongSelect_BoardNumber_Y[i][j], j < 7 ? SPArrRef[currentPads[i]].ScoreRankCount[j] @@ -650,10 +650,10 @@ namespace OpenTaiko { int p = OpenTaiko.GetActualPlayer(i); if (OpenTaiko.SaveFileInstances[p].data.Medals >= 0) - tBoardNumberDraw(OpenTaiko.Skin.SongSelect_BoardNumber_X[i][11], OpenTaiko.Skin.SongSelect_BoardNumber_Y[i][11], (int)OpenTaiko.SaveFileInstances[p].data.Medals); - + tBoardNumberDraw(OpenTaiko.Skin.SongSelect_BoardNumber_X[i][11], OpenTaiko.Skin.SongSelect_BoardNumber_Y[i][11], (int)OpenTaiko.SaveFileInstances[p].data.Medals); + #region [HiScore plate] - + var song = this.rNowSelectedSong; if (song != null && song.eノード種別 == CSongListNode.ENodeType.SCORE) { @@ -690,37 +690,37 @@ namespace OpenTaiko { tBoardNumberDraw(OpenTaiko.Skin.SongSelect_BoardNumber_X[i][12], OpenTaiko.Skin.SongSelect_BoardNumber_Y[i][12], displayedScore); } - } - + } + #endregion - } - + } + #endregion - - + + #region [ Inputs ] - - // キー入力 - if (base.ePhaseID == CStage.EPhase.Common_NORMAL) { + + // キー入力 + if (base.ePhaseID == CStage.EPhase.Common_NORMAL) { #region [ 簡易CONFIGでMore、またはShift+F1: 詳細CONFIG呼び出し ] - if (actQuickConfig.bGotoDetailConfig) { // 詳細CONFIG呼び出し + if (actQuickConfig.bGotoDetailConfig) { // 詳細CONFIG呼び出し actQuickConfig.tDeativatePopupMenu(); this.actPresound.tStopSound(); - this.eフェードアウト完了時の戻り値 = E戻り値.コンフィグ呼び出し; // #24525 2011.3.16 yyagi: [SHIFT]-[F1]でCONFIG呼び出し + this.eフェードアウト完了時の戻り値 = E戻り値.コンフィグ呼び出し; // #24525 2011.3.16 yyagi: [SHIFT]-[F1]でCONFIG呼び出し this.actFIFO.tフェードアウト開始(); base.ePhaseID = CStage.EPhase.Common_FADEOUT; OpenTaiko.Skin.soundCancelSFX.tPlay(); return 0; - } + } #endregion - - if (this.actSongList.isContextBoxOpened == true) { - // Handle menu contexts + + if (this.actSongList.isContextBoxOpened == true) { + // Handle menu contexts bool __done = this.actSongList.tMenuContextController(this.actSongList.latestContext); if (__done == true) { - if (this.actSongList.latestContext == eMenuContext.SearchByDifficulty) { + if (this.actSongList.latestContext == eMenuContext.SearchByDifficulty) { #region [Trigger context box] - + this.actSongList.rCurrentlySelectedSong.list子リスト = CSongDict.tFetchSongsByDifficulty( this.actSongList.rCurrentlySelectedSong, this.actSongList.tMenuContextGetVar(0), @@ -731,36 +731,36 @@ namespace OpenTaiko { OpenTaiko.Skin.soundDecideSFX.tPlay(); this.actSongList.ctBarFlash.Start(0, 2700, 1, OpenTaiko.Timer); this.actSongList.ctBoxOpen.Start(200, 2700, 1.3f, OpenTaiko.Timer); - this.actSongList.bBoxOpen = true; - - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); - CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); - + this.actSongList.bBoxOpen = true; + + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); + #endregion - } else if (this.actSongList.latestContext == eMenuContext.Random) { + } else if (this.actSongList.latestContext == eMenuContext.Random) { #region [Trigger context box] - - this.tSetSongRandomly(); - - // Called here + + this.tSetSongRandomly(); + + // Called here OpenTaiko.Skin.soundDecideSFX.tPlay(); this.actDifficultySelectionScreen.bIsDifficltSelect = true; this.actDifficultySelectionScreen.t選択画面初期化(); this.actSongList.ctBarFlash.Start(0, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); - this.actSongList.ctDifficultyIn.Start(0, 3200, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); - - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); - CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); - + this.actSongList.ctDifficultyIn.Start(0, 3200, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); + + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); + #endregion } this.actSongList.tMenuContextDisable(); } - } else if (!this.actSortSongs.bIsActivePopupMenu && !this.actQuickConfig.bIsActivePopupMenu && !this.actDifficultySelectionScreen.bIsDifficltSelect && !actNewHeya.IsOpend) { + } else if (!this.actSortSongs.bIsActivePopupMenu && !this.actQuickConfig.bIsActivePopupMenu && !this.actDifficultySelectionScreen.bIsDifficltSelect && !actNewHeya.IsOpend) { #region [ ESC ] - if ((OpenTaiko.Pad.bPressedDGB(EPad.Cancel) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Escape)) && (this.actSongList.rCurrentlySelectedSong != null))// && ( ) ) ) - if (this.actSongList.rCurrentlySelectedSong.rParentNode == null) { // [ESC] + if ((OpenTaiko.Pad.bPressedDGB(EPad.Cancel) || OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Escape)) && (this.actSongList.rCurrentlySelectedSong != null))// && ( ) ) ) + if (this.actSongList.rCurrentlySelectedSong.rParentNode == null) { // [ESC] this.actPresound.tStopSound(); CSongSelectSongManager.enable(); @@ -777,34 +777,34 @@ namespace OpenTaiko { OpenTaiko.Skin.soundCancelSFX.tPlay(); this.actSongList.ctBarFlash.Start(0, 2700, 1, OpenTaiko.Timer); this.actSongList.ctBoxOpen.Start(200, 2700, 1.3f, OpenTaiko.Timer); - this.actSongList.bBoxClose = true; - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + this.actSongList.bBoxClose = true; + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); } - } + } #endregion #region [ Shift-F1: Config shortcut ] if ((OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.RightShift) || OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.LeftShift)) && - OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.F1)) { // [SHIFT] + [F1] CONFIG + OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.F1)) { // [SHIFT] + [F1] CONFIG this.actPresound.tStopSound(); - this.eフェードアウト完了時の戻り値 = E戻り値.コンフィグ呼び出し; // #24525 2011.3.16 yyagi: [SHIFT]-[F1]でCONFIG呼び出し + this.eフェードアウト完了時の戻り値 = E戻り値.コンフィグ呼び出し; // #24525 2011.3.16 yyagi: [SHIFT]-[F1]でCONFIG呼び出し this.actFIFO.tフェードアウト開始(); base.ePhaseID = CStage.EPhase.Common_FADEOUT; OpenTaiko.Skin.soundCancelSFX.tPlay(); return 0; - } + } #endregion #region [ F2 Quick Config ] if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.QuickConfig)) { OpenTaiko.Skin.soundChangeSFX.tPlay(); this.actQuickConfig.tActivatePopupMenu(EInstrumentPad.Drums); - } + } #endregion #region [ F3 1P AUTO ] if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.ToggleAutoP1)) { OpenTaiko.Skin.soundChangeSFX.tPlay(); CUtility.ToggleBoolian(ref OpenTaiko.ConfigIni.bAutoPlay[0]); - } + } #endregion #region [ F4 2P AUTO ] if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.ToggleAutoP2)) { @@ -812,14 +812,14 @@ namespace OpenTaiko { OpenTaiko.Skin.soundChangeSFX.tPlay(); CUtility.ToggleBoolian(ref OpenTaiko.ConfigIni.bAutoPlay[1]); } - } + } #endregion #region [ F5 Super Hard Mode (DEPRECATED / UNUSED) ] - if (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.F5)) { - // Deprecated, to delete + if (OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.F5)) { + // Deprecated, to delete OpenTaiko.Skin.soundChangeSFX.tPlay(); CUtility.ToggleBoolian(ref OpenTaiko.ConfigIni.bSuperHard); - } + } #endregion #region [ F7 TokkunMode ] if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.ToggleTrainingMode)) { @@ -827,18 +827,18 @@ namespace OpenTaiko { OpenTaiko.Skin.soundChangeSFX.tPlay(); CUtility.ToggleBoolian(ref OpenTaiko.ConfigIni.bTokkunMode); } - } + } #endregion #region [ F9 New Heya ] if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.NewHeya)) { actNewHeya.Open(); - } + } #endregion - + if (this.actSongList.rCurrentlySelectedSong != null) { if (this.actSongList.ctBoxOpen.IsEnded || this.actSongList.ctBoxOpen.CurrentValue == 0) { - if (!this.bCurrentlyScrolling) { + if (!this.bCurrentlyScrolling) { #region [ Decide ] if ((OpenTaiko.Pad.bPressedDGB(EPad.Decide) || ((OpenTaiko.ConfigIni.bEnterIsNotUsedInKeyAssignments && OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Return))))) { @@ -867,10 +867,10 @@ namespace OpenTaiko { DBSaves.RegisterStringUnlockedAsset( OpenTaiko.SaveFileInstances[OpenTaiko.SaveFile].data.SaveId, "unlocked_songs", - this.rNowSelectedSong?.tGetUniqueId() ?? "" // Can't be null in this context + this.rNowSelectedSong?.tGetUniqueId() ?? "" // Can't be null in this context ); - OpenTaiko.SaveFileInstances[OpenTaiko.SaveFile].tSpendCoins(SongToUnlock.unlockConditions.Values[0]); - // Play modal animation here ? + OpenTaiko.SaveFileInstances[OpenTaiko.SaveFile].tSpendCoins(SongToUnlock.unlockConditions.Values[0]); + // Play modal animation here ? } else OpenTaiko.Skin.soundError.tPlay(); } else { @@ -878,8 +878,8 @@ namespace OpenTaiko { } } else { if (this.n現在選択中の曲の難易度 >= (int)Difficulty.Tower) { - if (OpenTaiko.ConfigIni.nPlayerCount == 1 && !OpenTaiko.ConfigIni.bTokkunMode) { - // Init tower variables + if (OpenTaiko.ConfigIni.nPlayerCount == 1 && !OpenTaiko.ConfigIni.bTokkunMode) { + // Init tower variables if (this.n現在選択中の曲の難易度 == (int)Difficulty.Tower) CFloorManagement.reinitialize(this.rNowSelectedSong.arスコア[(int)Difficulty.Tower].譜面情報.nLife); @@ -890,23 +890,23 @@ namespace OpenTaiko { } else { OpenTaiko.Skin.soundError.tPlay(); } - } else { - // Called here + } else { + // Called here OpenTaiko.Skin.soundDecideSFX.tPlay(); this.actDifficultySelectionScreen.bIsDifficltSelect = true; this.actDifficultySelectionScreen.t選択画面初期化(); this.actSongList.ctBarFlash.Start(0, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); - this.actSongList.ctDifficultyIn.Start(0, 3200, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + this.actSongList.ctDifficultyIn.Start(0, 3200, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); } } } break; - case CSongListNode.ENodeType.BOX: { - + case CSongListNode.ENodeType.BOX: { + #region [Pre-generated folders] - + if (this.actSongList.rCurrentlySelectedSong.strジャンル == "Favorite") { this.actSongList.rCurrentlySelectedSong.list子リスト = CSongDict.tFetchFavoriteFolder(this.actSongList.rCurrentlySelectedSong); } else if (this.actSongList.rCurrentlySelectedSong.strジャンル == "最近遊んだ曲") { @@ -914,60 +914,60 @@ namespace OpenTaiko { } else if (this.actSongList.rCurrentlySelectedSong.strジャンル == "SearchD") { this.actSongList.tMenuContextTrigger(eMenuContext.SearchByDifficulty); OpenTaiko.Skin.soundDecideSFX.tPlay(); - goto Decided; - //this.act曲リスト.r現在選択中の曲.list子リスト = CSongDict.tFetchSongsByDifficulty(this.act曲リスト.r現在選択中の曲, (int)Difficulty.Oni, 8); - } - + goto Decided; + //this.act曲リスト.r現在選択中の曲.list子リスト = CSongDict.tFetchSongsByDifficulty(this.act曲リスト.r現在選択中の曲, (int)Difficulty.Oni, 8); + } + #endregion - + CSongSelectSongManager.disable(); OpenTaiko.Skin.soundDecideSFX.tPlay(); this.actSongList.ctBarFlash.Start(0, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); this.actSongList.ctBoxOpen.Start(200, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval * 1.3f, OpenTaiko.Timer); - this.actSongList.bBoxOpen = true; - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + this.actSongList.bBoxOpen = true; + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); } break; - case CSongListNode.ENodeType.BACKBOX: { - // TOJIRU + case CSongListNode.ENodeType.BACKBOX: { + // TOJIRU CSongSelectSongManager.enable(); OpenTaiko.Skin.soundCancelSFX.tPlay(); this.actSongList.ctBarFlash.Start(0, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); this.actSongList.ctBoxOpen.Start(200, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval * 1.3f, OpenTaiko.Timer); - this.actSongList.bBoxClose = true; - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + this.actSongList.bBoxClose = true; + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); } break; case CSongListNode.ENodeType.RANDOM: { - this.tSetSongRandomly(); - - // Called here + this.tSetSongRandomly(); + + // Called here OpenTaiko.Skin.soundDecideSFX.tPlay(); this.actDifficultySelectionScreen.bIsDifficltSelect = true; this.actDifficultySelectionScreen.t選択画面初期化(); this.actSongList.ctBarFlash.Start(0, 2700, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); - this.actSongList.ctDifficultyIn.Start(0, 3200, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); - - //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); - CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); - + this.actSongList.ctDifficultyIn.Start(0, 3200, OpenTaiko.Skin.SongSelect_Box_Opening_Interval, OpenTaiko.Timer); + + //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); + /* TJAPlayer3.Skin.sound決定音.t再生する(); this.act曲リスト.tMenuContextTrigger(eMenuContext.Random); goto Decided; - */ - + */ + /* this.t曲をランダム選択する(); //this.ctChara_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); - */ + */ } break; } @@ -975,13 +975,13 @@ namespace OpenTaiko { goto Decided; } - } + } #endregion - - } - + + } + #region [ Favorite ] - + if (!this.bCurrentlyScrolling) { var IsSongLocked = OpenTaiko.Databases.DBSongUnlockables.tIsSongLocked(this.rNowSelectedSong); @@ -993,50 +993,50 @@ namespace OpenTaiko { OpenTaiko.Favorites.tToggleFavorite(csu.data.id); } } - } - + } + #endregion - + #region [ Up ] if (!this.bCurrentlyScrolling) { - this.ctキー反復用.Up.KeyIntervalFunc(OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.LeftArrow), new CCounter.KeyProcess(this.tカーソルを上へ移動する)); - //this.ctキー反復用.Up.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.UpArrow ) || CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.LeftArrow ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) ); + this.ctキー反復用.Up.KeyIntervalFunc(OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.LeftArrow), new CCounter.KeyProcess(this.tカーソルを上へ移動する)); + //this.ctキー反復用.Up.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.UpArrow ) || CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.LeftArrow ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) ); if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LeftChange)) { this.tカーソルを上へ移動する(); } } else { - if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LeftChange)) { - //this.ctChara_Jump[0].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); - //this.ctChara_Jump[1].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); + if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LeftChange)) { + //this.ctChara_Jump[0].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); + //this.ctChara_Jump[1].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); for (int i = 0; i < 7; i++) tカーソルスキップ(true); } - } + } #endregion - + #region [ Down ] if (!this.bCurrentlyScrolling) { - this.ctキー反復用.Down.KeyIntervalFunc(OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.RightArrow), new CCounter.KeyProcess(this.tカーソルを下へ移動する)); - //this.ctキー反復用.Down.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.DownArrow ) || CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.RightArrow ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) ); - + this.ctキー反復用.Down.KeyIntervalFunc(OpenTaiko.InputManager.Keyboard.KeyPressing((int)SlimDXKeys.Key.RightArrow), new CCounter.KeyProcess(this.tカーソルを下へ移動する)); + //this.ctキー反復用.Down.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.DownArrow ) || CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.RightArrow ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) ); + if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RightChange)) { this.tカーソルを下へ移動する(); } } else { - if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RightChange)) { - //this.ctChara_Jump[0].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); - //this.ctChara_Jump[1].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); + if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RightChange)) { + //this.ctChara_Jump[0].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); + //this.ctChara_Jump[1].t開始(0, TJAPlayer3.Tx.SongSelect_Chara_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); for (int i = 0; i < 7; i++) tカーソルスキップ(false); } - } + } #endregion - + Decided:; - } + } #region [ Upstairs ] /* if (((this.actSongList.rCurrentlySelectedSong != null) && (this.actSongList.rCurrentlySelectedSong.rParentNode != null)) && (TJAPlayer3.Pad.bPressed(EInstrumentPad.DRUMS, EPad.FT) || TJAPlayer3.Pad.bPressedGB(EPad.Cancel))) @@ -1046,16 +1046,16 @@ namespace OpenTaiko { this.actSongList.tCloseBOX(); this.tNotifySelectedSongChange(); } - */ + */ #endregion #region [ BDx2: 簡易CONFIG ] if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.System.SortSongs)) { OpenTaiko.Skin.soundChangeSFX.tPlay(); this.actSortSongs.tActivatePopupMenu(EInstrumentPad.Drums, ref this.actSongList); - } + } #endregion #region [ HHx2: 難易度変更 ] - if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.HH) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.HHO)) { // [HH]x2 難易度変更 + if (OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.HH) || OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.HHO)) { // [HH]x2 難易度変更 CommandHistory.Add(EInstrumentPad.Drums, EPadFlag.HH); EPadFlag[] comChangeDifficulty = new EPadFlag[] { EPadFlag.HH, EPadFlag.HH }; if (CommandHistory.CheckCommand(comChangeDifficulty, EInstrumentPad.Drums)) { @@ -1063,34 +1063,34 @@ namespace OpenTaiko { this.actSongList.t難易度レベルをひとつ進める(); OpenTaiko.Skin.soundChangeSFX.tPlay(); } - } + } #endregion } - } - - - - + } + + + + #region [ Minus & Equals Sound Group Level ] KeyboardSoundGroupLevelControlHandler.Handle( - OpenTaiko.InputManager.Keyboard, OpenTaiko.SoundGroupLevelController, OpenTaiko.Skin, true); + OpenTaiko.InputManager.Keyboard, OpenTaiko.SoundGroupLevelController, OpenTaiko.Skin, true); #endregion - + this.actSortSongs.t進行描画(); this.actQuickConfig.t進行描画(); - } - + } + #endregion - - //------------------------------ + + //------------------------------ if (this.actDifficultySelectionScreen.bIsDifficltSelect) { if (this.actSongList.ctDifficultyIn.CurrentValue >= 1255) { this.actDifficultySelectionScreen.Draw(); } - } - //------------------------------ - - + } + //------------------------------ + + if (OpenTaiko.ConfigIni.nPlayerCount == 1) { var opacity = 0; @@ -1107,15 +1107,15 @@ namespace OpenTaiko { } for (int i = 0; i < 5; i++) { - CCounter ___cs = CMenuCharacter._getReferenceCounter(CMenuCharacter.ECharacterAnimation.START)[i]; - - //if (this.ctChara_Jump[i].n現在の値 >= this.ctChara_Jump[i].n終了値) - if (___cs != null && ___cs.CurrentValue >= ___cs.EndValue) { - //this.ctChara_Jump[i].t停止(); + CCounter ___cs = CMenuCharacter._getReferenceCounter(CMenuCharacter.ECharacterAnimation.START)[i]; + + //if (this.ctChara_Jump[i].n現在の値 >= this.ctChara_Jump[i].n終了値) + if (___cs != null && ___cs.CurrentValue >= ___cs.EndValue) { + //this.ctChara_Jump[i].t停止(); ___cs.Stop(); - if (!this.actDifficultySelectionScreen.bIsDifficltSelect) { - //this.ctChara_Jump[i].n現在の値 = 0; + if (!this.actDifficultySelectionScreen.bIsDifficltSelect) { + //this.ctChara_Jump[i].n現在の値 = 0; ___cs.CurrentValue = 0; } } @@ -1164,13 +1164,13 @@ namespace OpenTaiko { オプション呼び出し, コンフィグ呼び出し, スキン変更 - } - - - // その他 - + } + + + // その他 + #region [ private ] - //----------------- + //----------------- [StructLayout(LayoutKind.Sequential)] private struct STキー反復用カウンタ { public CCounter Up; @@ -1214,8 +1214,8 @@ namespace OpenTaiko { public bool OldUseGenre; private CActSelectArtistComment actArtistComment; private CActFIFOBlack actFIFO; - private CActFIFOBlack actFIfrom結果画面; - //private CActFIFOBlack actFOtoNowLoading; + private CActFIFOBlack actFIfrom結果画面; + //private CActFIFOBlack actFOtoNowLoading; public CActFIFOStart actFOtoNowLoading; private CActSelectInformation actInformation; public CActSelectPreimageパネル actPreimageパネル; @@ -1239,12 +1239,12 @@ namespace OpenTaiko { private ScriptBG AI_Background; private const int MaxSong = 3; - public int NowSong = 1; - - //private CCounter ctChara_Normal; - //private CCounter ctChara_Select; - //public CCounter[] ctChara_Jump = new CCounter[2]; - + public int NowSong = 1; + + //private CCounter ctChara_Normal; + //private CCounter ctChara_Select; + //public CCounter[] ctChara_Jump = new CCounter[2]; + public PuchiChara PuchiChara; private string nGenreBack; @@ -1256,14 +1256,14 @@ namespace OpenTaiko { private CCounter ctOldBGScroll; private CCounter ct背景スクロール用タイマー; private E戻り値 eフェードアウト完了時の戻り値; - private CCachedFontRenderer ftフォント; - //private CTexture tx下部パネル; - //private CTexture tx上部パネル; - //private CTexture tx背景; - // private CTexture[] txジャンル別背景 = new CTexture[9]; - // private CTexture[] tx難易度別背景 = new CTexture[5]; - // private CTexture tx難易度名; - // private CTexture tx下部テキスト; + private CCachedFontRenderer ftフォント; + //private CTexture tx下部パネル; + //private CTexture tx上部パネル; + //private CTexture tx背景; + // private CTexture[] txジャンル別背景 = new CTexture[9]; + // private CTexture[] tx難易度別背景 = new CTexture[5]; + // private CTexture tx難易度名; + // private CTexture tx下部テキスト; private CCounter ctDiffSelect移動待ち; private STNumber[] stSongNumber = new STNumber[10]; @@ -1273,18 +1273,18 @@ namespace OpenTaiko { public char ch; public Point pt; } - private struct STCommandTime // #24063 2011.1.16 yyagi コマンド入力時刻の記録用 + private struct STCommandTime // #24063 2011.1.16 yyagi コマンド入力時刻の記録用 { - public EInstrumentPad eInst; // 使用楽器 - public EPadFlag ePad; // 押されたコマンド(同時押しはOR演算で列挙する) - public long time; // コマンド入力時刻 - } - + public EInstrumentPad eInst; // 使用楽器 + public EPadFlag ePad; // 押されたコマンド(同時押しはOR演算で列挙する) + public long time; // コマンド入力時刻 + } + /* private Point[] ptBoardNumber = { new Point(72, 283), new Point(135, 283), new Point(200, 283), new Point(72, 258), new Point(135, 258), new Point(200, 258), new Point(200, 233), new Point(72, 311), new Point(135, 311), new Point(200, 311), new Point(84, 360), new Point(124, 416) }; - */ - + */ + private CTexture txCustomSelectBG; private CTexture txCustomPrevSelectBG; private CTexture txGenreBack { @@ -1334,9 +1334,9 @@ namespace OpenTaiko { } } - private void tTimerDraw(int num) { - //int x = 1171, y = 57; - + private void tTimerDraw(int num) { + //int x = 1171, y = 57; + int[] nums = CConversion.SeparateDigits(num); for (int j = 0; j < nums.Length; j++) { @@ -1355,16 +1355,16 @@ namespace OpenTaiko { - private class CCommandHistory // #24063 2011.1.16 yyagi コマンド入力履歴を保持_確認するクラス + private class CCommandHistory // #24063 2011.1.16 yyagi コマンド入力履歴を保持_確認するクラス { readonly int buffersize = 16; private List stct; - public CCommandHistory() // コンストラクタ + public CCommandHistory() // コンストラクタ { stct = new List(buffersize); - } - + } + /// /// コマンド入力履歴へのコマンド追加 /// @@ -1380,13 +1380,13 @@ namespace OpenTaiko { if (stct.Count >= buffersize) { stct.RemoveAt(0); } - stct.Add(_stct); - //Debug.WriteLine( "CMDHIS: 楽器=" + _stct.eInst + ", CMD=" + _stct.ePad + ", time=" + _stct.time ); + stct.Add(_stct); + //Debug.WriteLine( "CMDHIS: 楽器=" + _stct.eInst + ", CMD=" + _stct.ePad + ", time=" + _stct.time ); } public void RemoveAt(int index) { stct.RemoveAt(index); - } - + } + /// /// コマンド入力に成功しているか調べる /// @@ -1396,35 +1396,35 @@ namespace OpenTaiko { public bool CheckCommand(EPadFlag[] _ePad, EInstrumentPad _eInst) { int targetCount = _ePad.Length; int stciCount = stct.Count; - if (stciCount < targetCount) { - //Debug.WriteLine("NOT start checking...stciCount=" + stciCount + ", targetCount=" + targetCount); + if (stciCount < targetCount) { + //Debug.WriteLine("NOT start checking...stciCount=" + stciCount + ", targetCount=" + targetCount); return false; } - long curTime = OpenTaiko.Timer.NowTime; - //Debug.WriteLine("Start checking...targetCount=" + targetCount); + long curTime = OpenTaiko.Timer.NowTime; + //Debug.WriteLine("Start checking...targetCount=" + targetCount); for (int i = targetCount - 1, j = stciCount - 1; i >= 0; i--, j--) { - if (_ePad[i] != stct[j].ePad) { - //Debug.WriteLine( "CMD解析: false targetCount=" + targetCount + ", i=" + i + ", j=" + j + ": ePad[]=" + _ePad[i] + ", stci[j] = " + stct[j].ePad ); + if (_ePad[i] != stct[j].ePad) { + //Debug.WriteLine( "CMD解析: false targetCount=" + targetCount + ", i=" + i + ", j=" + j + ": ePad[]=" + _ePad[i] + ", stci[j] = " + stct[j].ePad ); return false; } - if (stct[j].eInst != _eInst) { - //Debug.WriteLine( "CMD解析: false " + i ); + if (stct[j].eInst != _eInst) { + //Debug.WriteLine( "CMD解析: false " + i ); return false; } - if (curTime - stct[j].time > 500) { - //Debug.WriteLine( "CMD解析: false " + i + "; over 500ms" ); + if (curTime - stct[j].time > 500) { + //Debug.WriteLine( "CMD解析: false " + i + "; over 500ms" ); return false; } curTime = stct[j].time; - } - - //Debug.Write( "CMD解析: 成功!(" + _ePad.Length + ") " ); - //for ( int i = 0; i < _ePad.Length; i++ ) Debug.Write( _ePad[ i ] + ", " ); - //Debug.WriteLine( "" ); - //stct.RemoveRange( 0, targetCount ); // #24396 2011.2.13 yyagi - stct.Clear(); // #24396 2011.2.13 yyagi Clear all command input history in case you succeeded inputting some command - + } + + //Debug.Write( "CMD解析: 成功!(" + _ePad.Length + ") " ); + //for ( int i = 0; i < _ePad.Length; i++ ) Debug.Write( _ePad[ i ] + ", " ); + //Debug.WriteLine( "" ); + //stct.RemoveRange( 0, targetCount ); // #24396 2011.2.13 yyagi + stct.Clear(); // #24396 2011.2.13 yyagi Clear all command input history in case you succeeded inputting some command + return true; } } @@ -1507,10 +1507,10 @@ namespace OpenTaiko { private void tSetSongRandomly() { var usedDiffs = new int[] { -1, -1, -1, -1, -1 }; - var mandatoryDiffs = new List(); - + var mandatoryDiffs = new List(); + #region [Fetch context informations] - + if (this.actSongList.latestContext == eMenuContext.Random) { for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) { var diff = this.actSongList.tMenuContextGetVar(i); @@ -1518,10 +1518,10 @@ namespace OpenTaiko { if (!mandatoryDiffs.Contains(diff)) mandatoryDiffs.Add(diff); } - } - + } + #endregion - + CSongListNode song = this.actSongList.rCurrentlySelectedSong; song.listランダム用ノードリスト = this.t指定された曲が存在する場所の曲を列挙する_子リスト含む(song, ref mandatoryDiffs); @@ -1537,9 +1537,9 @@ namespace OpenTaiko { StringBuilder builder = new StringBuilder(0x400); builder.Append(string.Format("Total number of songs to randomly choose from {0}. Randomly selected index {0}.", selectableSongCount, randomSongIndex)); Trace.TraceInformation(builder.ToString()); - } - - // Third assignment + } + + // Third assignment this.rNowSelectedSong = song.listランダム用ノードリスト[randomSongIndex]; actSongList.t現在選択中の曲を元に曲バーを再構成する(); @@ -1549,8 +1549,8 @@ namespace OpenTaiko { actSongList.tバーの初期化(); tNotifySelectedSongChange(); } - private void t曲を選択する() { - // First assignation + private void t曲を選択する() { + // First assignation this.rChoosenSong = this.actSongList.rCurrentlySelectedSong; this.r確定されたスコア = this.actSongList.r現在選択中のスコア; @@ -1559,14 +1559,14 @@ namespace OpenTaiko { if ((this.rChoosenSong != null) && (this.r確定されたスコア != null)) { this.eフェードアウト完了時の戻り値 = E戻り値.選曲した; - this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 + this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 base.ePhaseID = CStage.EPhase.SongSelect_FadeOutToNowLoading; - } - // TJAPlayer3.Skin.bgm選曲画面.t停止する(); + } + // TJAPlayer3.Skin.bgm選曲画面.t停止する(); CSongSelectSongManager.stopSong(); } - public void t曲を選択する(int nCurrentLevel, int player) { - // Second assignation + public void t曲を選択する(int nCurrentLevel, int player) { + // Second assignation this.rChoosenSong = this.actSongList.rCurrentlySelectedSong; this.r確定されたスコア = this.actSongList.r現在選択中のスコア; @@ -1575,25 +1575,25 @@ namespace OpenTaiko { if ((this.rChoosenSong != null) && (this.r確定されたスコア != null)) { this.eフェードアウト完了時の戻り値 = E戻り値.選曲した; - this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 + this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 base.ePhaseID = CStage.EPhase.SongSelect_FadeOutToNowLoading; - } - - // TJAPlayer3.Skin.bgm選曲画面.t停止する(); + } + + // TJAPlayer3.Skin.bgm選曲画面.t停止する(); CSongSelectSongManager.stopSong(); - } - - // Foreach randomly selectable songs + } + + // Foreach randomly selectable songs private List t指定された曲が存在する場所の曲を列挙する_子リスト含む(CSongListNode song, ref List mandatory) { List list = new List(); song = song.rParentNode; if ((song == null) && (OpenTaiko.Songs管理.list曲ルート.Count > 0)) { foreach (CSongListNode c曲リストノード in OpenTaiko.Songs管理.list曲ルート) { - if ((c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE) || (c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE_MIDI)) { - // Don't add Dan/Tower charts for Random + if ((c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE) || (c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE_MIDI)) { + // Don't add Dan/Tower charts for Random int diff = this.actSongList.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(c曲リストノード); - if (diff < (int)Difficulty.Tower) { - // Check if mandatory diffs are present + if (diff < (int)Difficulty.Tower) { + // Check if mandatory diffs are present var score = c曲リストノード.arスコア[diff]; bool requiredDiffsExist = true; foreach (int df in mandatory) { @@ -1624,12 +1624,12 @@ namespace OpenTaiko { public void t指定された曲の子リストの曲を列挙する_孫リスト含む(CSongListNode r親, ref List list, ref List mandatory, bool dan = false, Difficulty difficulty = Difficulty.Dan) { if ((r親 != null) && (r親.list子リスト != null)) { foreach (CSongListNode c曲リストノード in r親.list子リスト) { - if ((c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE) || (c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE_MIDI)) { - // Don't add Dan/Tower charts for Random + if ((c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE) || (c曲リストノード.eノード種別 == CSongListNode.ENodeType.SCORE_MIDI)) { + // Don't add Dan/Tower charts for Random int diff = this.actSongList.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(c曲リストノード); - if (dan ? diff == (int)difficulty : diff < (int)Difficulty.Tower) { - // Check if mandatory diffs are present + if (dan ? diff == (int)difficulty : diff < (int)Difficulty.Tower) { + // Check if mandatory diffs are present var score = c曲リストノード.arスコア[diff]; bool requiredDiffsExist = true; foreach (int df in mandatory) { @@ -1651,9 +1651,9 @@ namespace OpenTaiko { } } } - } - - //----------------- + } + + //----------------- #endregion } } diff --git a/OpenTaiko/src/Stages/07.Game/CAct演奏演奏情報.cs b/OpenTaiko/src/Stages/07.Game/CAct演奏演奏情報.cs index dc12b787..4388942d 100644 --- a/OpenTaiko/src/Stages/07.Game/CAct演奏演奏情報.cs +++ b/OpenTaiko/src/Stages/07.Game/CAct演奏演奏情報.cs @@ -44,33 +44,33 @@ namespace OpenTaiko { public void t進行描画(int x, int y) { if (!base.IsDeActivated) { y += 0x153; - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, string.Format("Song/G. Offset:{0:####0}/{1:####0} ms", OpenTaiko.DTX.nBGMAdjust, OpenTaiko.ConfigIni.nGlobalOffsetMs)); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, string.Format("Song/G. Offset:{0:####0}/{1:####0} ms", OpenTaiko.DTX.nBGMAdjust, OpenTaiko.ConfigIni.nGlobalOffsetMs)); y -= 0x10; int num = (OpenTaiko.DTX.listChip.Count > 0) ? OpenTaiko.DTX.listChip[OpenTaiko.DTX.listChip.Count - 1].n発声時刻ms : 0; string str = "Time: " + ((((double)(SoundManager.PlayTimer.NowTime * OpenTaiko.ConfigIni.SongPlaybackSpeed)) / 1000.0)).ToString("####0.00") + " / " + ((((double)num) / 1000.0)).ToString("####0.00"); - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, str); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, str); y -= 0x10; - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, string.Format("Part: {0:####0}/{1:####0}", NowMeasure[0], NowMeasure[1])); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, string.Format("Part: {0:####0}/{1:####0}", NowMeasure[0], NowMeasure[1])); y -= 0x10; - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, string.Format("BPM: {0:####0.0000}", this.dbBPM[0])); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, string.Format("BPM: {0:####0.0000}", this.dbBPM[0])); y -= 0x10; - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, string.Format("Frame: {0:####0} fps", OpenTaiko.FPS.NowFPS)); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, string.Format("Frame: {0:####0} fps", OpenTaiko.FPS.NowFPS)); y -= 0x10; - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, NotesTextN); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, NotesTextN); y -= 0x10; - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, NotesTextE); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, NotesTextE); y -= 0x10; - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, NotesTextM); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, NotesTextM); y -= 0x10; - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, NotesTextC); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, NotesTextC); y -= 0x10; - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, string.Format("SCROLL: {0:####0.00}", this.dbSCROLL)); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, string.Format("SCROLL: {0:####0.00}", this.dbSCROLL)); y -= 0x10; - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, ScoreModeText); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, ScoreModeText); y -= 0x10; - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, ListChipText); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, ListChipText); y -= 0x10; - OpenTaiko.actTextConsole.tPrint(x, y, CTextConsole.EFontType.White, ListChipMText); + OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, ListChipMText); //CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "Sound CPU : {0:####0.00}%", CDTXMania.Sound管理.GetCPUusage() ) ); //y -= 0x10; diff --git a/OpenTaiko/src/Stages/07.Game/CStage演奏画面共通.cs b/OpenTaiko/src/Stages/07.Game/CStage演奏画面共通.cs index 448c0dcc..b7cec8af 100644 --- a/OpenTaiko/src/Stages/07.Game/CStage演奏画面共通.cs +++ b/OpenTaiko/src/Stages/07.Game/CStage演奏画面共通.cs @@ -2820,16 +2820,16 @@ namespace OpenTaiko { } protected void t入力メソッド記憶(EInstrumentPad part) { - if (OpenTaiko.Pad.st検知したデバイス.Keyboard) { + if (OpenTaiko.Pad.detectedDevice.Keyboard) { this.b演奏にキーボードを使った = true; } - if (OpenTaiko.Pad.st検知したデバイス.Joypad) { + if (OpenTaiko.Pad.detectedDevice.Joypad) { this.b演奏にジョイパッドを使った = true; } - if (OpenTaiko.Pad.st検知したデバイス.MIDIIN) { + if (OpenTaiko.Pad.detectedDevice.MIDIIN) { this.b演奏にMIDI入力を使った = true; } - if (OpenTaiko.Pad.st検知したデバイス.Mouse) { + if (OpenTaiko.Pad.detectedDevice.Mouse) { this.b演奏にマウスを使った = true; } } diff --git a/OpenTaiko/src/Stages/07.Game/Taiko/CActImplBackground.cs b/OpenTaiko/src/Stages/07.Game/Taiko/CActImplBackground.cs index 3c7cd7fb..5cc85d6e 100644 --- a/OpenTaiko/src/Stages/07.Game/Taiko/CActImplBackground.cs +++ b/OpenTaiko/src/Stages/07.Game/Taiko/CActImplBackground.cs @@ -317,7 +317,7 @@ namespace OpenTaiko { if (OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower) { int maxFloor = OpenTaiko.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTotalFloor; - OpenTaiko.actTextConsole.tPrint(0, 0, CTextConsole.EFontType.White, maxFloor.ToString()); + OpenTaiko.actTextConsole.Print(0, 0, CTextConsole.EFontType.White, maxFloor.ToString()); int nightTime = Math.Max(140, maxFloor / 2); diff --git a/OpenTaiko/src/Stages/07.Game/Taiko/CActImplTrainingMode.cs b/OpenTaiko/src/Stages/07.Game/Taiko/CActImplTrainingMode.cs index d846e162..b939dffa 100644 --- a/OpenTaiko/src/Stages/07.Game/Taiko/CActImplTrainingMode.cs +++ b/OpenTaiko/src/Stages/07.Game/Taiko/CActImplTrainingMode.cs @@ -88,7 +88,7 @@ namespace OpenTaiko { base.IsFirstDraw = false; } - OpenTaiko.actTextConsole.tPrint(0, 0, CTextConsole.EFontType.White, "TRAINING MODE (BETA)"); + OpenTaiko.actTextConsole.Print(0, 0, CTextConsole.EFontType.White, "TRAINING MODE (BETA)"); if (OpenTaiko.ConfigIni.KeyAssign.KeyIsPressed(OpenTaiko.ConfigIni.KeyAssign.Drums.TrainingPause)) { if (this.bTrainingPAUSE) { diff --git a/OpenTaiko/src/Stages/07.Game/Taiko/ScriptBG.cs b/OpenTaiko/src/Stages/07.Game/Taiko/ScriptBG.cs index 9c47c08c..1d4cabc7 100644 --- a/OpenTaiko/src/Stages/07.Game/Taiko/ScriptBG.cs +++ b/OpenTaiko/src/Stages/07.Game/Taiko/ScriptBG.cs @@ -12,10 +12,10 @@ namespace OpenTaiko { DirPath = dirPath; } public void DrawText(double x, double y, string text) { - OpenTaiko.actTextConsole.tPrint((int)x, (int)y, CTextConsole.EFontType.White, text); + OpenTaiko.actTextConsole.Print((int)x, (int)y, CTextConsole.EFontType.White, text); } public void DrawNum(double x, double y, double text) { - OpenTaiko.actTextConsole.tPrint((int)x, (int)y, CTextConsole.EFontType.White, text.ToString()); + OpenTaiko.actTextConsole.Print((int)x, (int)y, CTextConsole.EFontType.White, text.ToString()); } public void AddGraph(string fileName) { string trueFileName = fileName.Replace('/', Path.DirectorySeparatorChar); diff --git a/OpenTaiko/src/Stages/08.Result/CStage結果.cs b/OpenTaiko/src/Stages/08.Result/CStage結果.cs index 5d7b406d..d292ad8e 100644 --- a/OpenTaiko/src/Stages/08.Result/CStage結果.cs +++ b/OpenTaiko/src/Stages/08.Result/CStage結果.cs @@ -1248,7 +1248,7 @@ namespace OpenTaiko { int sc = GetTowerScoreRank() - 1; - OpenTaiko.actTextConsole.tPrint(0, 40, CTextConsole.EFontType.White, sc.ToString()); + OpenTaiko.actTextConsole.Print(0, 40, CTextConsole.EFontType.White, sc.ToString()); if (sc >= 0 && OpenTaiko.Tx.TowerResult_ScoreRankEffect != null) { int scoreRankEffect_width = OpenTaiko.Tx.TowerResult_ScoreRankEffect.szTextureSize.Width / 7;