diff --git a/README-ZH.md b/README-ZH.md index d7e6c6fe..8281cc9f 100644 --- a/README-ZH.md +++ b/README-ZH.md @@ -12,7 +12,7 @@ TJAPlayer3-Develop-ReWrite的分叉项目,读取TJA文件的太鼓模拟器 - Discord:https://discord.gg/aA8scTvZ6B -(译者注:由README-EN.md翻译。最近一次更新时间:2023年2月9日) +(译者注:由README-EN.md翻译。最近一次更新时间:2023年2月14日) (译者注:编译指南:[https://github.com/l1m0n3/OpenTaiko/wiki/How-to-build-OpenTaiko-without-using-Visual-Studio-(on-Windows)](https://github.com/l1m0n3/OpenTaiko/wiki/How-to-build-OpenTaiko-without-using-Visual-Studio-(on-Windows))) @@ -115,11 +115,34 @@ OpenTaiko是一个使用MIT许可证的开源软件。在MIT许可证下,您 - 我找不到我自行添加的角色和迷你角色 ``` -从0.5.3版本开始,角色和迷你角色将由skin文件夹外的Global文件夹读取。请把它们放在那里。 +从0.5.3.1版本开始,角色和迷你角色将由skin文件夹外的Global文件夹读取。请把它们放在那里。 ``` ## 更新历史 +
+ v0.5.4 + + - 修复了多个问题 + + - 可以在线下载谱面 + + - 支持角色和迷你角色各自的声音 + + - 支持在游戏中更换音色 + + - 选曲界面新增随机选曲选项 + + - 新增康加鼓模式 + + - 支持PREIMAGE元数据 + + - 更改演奏模式及其图标 + + - 新增紫音符(G)、炸弹音符(C),修复牵手音符(A、B)和隐藏音符(F) + +
+
v0.5.3.1 diff --git a/TJAPlayer3/Character/CMenuCharacter.cs b/TJAPlayer3/Character/CMenuCharacter.cs index 54439317..84d2fcbe 100644 --- a/TJAPlayer3/Character/CMenuCharacter.cs +++ b/TJAPlayer3/Character/CMenuCharacter.cs @@ -9,11 +9,11 @@ namespace TJAPlayer3 { class CMenuCharacter { - private static CCounter[] ctCharacterNormal = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() }; - private static CCounter[] ctCharacterSelect = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() }; - private static CCounter[] ctCharacterStart = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() }; - private static CCounter[] ctCharacterEntry = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() }; - private static CCounter[] ctCharacterEntryNormal = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() }; + private static CCounter[] ctCharacterNormal = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() }; + private static CCounter[] ctCharacterSelect = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() }; + private static CCounter[] ctCharacterStart = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() }; + private static CCounter[] ctCharacterEntry = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() }; + private static CCounter[] ctCharacterEntryNormal = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() }; public enum ECharacterAnimation { @@ -162,31 +162,31 @@ namespace TJAPlayer3 { case (ECharacterAnimation.NORMAL): { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) ctCharacterNormal[i] = new CCounter(); break; } case (ECharacterAnimation.START): { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) ctCharacterStart[i] = new CCounter(); break; } case (ECharacterAnimation.SELECT): { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) ctCharacterSelect[i] = new CCounter(); break; } case (ECharacterAnimation.ENTRY): { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) ctCharacterEntry[i] = new CCounter(); break; } case (ECharacterAnimation.ENTRY_NORMAL): { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) ctCharacterEntryNormal[i] = new CCounter(); break; } @@ -208,7 +208,7 @@ namespace TJAPlayer3 public static void tMenuResetTimer(ECharacterAnimation eca) { - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { tMenuResetTimer(i, eca); } diff --git a/TJAPlayer3/Character/CResultCharacter.cs b/TJAPlayer3/Character/CResultCharacter.cs index f246a394..9b442f01 100644 --- a/TJAPlayer3/Character/CResultCharacter.cs +++ b/TJAPlayer3/Character/CResultCharacter.cs @@ -9,10 +9,10 @@ namespace TJAPlayer3 { class CResultCharacter { - private static CCounter[] ctCharacterNormal = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() }; - private static CCounter[] ctCharacterClear = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() }; - private static CCounter[] ctCharacterFailed = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() }; - private static CCounter[] ctCharacterFailedIn = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() }; + private static CCounter[] ctCharacterNormal = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() }; + private static CCounter[] ctCharacterClear = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() }; + private static CCounter[] ctCharacterFailed = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() }; + private static CCounter[] ctCharacterFailedIn = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() }; public enum ECharacterResult @@ -157,25 +157,25 @@ namespace TJAPlayer3 { case (ECharacterResult.NORMAL): { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) ctCharacterNormal[i] = new CCounter(); break; } case (ECharacterResult.CLEAR): { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) ctCharacterClear[i] = new CCounter(); break; } case (ECharacterResult.FAILED): { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) ctCharacterFailed[i] = new CCounter(); break; } case (ECharacterResult.FAILED_IN): { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) ctCharacterFailedIn[i] = new CCounter(); break; } @@ -241,7 +241,7 @@ namespace TJAPlayer3 _tex.vc拡大縮小倍率.X *= resolutionRatioX; _tex.vc拡大縮小倍率.Y *= resolutionRatioY; - if (pos % 2 == 0) + if (pos % 2 == 0 || TJAPlayer3.ConfigIni.nPlayerCount > 2) { _tex.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, _x, diff --git a/TJAPlayer3/Character/PuchiChara.cs b/TJAPlayer3/Character/PuchiChara.cs index 827cc706..af1f12cd 100644 --- a/TJAPlayer3/Character/PuchiChara.cs +++ b/TJAPlayer3/Character/PuchiChara.cs @@ -64,7 +64,7 @@ namespace TJAPlayer3 /// Y座標(中央) /// 不透明度 /// - public int On進行描画(int x, int y, bool isGrowing, int alpha = 255, bool isBalloon = false, int player = 0) + public int On進行描画(int x, int y, bool isGrowing, int alpha = 255, bool isBalloon = false, int player = 0, float scale = 1.0f) { if (!TJAPlayer3.ConfigIni.ShowPuchiChara) return base.On進行描画(); if (Counter == null || SineCounter == null || TJAPlayer3.Tx.Puchichara == null) return base.On進行描画(); @@ -103,6 +103,8 @@ namespace TJAPlayer3 float puchiScale = TJAPlayer3.Skin.Resolution[1] / 720.0f; chara.vc拡大縮小倍率 = new Vector3((isBalloon ? TJAPlayer3.Skin.Game_PuchiChara_Scale[1] * puchiScale : TJAPlayer3.Skin.Game_PuchiChara_Scale[0] * puchiScale)); + chara.vc拡大縮小倍率.X *= scale; + chara.vc拡大縮小倍率.Y *= scale; chara.Opacity = alpha; // (isGrowing ? TJAPlayer3.Skin.Game_PuchiChara[1] : 0) => Height diff --git a/TJAPlayer3/Common/CConfigIni.cs b/TJAPlayer3/Common/CConfigIni.cs index 36360460..e92c3f7e 100644 --- a/TJAPlayer3/Common/CConfigIni.cs +++ b/TJAPlayer3/Common/CConfigIni.cs @@ -332,6 +332,141 @@ namespace TJAPlayer3 } } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftRed3P + { + get + { + return this.padLRed3P; + } + set + { + this.padLRed3P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] RightRed3P + { + get + { + return this.padRRed3P; + } + set + { + this.padRRed3P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftBlue3P + { + get + { + return this.padLBlue3P; + } + set + { + this.padLBlue3P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] RightBlue3P + { + get + { + return this.padRBlue3P; + } + set + { + this.padRBlue3P = value; + } + } + + public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftRed4P + { + get + { + return this.padLRed4P; + } + set + { + this.padLRed4P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] RightRed4P + { + get + { + return this.padRRed4P; + } + set + { + this.padRRed4P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftBlue4P + { + get + { + return this.padLBlue4P; + } + set + { + this.padLBlue4P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] RightBlue4P + { + get + { + return this.padRBlue4P; + } + set + { + this.padRBlue4P = value; + } + } + + public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftRed5P + { + get + { + return this.padLRed5P; + } + set + { + this.padLRed5P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] RightRed5P + { + get + { + return this.padRRed5P; + } + set + { + this.padRRed5P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftBlue5P + { + get + { + return this.padLBlue5P; + } + set + { + this.padLBlue5P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] RightBlue5P + { + get + { + return this.padRBlue5P; + } + set + { + this.padRBlue5P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] Clap { get @@ -356,6 +491,42 @@ namespace TJAPlayer3 } } + public CConfigIni.CKeyAssign.STKEYASSIGN[] Clap3P + { + get + { + return this.padClap3P; + } + set + { + this.padClap3P = value; + } + } + + public CConfigIni.CKeyAssign.STKEYASSIGN[] Clap4P + { + get + { + return this.padClap4P; + } + set + { + this.padClap4P = value; + } + } + + public CConfigIni.CKeyAssign.STKEYASSIGN[] Clap5P + { + get + { + return this.padClap5P; + } + set + { + this.padClap5P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftChange { get @@ -446,12 +617,57 @@ namespace TJAPlayer3 case (int) EKeyConfigPad.RBlue2P: return this.padRBlue2P; + case (int)EKeyConfigPad.LRed3P: + return this.padLRed3P; + + case (int)EKeyConfigPad.RRed3P: + return this.padRRed3P; + + case (int)EKeyConfigPad.LBlue3P: + return this.padLBlue3P; + + case (int)EKeyConfigPad.RBlue3P: + return this.padRBlue3P; + + case (int)EKeyConfigPad.LRed4P: + return this.padLRed4P; + + case (int)EKeyConfigPad.RRed4P: + return this.padRRed4P; + + case (int)EKeyConfigPad.LBlue4P: + return this.padLBlue4P; + + case (int)EKeyConfigPad.RBlue4P: + return this.padRBlue4P; + + case (int)EKeyConfigPad.LRed5P: + return this.padLRed5P; + + case (int)EKeyConfigPad.RRed5P: + return this.padRRed5P; + + case (int)EKeyConfigPad.LBlue5P: + return this.padLBlue5P; + + case (int)EKeyConfigPad.RBlue5P: + return this.padRBlue5P; + case (int)EKeyConfigPad.Clap: return this.padClap; case (int)EKeyConfigPad.Clap2P: return this.padClap2P; + case (int)EKeyConfigPad.Clap3P: + return this.padClap3P; + + case (int)EKeyConfigPad.Clap4P: + return this.padClap4P; + + case (int)EKeyConfigPad.Clap5P: + return this.padClap5P; + case (int)EKeyConfigPad.LeftChange: return this.padLeftChange; @@ -547,6 +763,54 @@ namespace TJAPlayer3 this.padRBlue2P = value; return; + case (int)EKeyConfigPad.LRed3P: + this.padLRed3P = value; + return; + + case (int)EKeyConfigPad.RRed3P: + this.padRRed3P = value; + return; + + case (int)EKeyConfigPad.LBlue3P: + this.padLBlue3P = value; + return; + + case (int)EKeyConfigPad.RBlue3P: + this.padRBlue3P = value; + return; + + case (int)EKeyConfigPad.LRed4P: + this.padLRed4P = value; + return; + + case (int)EKeyConfigPad.RRed4P: + this.padRRed4P = value; + return; + + case (int)EKeyConfigPad.LBlue4P: + this.padLBlue4P = value; + return; + + case (int)EKeyConfigPad.RBlue4P: + this.padRBlue4P = value; + return; + + case (int)EKeyConfigPad.LRed5P: + this.padLRed5P = value; + return; + + case (int)EKeyConfigPad.RRed5P: + this.padRRed5P = value; + return; + + case (int)EKeyConfigPad.LBlue5P: + this.padLBlue5P = value; + return; + + case (int)EKeyConfigPad.RBlue5P: + this.padRBlue5P = value; + return; + case (int)EKeyConfigPad.Clap: this.padClap = value; return; @@ -555,6 +819,18 @@ namespace TJAPlayer3 this.padClap2P = value; return; + case (int)EKeyConfigPad.Clap3P: + this.padClap3P = value; + return; + + case (int)EKeyConfigPad.Clap4P: + this.padClap4P = value; + return; + + case (int)EKeyConfigPad.Clap5P: + this.padClap5P = value; + return; + case (int)EKeyConfigPad.LeftChange: this.padLeftChange = value; return; @@ -585,16 +861,37 @@ namespace TJAPlayer3 private CConfigIni.CKeyAssign.STKEYASSIGN[] padSD_G; private CConfigIni.CKeyAssign.STKEYASSIGN[] padLP; private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBD; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed; private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue; private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed; private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed2P; private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue2P; private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed2P; private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue2P; + + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed3P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue3P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed3P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue3P; + + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed4P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue4P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed4P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue4P; + + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed5P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue5P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed5P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue5P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padClap; private CConfigIni.CKeyAssign.STKEYASSIGN[] padClap2P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padClap3P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padClap4P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padClap5P; private CConfigIni.CKeyAssign.STKEYASSIGN[] padLeftChange; private CConfigIni.CKeyAssign.STKEYASSIGN[] padRightChange; @@ -762,7 +1059,7 @@ namespace TJAPlayer3 public int nウインドウheight; // #23510 2010.10.31 yyagi add public Dictionary dicJoystick; public Eダークモード eDark; - public STDGBVALUE eRandom; + public Eランダムモード[] eRandom; public Eダメージレベル eダメージレベル; public CKeyAssign KeyAssign; public int n非フォーカス時スリープms; // #23568 2010.11.04 ikanick add @@ -852,11 +1149,27 @@ namespace TJAPlayer3 public int nScoreMode; public int nDefaultCourse; //2017.01.30 DD デフォルトでカーソルをあわせる難易度 - - public int nPlayerCount; //2017.08.18 kairera0467 マルチプレイ対応 + private int _nPlayerCount; + public int nPlayerCount + { + get + { + if (bAIBattleMode) + { + return 2; + } + else + { + return _nPlayerCount; + } + } + set + { + _nPlayerCount = value; + } + } - public bool b太鼓パートAutoPlay; - public bool b太鼓パートAutoPlay2P; //2017.08.16 kairera0467 マルチプレイ対応 + public bool[] b太鼓パートAutoPlay = new bool[5]; public bool bAuto先生の連打; public int nRollsPerSec; @@ -925,9 +1238,9 @@ namespace TJAPlayer3 public int TokkunMashInterval; public bool bSuperHard = false; public bool bTokkunMode = false; - public int[] bJust = new int[4] { 0, 0, 0, 0 }; + public int[] bJust = new int[5] { 0, 0, 0, 0, 0 }; - public int[] nHitSounds = new int[4] { 0, 0, 0, 0 }; + public int[] nHitSounds = new int[5] { 0, 0, 0, 0, 0 }; public bool bEndingAnime = false; // 2017.01.27 DD 「また遊んでね」画面の有効/無効オプション追加 @@ -1490,15 +1803,15 @@ namespace TJAPlayer3 this.bSudden = new STDGBVALUE(); this.bHidden = new STDGBVALUE(); this.bReverse = new STDGBVALUE(); - this.eRandom = new STDGBVALUE(); + this.eRandom = new Eランダムモード[5]; this.bLight = new STDGBVALUE(); this.bLeft = new STDGBVALUE(); this.e判定位置 = new STDGBVALUE(); // #33891 2014.6.26 yyagi this.判定文字表示位置 = new STDGBVALUE(); - this.nScrollSpeed = new int[4] { 9, 9, 9, 9 }; - this.nTimingZones = new int[4] { 2, 2, 2, 2 }; - this.nGameType = new EGameType[4] { EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO }; - this.nFunMods = new EFunMods[4] { EFunMods.NONE, EFunMods.NONE, EFunMods.NONE, EFunMods.NONE }; + this.nScrollSpeed = new int[5] { 9, 9, 9, 9, 9 }; + this.nTimingZones = new int[5] { 2, 2, 2, 2, 2 }; + this.nGameType = new EGameType[5] { EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO }; + this.nFunMods = new EFunMods[5] { EFunMods.NONE, EFunMods.NONE, EFunMods.NONE, EFunMods.NONE, EFunMods.NONE }; this.nInputAdjustTimeMs = 0; this.nGlobalOffsetMs = 0; this.nJudgeLinePosOffset = new STDGBVALUE(); // #31602 2013.6.23 yyagi @@ -1519,7 +1832,7 @@ namespace TJAPlayer3 } - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) { this.eRandom[i] = Eランダムモード.OFF; this.nScrollSpeed[i] = 9; @@ -1531,8 +1844,10 @@ namespace TJAPlayer3 #region [ AutoPlay ] this.bAutoPlay = new STAUTOPLAY(); - this.b太鼓パートAutoPlay = false; - this.b太鼓パートAutoPlay2P = false; + for (int i = 0; i < 5; i++) + { + this.b太鼓パートAutoPlay[i] = false; + } this.bAuto先生の連打 = true; #endregion this.nヒット範囲ms = new STRANGE(); @@ -1605,9 +1920,9 @@ namespace TJAPlayer3 ShowMob = true; ShowPuchiChara = true; - this.eSTEALTH = new Eステルスモード[4]; + this.eSTEALTH = new Eステルスモード[5]; - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) this.eSTEALTH[i] = Eステルスモード.OFF; this.bNoInfo = false; @@ -2008,9 +2323,12 @@ namespace TJAPlayer3 sw.WriteLine("[AutoPlay]"); sw.WriteLine(); sw.WriteLine("; 自動演奏(0:OFF, 1:ON)"); - sw.WriteLine("Taiko={0}", this.b太鼓パートAutoPlay ? 1 : 0); - sw.WriteLine("Taiko2P={0}", this.b太鼓パートAutoPlay2P ? 1 : 0); - sw.WriteLine("TaikoAutoRoll={0}", this.bAuto先生の連打 ? 1 : 0); + sw.WriteLine("Taiko={0}", this.b太鼓パートAutoPlay[0] ? 1 : 0); + sw.WriteLine("Taiko2P={0}", this.b太鼓パートAutoPlay[1] ? 1 : 0); + sw.WriteLine("Taiko3P={0}", this.b太鼓パートAutoPlay[2] ? 1 : 0); + sw.WriteLine("Taiko4P={0}", this.b太鼓パートAutoPlay[3] ? 1 : 0); + sw.WriteLine("Taiko5P={0}", this.b太鼓パートAutoPlay[4] ? 1 : 0); + sw.WriteLine("TaikoAutoRoll={0}", this.bAuto先生の連打 ? 1 : 0); sw.WriteLine("RollsPerSec={0}", this.nRollsPerSec); sw.WriteLine("AILevel={0}", this.nAILevel); sw.WriteLine("AIBattleMode={0}", bAIBattleMode ? 1 : 0); @@ -2112,24 +2430,28 @@ namespace TJAPlayer3 sw.WriteLine("DrumsScrollSpeed2P={0}", this.nScrollSpeed[1]); sw.WriteLine("DrumsScrollSpeed3P={0}", this.nScrollSpeed[2]); sw.WriteLine("DrumsScrollSpeed4P={0}", this.nScrollSpeed[3]); + sw.WriteLine("DrumsScrollSpeed5P={0}", this.nScrollSpeed[4]); sw.WriteLine(); sw.WriteLine("; Timing Zones (0-1 : Lenient, 2 : Regular, 3-4 : Strict)"); sw.WriteLine("TimingZones1P={0}", this.nTimingZones[0]); sw.WriteLine("TimingZones2P={0}", this.nTimingZones[1]); sw.WriteLine("TimingZones3P={0}", this.nTimingZones[2]); sw.WriteLine("TimingZones4P={0}", this.nTimingZones[3]); + sw.WriteLine("TimingZones5P={0}", this.nTimingZones[4]); sw.WriteLine(); sw.WriteLine("; Gametype (0 : Taiko, 1 : Konga)"); sw.WriteLine("Gametype1P={0}", (int)this.nGameType[0]); sw.WriteLine("Gametype2P={0}", (int)this.nGameType[1]); sw.WriteLine("Gametype3P={0}", (int)this.nGameType[2]); sw.WriteLine("Gametype4P={0}", (int)this.nGameType[3]); + sw.WriteLine("Gametype5P={0}", (int)this.nGameType[4]); sw.WriteLine(); sw.WriteLine("; Fun Mods (0 : None, 1 : Avalanche (random scroll speed per note/chip), 2 : Minesweeper (replace randomly notes by bombs))"); sw.WriteLine("FunMods1P={0}", (int)this.nFunMods[0]); sw.WriteLine("FunMods2P={0}", (int)this.nFunMods[1]); sw.WriteLine("FunMods3P={0}", (int)this.nFunMods[2]); sw.WriteLine("FunMods4P={0}", (int)this.nFunMods[3]); + sw.WriteLine("FunMods5P={0}", (int)this.nFunMods[4]); sw.WriteLine(); sw.WriteLine( "; 演奏速度(5~40)(→x5/20~x40/20)" ); sw.WriteLine( "PlaySpeed={0}", this.n演奏速度 ); @@ -2175,12 +2497,14 @@ namespace TJAPlayer3 sw.WriteLine("TaikoRandom2P={0}", (int)this.eRandom[1]); sw.WriteLine("TaikoRandom3P={0}", (int)this.eRandom[2]); sw.WriteLine("TaikoRandom4P={0}", (int)this.eRandom[3]); + sw.WriteLine("TaikoRandom5P={0}", (int)this.eRandom[4]); sw.WriteLine(); sw.WriteLine( "; STEALTHモード(0:OFF, 1:ドロン, 2:ステルス)" ); sw.WriteLine( "TaikoStealth1P={0}", (int) this.eSTEALTH[0] ); sw.WriteLine("TaikoStealth2P={0}", (int)this.eSTEALTH[1]); sw.WriteLine("TaikoStealth3P={0}", (int)this.eSTEALTH[2]); sw.WriteLine("TaikoStealth4P={0}", (int)this.eSTEALTH[3]); + sw.WriteLine("TaikoStealth5P={0}", (int)this.eSTEALTH[4]); sw.WriteLine(); sw.WriteLine( "; ゲーム(0:OFF, 1:完走!叩ききりまショー!, 2:完走!叩ききりまショー!(激辛) )" ); sw.WriteLine( "GameMode={0}", (int) this.eGameMode ); @@ -2249,6 +2573,7 @@ namespace TJAPlayer3 sw.WriteLine(); sw.WriteLine( "[DrumsKeyAssign]" ); sw.WriteLine(); + sw.Write( "LeftRed=" ); this.tキーの書き出し( sw, this.KeyAssign.Drums.LeftRed ); sw.WriteLine(); @@ -2261,6 +2586,7 @@ namespace TJAPlayer3 sw.Write( "RightBlue=" ); // #27029 2012.1.4 from this.tキーの書き出し( sw, this.KeyAssign.Drums.RightBlue ); // sw.WriteLine(); + sw.Write( "LeftRed2P=" ); this.tキーの書き出し( sw, this.KeyAssign.Drums.LeftRed2P ); sw.WriteLine(); @@ -2273,12 +2599,62 @@ namespace TJAPlayer3 sw.Write( "RightBlue2P=" ); // #27029 2012.1.4 from this.tキーの書き出し( sw, this.KeyAssign.Drums.RightBlue2P ); // sw.WriteLine(); + + sw.Write("LeftRed3P="); + this.tキーの書き出し(sw, this.KeyAssign.Drums.LeftRed3P); + sw.WriteLine(); + sw.Write("RightRed3P="); + this.tキーの書き出し(sw, this.KeyAssign.Drums.RightRed3P); + sw.WriteLine(); + sw.Write("LeftBlue3P="); // #27029 2012.1.4 from + this.tキーの書き出し(sw, this.KeyAssign.Drums.LeftBlue3P); // + sw.WriteLine(); // + sw.Write("RightBlue3P="); // #27029 2012.1.4 from + this.tキーの書き出し(sw, this.KeyAssign.Drums.RightBlue3P); // + sw.WriteLine(); + + sw.Write("LeftRed4P="); + this.tキーの書き出し(sw, this.KeyAssign.Drums.LeftRed4P); + sw.WriteLine(); + sw.Write("RightRed4P="); + this.tキーの書き出し(sw, this.KeyAssign.Drums.RightRed4P); + sw.WriteLine(); + sw.Write("LeftBlue4P="); // #27029 2012.1.4 from + this.tキーの書き出し(sw, this.KeyAssign.Drums.LeftBlue4P); // + sw.WriteLine(); // + sw.Write("RightBlue4P="); // #27029 2012.1.4 from + this.tキーの書き出し(sw, this.KeyAssign.Drums.RightBlue4P); // + sw.WriteLine(); + + sw.Write("LeftRed5P="); + this.tキーの書き出し(sw, this.KeyAssign.Drums.LeftRed5P); + sw.WriteLine(); + sw.Write("RightRed5P="); + this.tキーの書き出し(sw, this.KeyAssign.Drums.RightRed5P); + sw.WriteLine(); + sw.Write("LeftBlue5P="); // #27029 2012.1.4 from + this.tキーの書き出し(sw, this.KeyAssign.Drums.LeftBlue5P); // + sw.WriteLine(); // + sw.Write("RightBlue5P="); // #27029 2012.1.4 from + this.tキーの書き出し(sw, this.KeyAssign.Drums.RightBlue5P); // + sw.WriteLine(); + sw.Write("Clap="); this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap); sw.WriteLine(); sw.Write("Clap2P="); this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap2P); sw.WriteLine(); + sw.Write("Clap3P="); + this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap3P); + sw.WriteLine(); + sw.Write("Clap4P="); + this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap4P); + sw.WriteLine(); + sw.Write("Clap5P="); + this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap5P); + sw.WriteLine(); + sw.Write("Decide="); this.tキーの書き出し(sw, this.KeyAssign.Drums.Decide); sw.WriteLine(); @@ -2291,6 +2667,7 @@ namespace TJAPlayer3 sw.Write("RightChange="); this.tキーの書き出し(sw, this.KeyAssign.Drums.RightChange); sw.WriteLine(); + sw.WriteLine(); #endregion #region [ SystemkeyAssign ] @@ -2817,13 +3194,25 @@ namespace TJAPlayer3 case Eセクション種別.AutoPlay: if (str3.Equals("Taiko")) { - this.b太鼓パートAutoPlay = C変換.bONorOFF(str4[0]); - } - else if (str3.Equals("Taiko2P")) - { - this.b太鼓パートAutoPlay2P = C変換.bONorOFF(str4[0]); - } - else if (str3.Equals("TaikoAutoRoll")) + this.b太鼓パートAutoPlay[0] = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("Taiko2P")) + { + this.b太鼓パートAutoPlay[1] = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("Taiko3P")) + { + this.b太鼓パートAutoPlay[2] = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("Taiko4P")) + { + this.b太鼓パートAutoPlay[3] = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("Taiko5P")) + { + this.b太鼓パートAutoPlay[4] = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("TaikoAutoRoll")) { this.bAuto先生の連打 = C変換.bONorOFF(str4[0]); } @@ -2989,6 +3378,10 @@ namespace TJAPlayer3 { this.nScrollSpeed[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x7cf, this.nScrollSpeed[3]); } + else if (str3.Equals("DrumsScrollSpeed5P")) + { + this.nScrollSpeed[4] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x7cf, this.nScrollSpeed[4]); + } #endregion @@ -3010,6 +3403,10 @@ namespace TJAPlayer3 { this.nTimingZones[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, this.nTimingZones[3]); } + else if (str3.Equals("TimingZones5P")) + { + this.nTimingZones[4] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, this.nTimingZones[4]); + } #endregion @@ -3032,6 +3429,10 @@ namespace TJAPlayer3 { this.bJust[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, this.bJust[3]); } + else if (str3.Equals("Just5P")) + { + this.bJust[4] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, this.bJust[4]); + } #endregion @@ -3053,6 +3454,10 @@ namespace TJAPlayer3 { this.nHitSounds[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 9999999, this.nHitSounds[3]); } + else if (str3.Equals("HitSounds5P")) + { + this.nHitSounds[4] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 9999999, this.nHitSounds[4]); + } #endregion @@ -3074,6 +3479,10 @@ namespace TJAPlayer3 { this.nGameType[3] = (EGameType)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1, (int)this.nGameType[3]); } + else if (str3.Equals("Gametype5P")) + { + this.nGameType[4] = (EGameType)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1, (int)this.nGameType[4]); + } #endregion @@ -3095,6 +3504,10 @@ namespace TJAPlayer3 { this.nFunMods[3] = (EFunMods)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, (int)EFunMods.TOTAL - 1, (int)this.nFunMods[3]); } + else if (str3.Equals("FunMods5P")) + { + this.nFunMods[4] = (EFunMods)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, (int)EFunMods.TOTAL - 1, (int)this.nFunMods[4]); + } #endregion @@ -3116,6 +3529,10 @@ namespace TJAPlayer3 { this.eSTEALTH[3] = (Eステルスモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.eSTEALTH[3]); } + else if (str3.Equals("TaikoStealth5P")) + { + this.eSTEALTH[4] = (Eステルスモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.eSTEALTH[4]); + } #endregion @@ -3137,6 +3554,10 @@ namespace TJAPlayer3 { this.eRandom[3] = (Eランダムモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, (int)this.eRandom[3]); } + else if (str3.Equals("TaikoRandom5P")) + { + this.eRandom[4] = (Eランダムモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, (int)this.eRandom[4]); + } #endregion @@ -3234,7 +3655,7 @@ namespace TJAPlayer3 else if ( str3.Equals( "PlayerCount" ) ) { - this.nPlayerCount = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 1, 2, this.nPlayerCount ); + this.nPlayerCount = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 1, 5, this.nPlayerCount ); } else if(str3.Equals(nameof(ShinuchiMode))) { @@ -3337,6 +3758,57 @@ namespace TJAPlayer3 this.tキーの読み出しと設定( str4, this.KeyAssign.Drums.RightBlue2P ); // } + else if (str3.Equals("LeftRed3P")) + { + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LeftRed3P); + } + else if (str3.Equals("RightRed3P")) + { + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RightRed3P); + } + else if (str3.Equals("LeftBlue3P")) // #27029 2012.1.4 from + { // + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LeftBlue3P); // + } // + else if (str3.Equals("RightBlue3P")) // #27029 2012.1.4 from + { // + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RightBlue3P); // + } + + else if (str3.Equals("LeftRed4P")) + { + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LeftRed4P); + } + else if (str3.Equals("RightRed4P")) + { + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RightRed4P); + } + else if (str3.Equals("LeftBlue4P")) // #27029 2012.1.4 from + { // + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LeftBlue4P); // + } // + else if (str3.Equals("RightBlue4P")) // #27029 2012.1.4 from + { // + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RightBlue4P); // + } + + else if (str3.Equals("LeftRed5P")) + { + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LeftRed5P); + } + else if (str3.Equals("RightRed5P")) + { + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RightRed5P); + } + else if (str3.Equals("LeftBlue5P")) // #27029 2012.1.4 from + { // + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LeftBlue5P); // + } // + else if (str3.Equals("RightBlue5P")) // #27029 2012.1.4 from + { // + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RightBlue5P); // + } + else if (str3.Equals("Clap")) { this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap); @@ -3345,6 +3817,18 @@ namespace TJAPlayer3 { this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap2P); } + else if (str3.Equals("Clap3P")) + { + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap3P); + } + else if (str3.Equals("Clap4P")) + { + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap4P); + } + else if (str3.Equals("Clap5P")) + { + this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap5P); + } else if (str3.Equals("Decide")) { @@ -3564,8 +4048,23 @@ LeftRed2P=K011 RightRed2P=K023 LeftBlue2P=K012 RightBlue2P=K047 +LeftRed3P= +RightRed3P= +LeftBlue3P= +RightBlue3P= +LeftRed4P= +RightRed4P= +LeftBlue4P= +RightBlue4P= +LeftRed5P= +RightRed5P= +LeftBlue5P= +RightBlue5P= Clap=K017 Clap2P= +Clap3P= +Clap4P= +Clap5P= Decide=K015,K019 Cancel= LeftChange=K013 diff --git a/TJAPlayer3/Common/CHitSounds.cs b/TJAPlayer3/Common/CHitSounds.cs index fa57216f..66aaf4bc 100644 --- a/TJAPlayer3/Common/CHitSounds.cs +++ b/TJAPlayer3/Common/CHitSounds.cs @@ -11,7 +11,7 @@ namespace TJAPlayer3 public CHitSounds(string path) { tLoadFile(path); - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) { tReloadHitSounds(TJAPlayer3.ConfigIni.nHitSounds[i], i); } @@ -39,10 +39,10 @@ namespace TJAPlayer3 public string[] names; - public string[] don = new string[4]; - public string[] ka = new string[4]; - public string[] adlib = new string[4]; - public string[] clap = new string[4]; + public string[] don = new string[5]; + public string[] ka = new string[5]; + public string[] adlib = new string[5]; + public string[] clap = new string[5]; #region [private] diff --git a/TJAPlayer3/Common/CSkin.cs b/TJAPlayer3/Common/CSkin.cs index 9de03bbd..8c16ae2d 100644 --- a/TJAPlayer3/Common/CSkin.cs +++ b/TJAPlayer3/Common/CSkin.cs @@ -319,36 +319,36 @@ namespace TJAPlayer3 // Sounds\Clear - public Cシステムサウンド[] voiceClearFailed = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceClearClear = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceClearFullCombo = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceClearAllPerfect = new Cシステムサウンド[4]; + public Cシステムサウンド[] voiceClearFailed = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceClearClear = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceClearFullCombo = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceClearAllPerfect = new Cシステムサウンド[5]; // Sounds\Menu - public Cシステムサウンド[] voiceMenuSongSelect = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceMenuSongDecide = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceMenuDiffSelect = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceMenuDanSelectStart = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceMenuDanSelectPrompt = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceMenuDanSelectConfirm = new Cシステムサウンド[4]; + public Cシステムサウンド[] voiceMenuSongSelect = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceMenuSongDecide = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceMenuDiffSelect = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceMenuDanSelectStart = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceMenuDanSelectPrompt = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceMenuDanSelectConfirm = new Cシステムサウンド[5]; // Sounds\Title - public Cシステムサウンド[] voiceTitleSanka = new Cシステムサウンド[4]; + public Cシステムサウンド[] voiceTitleSanka = new Cシステムサウンド[5]; // Sounds\Tower - public Cシステムサウンド[] voiceTowerMiss = new Cシステムサウンド[4]; + public Cシステムサウンド[] voiceTowerMiss = new Cシステムサウンド[5]; // Sounds\Result - public Cシステムサウンド[] voiceResultBestScore = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceResultClearFailed = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceResultClearSuccess = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceResultDanFailed = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceResultDanRedPass = new Cシステムサウンド[4]; - public Cシステムサウンド[] voiceResultDanGoldPass = new Cシステムサウンド[4]; + public Cシステムサウンド[] voiceResultBestScore = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceResultClearFailed = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceResultClearSuccess = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceResultDanFailed = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceResultDanRedPass = new Cシステムサウンド[5]; + public Cシステムサウンド[] voiceResultDanGoldPass = new Cシステムサウンド[5]; // General sound effects (Skin specific) @@ -1976,7 +1976,7 @@ namespace TJAPlayer3 else if (strCommand == "SongSelect_NamePlate_X") { string[] strSplit = strParam.Split(','); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { SongSelect_NamePlate_X[i] = int.Parse(strSplit[i]); } @@ -1984,7 +1984,7 @@ namespace TJAPlayer3 else if (strCommand == "SongSelect_NamePlate_Y") { string[] strSplit = strParam.Split(','); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { SongSelect_NamePlate_Y[i] = int.Parse(strSplit[i]); } @@ -2008,7 +2008,7 @@ namespace TJAPlayer3 else if (strCommand == "SongSelect_ModIcons_X") { string[] strSplit = strParam.Split(','); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { SongSelect_ModIcons_X[i] = int.Parse(strSplit[i]); } @@ -2016,7 +2016,7 @@ namespace TJAPlayer3 else if (strCommand == "SongSelect_ModIcons_Y") { string[] strSplit = strParam.Split(','); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { SongSelect_ModIcons_Y[i] = int.Parse(strSplit[i]); } @@ -2040,7 +2040,7 @@ namespace TJAPlayer3 else if (strCommand == "SongSelect_Table_X") { string[] strSplit = strParam.Split(','); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { SongSelect_Table_X[i] = int.Parse(strSplit[i]); } @@ -2048,7 +2048,7 @@ namespace TJAPlayer3 else if (strCommand == "SongSelect_Table_Y") { string[] strSplit = strParam.Split(','); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { SongSelect_Table_Y[i] = int.Parse(strSplit[i]); } @@ -2056,7 +2056,7 @@ namespace TJAPlayer3 else if (strCommand == "SongSelect_High_Score_X") { string[] strSplit = strParam.Split(','); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { SongSelect_High_Score_X[i] = int.Parse(strSplit[i]); } @@ -2064,7 +2064,7 @@ namespace TJAPlayer3 else if (strCommand == "SongSelect_High_Score_Y") { string[] strSplit = strParam.Split(','); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { SongSelect_High_Score_Y[i] = int.Parse(strSplit[i]); } @@ -2072,7 +2072,7 @@ namespace TJAPlayer3 else if (strCommand == "SongSelect_High_Score_Difficulty_Cymbol_X") { string[] strSplit = strParam.Split(','); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { SongSelect_High_Score_Difficulty_Cymbol_X[i] = int.Parse(strSplit[i]); } @@ -2080,7 +2080,7 @@ namespace TJAPlayer3 else if (strCommand == "SongSelect_High_Score_Difficulty_Cymbol_Y") { string[] strSplit = strParam.Split(','); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { SongSelect_High_Score_Difficulty_Cymbol_Y[i] = int.Parse(strSplit[i]); } @@ -2117,6 +2117,54 @@ namespace TJAPlayer3 SongSelect_BoardNumber_Y[1][i] = int.Parse(strSplit[i]); } } + else if (strCommand == "SongSelect_BoardNumber_3P_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 12; i++) + { + SongSelect_BoardNumber_X[2][i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "SongSelect_BoardNumber_3P_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 12; i++) + { + SongSelect_BoardNumber_Y[2][i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "SongSelect_BoardNumber_4P_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 12; i++) + { + SongSelect_BoardNumber_X[3][i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "SongSelect_BoardNumber_4P_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 12; i++) + { + SongSelect_BoardNumber_Y[3][i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "SongSelect_BoardNumber_5P_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 12; i++) + { + SongSelect_BoardNumber_X[4][i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "SongSelect_BoardNumber_5P_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 12; i++) + { + SongSelect_BoardNumber_Y[4][i] = int.Parse(strSplit[i]); + } + } else if (strCommand == "SongSelect_BoardNumber_Interval") { string[] strSplit = strParam.Split(','); @@ -3033,6 +3081,22 @@ namespace TJAPlayer3 nScrollFieldY[i] = int.Parse(strSplit[i]); } } + else if (strCommand == "Game_ScrollField_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + nScrollField_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_ScrollField_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + nScrollField_5P[i] = int.Parse(strSplit[i]); + } + } else if (strCommand == "Game_SENotes_Offset_X") { string[] strSplit = strParam.Split(','); @@ -3049,6 +3113,22 @@ namespace TJAPlayer3 nSENotesY[i] = int.Parse(strSplit[i]); } } + else if (strCommand == "Game_SENotes_Offset_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + nSENotes_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_SENotes_Offset_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + nSENotes_5P[i] = int.Parse(strSplit[i]); + } + } else if (strCommand == "Game_Notes_Size") { string[] strSplit = strParam.Split(','); @@ -3128,6 +3208,56 @@ namespace TJAPlayer3 else if (strCommand == nameof(Game_JudgeFrame_AddBlend)) { Game_JudgeFrame_AddBlend = C変換.bONorOFF(strParam[0]); + } + + + else if (strCommand == "Game_Judge_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Judge_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Judge_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Judge_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_UIMove_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_UIMove_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_UIMove_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_UIMove_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_ScoreRank_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_ScoreRank_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_ScoreRank_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_ScoreRank_4P[i] = int.Parse(strSplit[i]); + } } #region CourseSymbol @@ -3147,6 +3277,22 @@ namespace TJAPlayer3 Game_CourseSymbol_Y[i] = int.Parse(strSplit[i]); } } + else if (strCommand == "Game_CourseSymbol_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_CourseSymbol_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_CourseSymbol_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_CourseSymbol_5P[i] = int.Parse(strSplit[i]); + } + } #endregion #region PanelFont @@ -3460,6 +3606,57 @@ namespace TJAPlayer3 Game_Score_Size[i] = int.Parse(strSplit[i]); } } + + + else if (strCommand == "Game_Score_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Score_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Score_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Score_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Score_Add_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Score_Add_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Score_Add_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Score_Add_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Score_AddBonus_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Score_AddBonus_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Score_AddBonus_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Score_AddBonus_5P[i] = int.Parse(strSplit[i]); + } + } + #endregion #region Taiko @@ -3686,6 +3883,168 @@ namespace TJAPlayer3 Game_Taiko_Frame_Y[i] = int.Parse(strSplit[i]); } } + + + else if (strCommand == "Game_Taiko_Background_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Background_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Background_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Background_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_ModIcons_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_ModIcons_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_ModIcons_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_ModIcons_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_NamePlate_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_NamePlate_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_NamePlate_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_NamePlate_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_PlayerNumber_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_PlayerNumber_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_PlayerNumber_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_PlayerNumber_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Ex_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Ex_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Ex_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Ex_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Ex4_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Ex4_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Ex4_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Ex4_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Text_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Text_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Text_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Text_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Frame_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Frame_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Frame_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Frame_5P[i] = int.Parse(strSplit[i]); + } + } #endregion #region Gauge @@ -3868,6 +4227,56 @@ namespace TJAPlayer3 { Game_Tower_Font_TowerText = int.Parse(strParam); } + + + else if (strCommand == "Game_Gauge_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Gauge_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Gauge_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Gauge_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Gauge_Soul_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Gauge_Soul_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Gauge_Soul_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Gauge_Soul_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Gauge_Soul_Fire_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Gauge_Soul_Fire_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Gauge_Soul_Fire_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Gauge_Soul_Fire_5P[i] = int.Parse(strSplit[i]); + } + } #endregion #region Balloon @@ -4083,6 +4492,56 @@ namespace TJAPlayer3 ParseInt32(value => Game_Balloon_Balloon_Number_Scale = value); } + + else if (strCommand == "Game_Balloon_Balloon_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Balloon_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Balloon_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Balloon_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Balloon_Frame_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Balloon_Frame_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Balloon_Frame_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Balloon_Frame_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Balloon_Number_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Balloon_Number_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Balloon_Number_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Balloon_Number_5P[i] = int.Parse(strSplit[i]); + } + } + #endregion #region Effects @@ -4274,6 +4733,41 @@ namespace TJAPlayer3 { Game_Effect_FireWorks_Timing = int.Parse(strParam); } + + + else if (strCommand == "Game_Effects_Hit_Explosion_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Effects_Hit_Explosion_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Effects_Hit_Explosion_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Effects_Hit_Explosion_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Effect_Fire_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Effect_Fire_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Effect_Fire_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Effect_Fire_5P[i] = int.Parse(strSplit[i]); + } + } + #endregion #region Lane @@ -4311,6 +4805,22 @@ namespace TJAPlayer3 } } + else if (strCommand == "Game_Lane_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Lane_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Lane_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Lane_5P[i] = int.Parse(strSplit[i]); + } + } #endregion #region Runner @@ -4476,6 +4986,14 @@ namespace TJAPlayer3 { Game_PuchiChara_Y = strParam.Split(',').Select(int.Parse).ToArray(); } + else if (strCommand == nameof(Game_PuchiChara_4P)) + { + Game_PuchiChara_4P = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_PuchiChara_5P)) + { + Game_PuchiChara_5P = strParam.Split(',').Select(int.Parse).ToArray(); + } else if (strCommand == nameof(Game_PuchiChara_BalloonX)) { Game_PuchiChara_BalloonX = strParam.Split(',').Select(int.Parse).ToArray(); @@ -5420,6 +5938,296 @@ namespace TJAPlayer3 Result_Dan_Plate_XY = strParam.Split(',').Select(int.Parse).ToArray(); } + + else if (strCommand == "Result_UIMove_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_UIMove_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_UIMove_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_UIMove_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_DifficultyBar_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_DifficultyBar_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_DifficultyBar_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_DifficultyBar_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Gauge_Base_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Gauge_Base_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Gauge_Base_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Gauge_Base_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Gauge_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Gauge_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Gauge_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Gauge_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Gauge_ClearText_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Gauge_ClearText_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Gauge_ClearText_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Gauge_ClearText_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Gauge_Rainbow_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Gauge_Rainbow_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Gauge_Rainbow_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Gauge_Rainbow_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Soul_Fire_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Soul_Fire_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Soul_Fire_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Soul_Fire_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Soul_Text_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Soul_Text_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Soul_Text_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Soul_Text_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Perfect_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Perfect_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Perfect_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Perfect_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Good_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Good_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Good_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Good_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Miss_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Miss_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Miss_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Miss_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Roll_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Roll_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Roll_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Roll_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_MaxCombo_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_MaxCombo_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_MaxCombo_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_MaxCombo_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Score_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Score_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_Score_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_Score_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_ScoreRankEffect_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_ScoreRankEffect_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_ScoreRankEffect_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_ScoreRankEffect_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_CrownEffect_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_CrownEffect_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_CrownEffect_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_CrownEffect_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_NamePlate_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_NamePlate_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_NamePlate_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_NamePlate_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_ModIcons_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_ModIcons_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_ModIcons_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_ModIcons_5P[i] = int.Parse(strSplit[i]); + } + } + #endregion #region AIResult @@ -6268,6 +7076,86 @@ namespace TJAPlayer3 { Modal_Font_ModalTitleFull_Size = int.Parse(strParam); } + else if (strCommand == "Modal_Title_Half_X_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 4; i++) + { + Modal_Title_Half_X_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Modal_Title_Half_X_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 5; i++) + { + Modal_Title_Half_X_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Modal_Title_Half_Y_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 4; i++) + { + Modal_Title_Half_Y_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Modal_Title_Half_Y_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 5; i++) + { + Modal_Title_Half_Y_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Modal_Text_Half_X_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 4; i++) + { + Modal_Text_Half_X_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Modal_Text_Half_X_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 5; i++) + { + Modal_Text_Half_X_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Modal_Text_Half_Y_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 4; i++) + { + Modal_Text_Half_Y_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Modal_Text_Half_Y_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 5; i++) + { + Modal_Text_Half_Y_5P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Modal_Text_Half_Move_4P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Modal_Text_Half_Move_4P[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Modal_Text_Half_Move_5P") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Modal_Text_Half_Move_5P[i] = int.Parse(strSplit[i]); + } + } #endregion #endregion @@ -6329,7 +7217,10 @@ namespace TJAPlayer3 //現時点ではノーツ画像、Senotes画像、判定枠が連動する。 //Xは中央基準描画、Yは左上基準描画 public int[] nScrollFieldX = new int[] { 349, 349 }; - public int[] nScrollFieldY = new int[] { 192, 368 }; + public int[] nScrollFieldY = new int[] { 192, 368 }; + + public int[] nScrollField_4P = new int[] { 349, 46 }; + public int[] nScrollField_5P = new int[] { 349, 27 }; //中心座標指定 public int[] nJudgePointX = new int[] { 413, 413, 413, 413 }; @@ -6347,7 +7238,10 @@ namespace TJAPlayer3 //SEnotes //音符座標に加算 public int[] nSENotesX = new int[] { -2, -2 }; - public int[] nSENotesY = new int[] { 131, 131 }; + public int[] nSENotesY = new int[] { 131, 131 }; + + public int[] nSENotes_4P = new int[] { -2, 100 }; + public int[] nSENotes_5P = new int[] { -2, 94 }; //光る太鼓部分 public int nMtaikoBackgroundX = 0; @@ -6513,11 +7407,15 @@ namespace TJAPlayer3 public int[][] Characters_Resolution; public int[][] Characters_X; - public int[][] Characters_Y; + public int[][] Characters_Y; + public int[][] Characters_4P; + public int[][] Characters_5P; public int[][] Characters_X_AI; public int[][] Characters_Y_AI; public int[][] Characters_Balloon_X; - public int[][] Characters_Balloon_Y; + public int[][] Characters_Balloon_Y; + public int[][] Characters_Balloon_4P; + public int[][] Characters_Balloon_5P; public string[] Characters_Motion_Normal, Characters_Motion_Miss, Characters_Motion_MissDown, @@ -6535,8 +7433,8 @@ namespace TJAPlayer3 #endregion #region [Adjustments] - public int[] Adjustments_MenuPuchichara_X = new int[] { -100, 100, -100, 100 }; - public int[] Adjustments_MenuPuchichara_Y = new int[] { -100, -100, -100, -100 }; + public int[] Adjustments_MenuPuchichara_X = new int[] { -100, 100 }; + public int[] Adjustments_MenuPuchichara_Y = new int[] { -100, -100 }; #endregion @@ -6665,31 +7563,38 @@ namespace TJAPlayer3 public int SongSelect_BoxExplanation_Interval = 30; - public int[] SongSelect_NamePlate_X = new int[] { 36, 1020 }; - public int[] SongSelect_NamePlate_Y = new int[] { 615, 615 }; + public int[] SongSelect_NamePlate_X = new int[] { 36, 1020, 216, 840, 396 }; + public int[] SongSelect_NamePlate_Y = new int[] { 615, 615, 561, 561, 615 }; public int[] SongSelect_Auto_X = new int[] { 60, 950 }; public int[] SongSelect_Auto_Y = new int[] { 650, 650 }; - public int[] SongSelect_ModIcons_X = new int[] { 40, 1020 }; - public int[] SongSelect_ModIcons_Y = new int[] { 672, 672 }; + public int[] SongSelect_ModIcons_X = new int[] { 40, 1020, 220, 840, 400 }; + public int[] SongSelect_ModIcons_Y = new int[] { 672, 672, 618, 618, 672 }; public int[] SongSelect_Timer = new int[] { 1148, 57 }; public int[] SongSelect_Timer_Interval = new int[] { 46, 0 }; - public int[] SongSelect_Table_X = new int[] { 0, 1034 }; - public int[] SongSelect_Table_Y = new int[] { 0, 0 }; + public int[] SongSelect_Table_X = new int[] { 0, 1034, 180, 854, 360 }; + public int[] SongSelect_Table_Y = new int[] { 0, 0, -204, -204, 0 }; - public int[] SongSelect_High_Score_X = new int[] { 124, 1158 }; - public int[] SongSelect_High_Score_Y = new int[] { 416, 416 }; + public int[] SongSelect_High_Score_X = new int[] { 124, 1158, 304, 978, 484 }; + public int[] SongSelect_High_Score_Y = new int[] { 416, 416, 212, 212, 416 }; - public int[] SongSelect_High_Score_Difficulty_Cymbol_X = new int[] { 46, 1080 }; - public int[] SongSelect_High_Score_Difficulty_Cymbol_Y = new int[] { 418, 418 }; + public int[] SongSelect_High_Score_Difficulty_Cymbol_X = new int[] { 46, 1080, 226, 900, 406 }; + public int[] SongSelect_High_Score_Difficulty_Cymbol_Y = new int[] { 418, 418, 214, 214, 418 }; public int[][] SongSelect_BoardNumber_X = new int[][] { new int[] { 62, 125, 190, 62, 125, 190, 190, 62, 125, 190, 74, 114 }, - new int[] { 1096, 1159, 1224, 1096, 1159, 1224, 1224, 1096, 1159, 1224, 1214, 1148 } + new int[] { 1096, 1159, 1224, 1096, 1159, 1224, 1224, 1096, 1159, 1224, 1214, 1148 }, + + new int[] { 242, 305, 370, 242, 305, 370, 370, 242, 305, 370, 254, 294 }, + new int[] { 916, 979, 1044, 916, 979, 1044, 1044, 916, 979, 1044, 1034, 968 }, + new int[] { 422, 485, 550, 422, 485, 550, 550, 422, 485, 550, 434, 474 } }; public int[][] SongSelect_BoardNumber_Y = new int[][] { new int[] { 276, 276, 276, 251, 251, 251, 226, 304, 304, 304, 353, 415 }, + new int[] { 276, 276, 276, 251, 251, 251, 226, 304, 304, 304, 353, 415 }, + new int[] { 72,72,72,47,47,47,22,100,100,100,149,211 }, + new int[] { 72,72,72,47,47,47,22,100,100,100,149,211 }, new int[] { 276, 276, 276, 251, 251, 251, 226, 304, 304, 304, 353, 415 } }; public int[] SongSelect_BoardNumber_Interval = new int[] { 9, 0 }; @@ -6916,7 +7821,16 @@ namespace TJAPlayer3 public int[] Game_Judge_Meter_HitRate = new int[] { 206, 436 }; public int[] Game_Judge_Meter_PerfectRate = new int[] { 206, 494 }; public int[] Game_Judge_Meter_GoodRate = new int[] { 206, 532 }; - public int[] Game_Judge_Meter_MissRate = new int[] { 206, 570 }; + public int[] Game_Judge_Meter_MissRate = new int[] { 206, 570 }; + + public int[] Game_Judge_4P = new int[] { 364, 32 }; + public int[] Game_Judge_5P = new int[] { 364, 24 }; + + public int[] Game_UIMove_4P = new int[] { 165, 68 }; + public int[] Game_UIMove_5P = new int[] { 165, 60 }; + + public int[] Game_ScoreRank_4P = new int[] { 87, 88 }; + public int[] Game_ScoreRank_5P = new int[] { 87, 80 }; #region Chara @@ -6981,8 +7895,11 @@ namespace TJAPlayer3 Game_Mob_Ptn_Beat = 1; #endregion #region CourseSymbol - public int[] Game_CourseSymbol_X = new int[] { 64, 64 }; - public int[] Game_CourseSymbol_Y = new int[] { 232, 582 }; + public int[] Game_CourseSymbol_X = new int[] { -4, -4 }; + public int[] Game_CourseSymbol_Y = new int[] { 232, 582 }; + + public int[] Game_CourseSymbol_4P = new int[] { -4, 56 }; + public int[] Game_CourseSymbol_5P = new int[] { -4, 48 }; #endregion #region PanelFont public int Game_MusicName_X = 1160; @@ -7016,19 +7933,29 @@ namespace TJAPlayer3 public int[] Game_Score_AddBonus_X = new int[] { 20, 20, 0, 0 }; public int[] Game_Score_AddBonus_Y = new int[] { 136, 626, 0, 0 }; public int Game_Score_Padding = 20; - public int[] Game_Score_Size = new int[] { 24, 40 }; + public int[] Game_Score_Size = new int[] { 24, 40 }; + + public int[] Game_Score_4P = new int[] { 20, 54 }; + public int[] Game_Score_5P = new int[] { 20, 46 }; + + public int[] Game_Score_Add_4P = new int[] { 20, 94 }; + public int[] Game_Score_Add_5P = new int[] { 20, 86 }; + + public int[] Game_Score_AddBonus_4P = new int[] { 20, 134 }; + public int[] Game_Score_AddBonus_5P = new int[] { 20, 126 }; #endregion #region Taiko public int[] Game_Taiko_Background_X = new int[] { 0, 0 }; public int[] Game_Taiko_Background_Y = new int[] { 184, 360 }; + public int[] Game_Taiko_ModIcons_X = new int[] { 80, 80 }; public int[] Game_Taiko_ModIcons_Y = new int[] { 236, 426 }; - public int[] Game_Taiko_NamePlate_X = new int[] { 0, 0 }; - public int[] Game_Taiko_NamePlate_Y = new int[] { 300, 380 }; + public int[] Game_Taiko_NamePlate_X = new int[] { -5, -5 }; + public int[] Game_Taiko_NamePlate_Y = new int[] { 297, 371 }; public int[] Game_Taiko_PlayerNumber_X = new int[] { 4, 4 }; public int[] Game_Taiko_PlayerNumber_Y = new int[] { 233, 435 }; - public int[] Game_Taiko_X = new int[] { 190, 190 }; - public int[] Game_Taiko_Y = new int[] { 190, 368 }; + public int[] Game_Taiko_X = new int[] { 205, 205 }; + public int[] Game_Taiko_Y = new int[] { 206, 384 }; public int[] Game_Taiko_Combo_X = new int[] { 267, 267 }; public int[] Game_Taiko_Combo_Y = new int[] { 272, 447 }; public int[] Game_Taiko_Combo_Ex_X = new int[] { 267, 267 }; @@ -7046,7 +7973,39 @@ namespace TJAPlayer3 public int[] Game_Taiko_LevelChange_X = new int[] { 311, 311 }; public int[] Game_Taiko_LevelChange_Y = new int[] { 154, 566 }; public int[] Game_Taiko_Frame_X = new int[] { 329, 329 }; - public int[] Game_Taiko_Frame_Y = new int[] { 136, 360 }; + public int[] Game_Taiko_Frame_Y = new int[] { 136, 360 }; + + + public int[] Game_Taiko_Background_4P = new int[] { 0, 8 }; + public int[] Game_Taiko_Background_5P = new int[] { 0, 0 }; + + public int[] Game_Taiko_ModIcons_4P = new int[] { 80, 60 }; + public int[] Game_Taiko_ModIcons_5P = new int[] { 80, 50 }; + + public int[] Game_Taiko_NamePlate_4P = new int[] { -55, 121 }; + public int[] Game_Taiko_NamePlate_5P = new int[] { -55, 97 }; + + public int[] Game_Taiko_PlayerNumber_4P = new int[] { 4, 57 }; + public int[] Game_Taiko_PlayerNumber_5P = new int[] { 4, 49 }; + + public int[] Game_Taiko_4P = new int[] { 205, 30 }; + public int[] Game_Taiko_5P = new int[] { 205, 22 }; + + public int[] Game_Taiko_Combo_4P = new int[] { 267, 73 }; + public int[] Game_Taiko_Combo_5P = new int[] { 267, 65 }; + + public int[] Game_Taiko_Combo_Ex_4P = new int[] { 267, 75 }; + public int[] Game_Taiko_Combo_Ex_5P = new int[] { 267, 67 }; + + public int[] Game_Taiko_Combo_Ex4_4P = new int[] { 267, 70 }; + public int[] Game_Taiko_Combo_Ex4_5P = new int[] { 267, 62 }; + + public int[] Game_Taiko_Combo_Text_4P = new int[] { 268, 99 }; + public int[] Game_Taiko_Combo_Text_5P = new int[] { 268, 91 }; + + public int[] Game_Taiko_Frame_4P = new int[] { 333, 8 }; + public int[] Game_Taiko_Frame_5P = new int[] { 333, 0 }; + #endregion #region Gauge public int[] Game_Gauge_X = new int[] { 492, 492 }; @@ -7074,7 +8033,17 @@ namespace TJAPlayer3 public int Gauge_Soul_Fire_Y_Tower = 22; public int Game_Gauge_Rainbow_Ptn; public int Game_Gauge_Dan_Rainbow_Ptn; - public int Game_Gauge_Rainbow_Timer = 50; + public int Game_Gauge_Rainbow_Timer = 50; + + public int[] Game_Gauge_4P = new int[] { 492, -4 }; + public int[] Game_Gauge_5P = new int[] { 492, -12 }; + + public int[] Gauge_Soul_4P = new int[] { 1184, -12 }; + public int[] Gauge_Soul_5P = new int[] { 1184, -20 }; + + public int[] Gauge_Soul_Fire_4P = new int[] { 1112, -85 }; + public int[] Gauge_Soul_Fire_5P = new int[] { 1112, -93 }; + #endregion #region Balloon public int[] Game_Balloon_Combo_X = new int[] { 253, 253 }; @@ -7104,7 +8073,16 @@ namespace TJAPlayer3 public int[] Game_Balloon_Number_Size = new int[] { 63, 75 }; public int[] Game_Balloon_Number_Interval = new int[] { 55, 0 }; public float Game_Balloon_Roll_Number_Scale = 1.000f; - public float Game_Balloon_Balloon_Number_Scale = 0.879f; + public float Game_Balloon_Balloon_Number_Scale = 0.879f; + + public int[] Game_Balloon_Balloon_4P = new int[] { 382, -61 }; + public int[] Game_Balloon_Balloon_5P = new int[] { 382, -53 }; + + public int[] Game_Balloon_Balloon_Frame_4P = new int[] { 382, -12 }; + public int[] Game_Balloon_Balloon_Frame_5P = new int[] { 382, -4 }; + + public int[] Game_Balloon_Balloon_Number_4P = new int[] { 423, 95 }; + public int[] Game_Balloon_Balloon_Number_5P = new int[] { 423, 87 }; #endregion #region Effects public int[] Game_Effect_Roll_StartPoint_X = new int[] { 56, -10, 200, 345, 100, 451, 600, 260, -30, 534, 156, 363 }; @@ -7155,12 +8133,21 @@ namespace TJAPlayer3 public bool Game_Effect_Fire_AddBlend = true; public bool Game_Effect_GoGoSplash_AddBlend = true; public int Game_Effect_FireWorks_Timing = 8; + + public int[] Game_Effects_Hit_Explosion_4P = new int[] { 284, -20 }; + public int[] Game_Effects_Hit_Explosion_5P = new int[] { 284, -39 }; + + public int[] Game_Effect_Fire_4P = new int[] { 240, -75 }; + public int[] Game_Effect_Fire_5P = new int[] { 240, -94 }; #endregion #region Lane public int[] Game_Lane_X = new int[] { 333, 333 }; public int[] Game_Lane_Y = new int[] { 192, 368 }; public int[] Game_Lane_Sub_X = new int[] { 333, 333 }; - public int[] Game_Lane_Sub_Y = new int[] { 326, 502 }; + public int[] Game_Lane_Sub_Y = new int[] { 326, 502 }; + + public int[] Game_Lane_4P = new int[] { 333, 46 }; + public int[] Game_Lane_5P = new int[] { 333, 39 }; #endregion #region Runner public int[] Game_Runner_Size = new int[] { 60, 125 }; @@ -7173,6 +8160,8 @@ namespace TJAPlayer3 #region PuchiChara public int[] Game_PuchiChara_X = new int[] { 100, 100 }; public int[] Game_PuchiChara_Y = new int[] { 140, 675 }; + public int[] Game_PuchiChara_4P = new int[] { 230, 162 }; + public int[] Game_PuchiChara_5P = new int[] { 230, 150 }; public int[] Game_PuchiChara_BalloonX = new int[] { 300, 300 }; public int[] Game_PuchiChara_BalloonY = new int[] { 240, 500 }; public float[] Game_PuchiChara_Scale = new float[] { 0.6f, 0.8f }; // 通常時、 ふうせん連打時 @@ -7285,7 +8274,11 @@ namespace TJAPlayer3 #endregion #endregion - #region Result + #region Result + + public int[] Result_UIMove_4P = new int[] { 320, 0 }; + public int[] Result_UIMove_5P = new int[] { 256, 0 }; + public int Result_Cloud_Count = 11; public int[] Result_Cloud_X = new int[] { 642, 612, 652, 1148, 1180, 112, 8, 1088, 1100, 32, 412 }; public int[] Result_Cloud_Y = new int[] { 202, 424, 636, 530, 636, 636, 102, 52, 108, 326, 644 }; @@ -7414,6 +8407,57 @@ namespace TJAPlayer3 public int[] Result_Dan = new int[] { 500, 500 }; public int[] Result_Dan_XY = new int[] { 0, 420 }; public int[] Result_Dan_Plate_XY = new int[] { 149, 149 }; + + public int[] Result_DifficultyBar_4P = new int[] { 6, 101 }; + public int[] Result_DifficultyBar_5P = new int[] { -9, 101 }; + + public int[] Result_Gauge_Base_4P = new int[] { 25, 140 }; + public int[] Result_Gauge_Base_5P = new int[] { 4, 140 }; + + public int[] Result_Gauge_4P = new int[] { 27, 140 }; + public int[] Result_Gauge_5P = new int[] { 6, 140 }; + + public int[] Result_Gauge_ClearText_4P = new int[] { 218, 142 }; + public int[] Result_Gauge_ClearText_5P = new int[] { 197, 142 }; + + public int[] Result_Gauge_Rainbow_4P = new int[] { 26, 144 }; + public int[] Result_Gauge_Rainbow_5P = new int[] { 5, 144 }; + + public int[] Result_Soul_Fire_4P = new int[] { 284, 160 }; + public int[] Result_Soul_Fire_5P = new int[] { 232, 120 }; + + public int[] Result_Soul_Text_4P = new int[] { 283, 159 }; + public int[] Result_Soul_Text_5P = new int[] { 231, 119 }; + + public int[] Result_Perfect_4P = new int[] { 183, 251 }; + public int[] Result_Perfect_5P = new int[] { 151, 251 }; + + public int[] Result_Good_4P = new int[] { 183, 293 }; + public int[] Result_Good_5P = new int[] { 151, 293 }; + + public int[] Result_Miss_4P = new int[] { 183, 335 }; + public int[] Result_Miss_5P = new int[] { 151, 335 }; + + public int[] Result_Roll_4P = new int[] { 183, 377 }; + public int[] Result_Roll_5P = new int[] { 151, 377 }; + + public int[] Result_MaxCombo_4P = new int[] { 183, 419 }; + public int[] Result_MaxCombo_5P = new int[] { 151, 419 }; + + public int[] Result_Score_4P = new int[] { 253, 180 }; + public int[] Result_Score_5P = new int[] { 221, 180 }; + + public int[] Result_ScoreRankEffect_4P = new int[] { 100, 545 }; + public int[] Result_ScoreRankEffect_5P = new int[] { 68, 545 }; + + public int[] Result_CrownEffect_4P = new int[] { 220, 545 }; + public int[] Result_CrownEffect_5P = new int[] { 188, 545 }; + + public int[] Result_NamePlate_4P = new int[] { 80, 621 }; + public int[] Result_NamePlate_5P = new int[] { 31, 621 }; + + public int[] Result_ModIcons_4P = new int[] { 15, 678 }; + public int[] Result_ModIcons_5P = new int[] { -17, 678 }; #endregion #region AIResult @@ -7597,7 +8641,22 @@ namespace TJAPlayer3 public int Modal_Font_ModalContentHalf_Size = 28; public int Modal_Font_ModalTitleHalf_Size = 28; public int Modal_Font_ModalContentFull_Size = 56; - public int Modal_Font_ModalTitleFull_Size = 56; + public int Modal_Font_ModalTitleFull_Size = 56; + + public int[] Modal_Title_Half_X_4P = new int[] { 320, 960, 320, 960 }; + public int[] Modal_Title_Half_X_5P = new int[] { 320, 960, 320, 960, 320 }; + + public int[] Modal_Title_Half_Y_4P = new int[] { 66, 66, 426, 426 }; + public int[] Modal_Title_Half_Y_5P = new int[] { 50, 50, 290, 290, 530 }; + + public int[] Modal_Text_Half_X_4P = new int[] { 320, 960, 320, 960 }; + public int[] Modal_Text_Half_X_5P = new int[] { 320, 960, 320, 960, 320 }; + + public int[] Modal_Text_Half_Y_4P = new int[] { 159, 159, 519, 519 }; + public int[] Modal_Text_Half_Y_5P = new int[] { 107, 107, 347, 347, 587 }; + + public int[] Modal_Text_Half_Move_4P = new int[] { 0, 59 }; + public int[] Modal_Text_Half_Move_5P = new int[] { 0, 40 }; #endregion diff --git a/TJAPlayer3/Common/CSongDict.cs b/TJAPlayer3/Common/CSongDict.cs index 6953d327..b1d0eb4e 100644 --- a/TJAPlayer3/Common/CSongDict.cs +++ b/TJAPlayer3/Common/CSongDict.cs @@ -12,8 +12,11 @@ namespace TJAPlayer3 private static Dictionary nodes = new Dictionary(); private static HashSet urls = new HashSet(); - public static CActSelect曲リスト.CScorePad[][] ScorePads = new CActSelect曲リスト.CScorePad[2][] + public static CActSelect曲リスト.CScorePad[][] ScorePads = new CActSelect曲リスト.CScorePad[5][] { + new CActSelect曲リスト.CScorePad[(int)Difficulty.Edit + 2] { new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad() }, + new CActSelect曲リスト.CScorePad[(int)Difficulty.Edit + 2] { new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad() }, + new CActSelect曲リスト.CScorePad[(int)Difficulty.Edit + 2] { new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad() }, new CActSelect曲リスト.CScorePad[(int)Difficulty.Edit + 2] { new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad() }, new CActSelect曲リスト.CScorePad[(int)Difficulty.Edit + 2] { new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad() } }; @@ -274,7 +277,7 @@ namespace TJAPlayer3 { #region [Reset nodes] - for (int pl = 0; pl < 2; pl++) + for (int pl = 0; pl < 5; pl++) { CActSelect曲リスト.CScorePad[] SPArrRef = ScorePads[pl]; @@ -296,7 +299,7 @@ namespace TJAPlayer3 foreach (C曲リストノード song in nodes.Values) { - for (int pl = 0; pl < 2; pl++) + for (int pl = 0; pl < 5; pl++) { CActSelect曲リスト.CScorePad[] SPArrRef = ScorePads[pl]; diff --git a/TJAPlayer3/Common/C定数.cs b/TJAPlayer3/Common/C定数.cs index d3010347..f30f1041 100644 --- a/TJAPlayer3/Common/C定数.cs +++ b/TJAPlayer3/Common/C定数.cs @@ -90,18 +90,40 @@ namespace TJAPlayer3 LC = 9, LP = 10, // #27029 2012.1.4 from LBD = 11, + LRed = 12, RRed = 13, LBlue = 14, RBlue = 15, + LRed2P = 16, RRed2P = 17, LBlue2P = 18, - RBlue2P = 19, - CLAP = 20, - CLAP2P = 21, - LeftChange = 22, - RightChange = 23, + RBlue2P = 19, + + LRed3P = 20, + RRed3P = 21, + LBlue3P = 22, + RBlue3P = 23, + + LRed4P = 24, + RRed4P = 25, + LBlue4P = 26, + RBlue4P = 27, + + LRed5P = 28, + RRed5P = 29, + LBlue5P = 30, + RBlue5P = 31, + + CLAP = 32, + CLAP2P = 33, + CLAP3P = 34, + CLAP4P = 35, + CLAP5P = 36, + LeftChange = 37, + RightChange = 38, + MAX, // 門番用として定義 UNKNOWN = 99 } @@ -126,18 +148,40 @@ namespace TJAPlayer3 LC = Eパッド.LC, LP = Eパッド.LP, // #27029 2012.1.4 from LBD = Eパッド.LBD, + LRed = Eパッド.LRed, RRed = Eパッド.RRed, LBlue = Eパッド.LBlue, RBlue = Eパッド.RBlue, + LRed2P = Eパッド.LRed2P, RRed2P = Eパッド.RRed2P, LBlue2P = Eパッド.LBlue2P, - RBlue2P = Eパッド.RBlue2P, + RBlue2P = Eパッド.RBlue2P, + + LRed3P = Eパッド.LRed3P, + RRed3P = Eパッド.RRed3P, + LBlue3P = Eパッド.LBlue3P, + RBlue3P = Eパッド.RBlue3P, + + LRed4P = Eパッド.LRed4P, + RRed4P = Eパッド.RRed4P, + LBlue4P = Eパッド.LBlue4P, + RBlue4P = Eパッド.RBlue4P, + + LRed5P = Eパッド.LRed5P, + RRed5P = Eパッド.RRed5P, + LBlue5P = Eパッド.LBlue5P, + RBlue5P = Eパッド.RBlue5P, + Clap = Eパッド.CLAP, - Clap2P = Eパッド.CLAP2P, + Clap2P = Eパッド.CLAP2P, + Clap3P = Eパッド.CLAP3P, + Clap4P = Eパッド.CLAP4P, + Clap5P = Eパッド.CLAP5P, LeftChange = Eパッド.LeftChange, RightChange = Eパッド.RightChange, + Capture, UNKNOWN = Eパッド.UNKNOWN } diff --git a/TJAPlayer3/Common/Modal.cs b/TJAPlayer3/Common/Modal.cs index 2e06526f..6c923808 100644 --- a/TJAPlayer3/Common/Modal.cs +++ b/TJAPlayer3/Common/Modal.cs @@ -25,6 +25,10 @@ namespace TJAPlayer3 if (modalFormat == EModalFormat.Half) arrRef = TJAPlayer3.Tx.Modal_Half; + else if (modalFormat == EModalFormat.Half_4P) + arrRef = TJAPlayer3.Tx.Modal_Half_4P; + else if (modalFormat == EModalFormat.Half_5P) + arrRef = TJAPlayer3.Tx.Modal_Half_5P; else arrRef = TJAPlayer3.Tx.Modal_Full; @@ -36,6 +40,7 @@ namespace TJAPlayer3 _box = arrRef[usedTex]; } + /* _boxRect = new Rectangle( (modalFormat == EModalFormat.Full || player == 0) ? 0 @@ -45,6 +50,13 @@ namespace TJAPlayer3 ? _box.szテクスチャサイズ.Width : _box.szテクスチャサイズ.Width / 2, _box.szテクスチャサイズ.Height); + */ + + _boxRect = new Rectangle( + (modalFormat == EModalFormat.Full || player == 0) ? 0 : _box.szテクスチャサイズ.Width / 2, + 0, + (modalFormat == EModalFormat.Full) ? _box.szテクスチャサイズ.Width : _box.szテクスチャサイズ.Width / 2, + _box.szテクスチャサイズ.Height / (((TJAPlayer3.ConfigIni.nPlayerCount - 1) / 2) + 1)); tGenerateTextures(); @@ -55,18 +67,79 @@ namespace TJAPlayer3 { if (_isSet == true) { - _box?.t2D描画(TJAPlayer3.app.Device, (_box.szテクスチャサイズ.Width / 2) * player, 0, _boxRect); + _box?.t2D描画(TJAPlayer3.app.Device, _boxRect.Width * (player % 2), _boxRect.Height * (player / 2), _boxRect); + int[] title_x; + int[] title_y; + int[] text_x; + int[] text_y; + int moveX; + int moveY; + + if (modalFormat == EModalFormat.Full) + { + title_x = new int[] { TJAPlayer3.Skin.Modal_Title_Full[0] }; + title_y = new int[] { TJAPlayer3.Skin.Modal_Title_Full[1] }; + + text_x = new int[] { TJAPlayer3.Skin.Modal_Text_Full[0] }; + text_y = new int[] { TJAPlayer3.Skin.Modal_Text_Full[1] }; + + moveX = TJAPlayer3.Skin.Modal_Text_Full_Move[0]; + moveY = TJAPlayer3.Skin.Modal_Text_Full_Move[1]; + } + else if (modalFormat == EModalFormat.Half) + { + title_x = TJAPlayer3.Skin.Modal_Title_Half_X; + title_y = TJAPlayer3.Skin.Modal_Title_Half_Y; + + text_x = TJAPlayer3.Skin.Modal_Text_Half_X; + text_y = TJAPlayer3.Skin.Modal_Text_Half_Y; + + moveX = TJAPlayer3.Skin.Modal_Text_Half_Move[0]; + moveY = TJAPlayer3.Skin.Modal_Text_Half_Move[1]; + } + else if (modalFormat == EModalFormat.Half_4P) + { + title_x = TJAPlayer3.Skin.Modal_Title_Half_X_4P; + title_y = TJAPlayer3.Skin.Modal_Title_Half_Y_4P; + + text_x = TJAPlayer3.Skin.Modal_Text_Half_X_4P; + text_y = TJAPlayer3.Skin.Modal_Text_Half_Y_4P; + + moveX = TJAPlayer3.Skin.Modal_Text_Half_Move_4P[0]; + moveY = TJAPlayer3.Skin.Modal_Text_Half_Move_4P[1]; + } + else// 5P + { + title_x = TJAPlayer3.Skin.Modal_Title_Half_X_5P; + title_y = TJAPlayer3.Skin.Modal_Title_Half_Y_5P; + + text_x = TJAPlayer3.Skin.Modal_Text_Half_X_5P; + text_y = TJAPlayer3.Skin.Modal_Text_Half_Y_5P; + + moveX = TJAPlayer3.Skin.Modal_Text_Half_Move_5P[0]; + moveY = TJAPlayer3.Skin.Modal_Text_Half_Move_5P[1]; + } + + /* Point[] Pos = new Point[] { (modalFormat == EModalFormat.Full) ? new Point(TJAPlayer3.Skin.Modal_Title_Full[0], TJAPlayer3.Skin.Modal_Title_Full[1]) : new Point(TJAPlayer3.Skin.Modal_Title_Half_X[player], TJAPlayer3.Skin.Modal_Title_Half_Y[player]), // title - (modalFormat == EModalFormat.Full) ? - new Point(TJAPlayer3.Skin.Modal_Text_Full[0] +(tTextCentered () ? TJAPlayer3.Skin.Modal_Text_Full_Move[0] : 0), - TJAPlayer3.Skin.Modal_Text_Full[1] + (tTextCentered () ? TJAPlayer3.Skin.Modal_Text_Full_Move[1] : 0)) : + (modalFormat == EModalFormat.Full) ? + new Point(TJAPlayer3.Skin.Modal_Text_Full[0] +(tTextCentered () ? TJAPlayer3.Skin.Modal_Text_Full_Move[0] : 0), + TJAPlayer3.Skin.Modal_Text_Full[1] + (tTextCentered () ? TJAPlayer3.Skin.Modal_Text_Full_Move[1] : 0)) : new Point(TJAPlayer3.Skin.Modal_Text_Half_X[player] + (tTextCentered () ? TJAPlayer3.Skin.Modal_Text_Half_Move[0] : 0), TJAPlayer3.Skin.Modal_Text_Half_Y[player] + (tTextCentered () ? TJAPlayer3.Skin.Modal_Text_Half_Move[1] : 0)), // content }; + */ + + Point[] Pos = new Point[] + { + new Point(title_x[player], title_y[player]), + new Point(text_x[player] + (tTextCentered () ? moveX : 0), + text_y[player] + (tTextCentered () ? moveY : 0)), // content + }; _ModalTitle?.t2D中心基準描画(TJAPlayer3.app.Device, Pos[0].X, Pos[0].Y); _ModalText?.t2D中心基準描画(TJAPlayer3.app.Device, Pos[1].X, Pos[1].Y); @@ -124,6 +197,8 @@ namespace TJAPlayer3 { Full, Half, + Half_4P, + Half_5P, } #endregion diff --git a/TJAPlayer3/Common/ModalQueue.cs b/TJAPlayer3/Common/ModalQueue.cs index ec311900..c709bf84 100644 --- a/TJAPlayer3/Common/ModalQueue.cs +++ b/TJAPlayer3/Common/ModalQueue.cs @@ -10,24 +10,39 @@ namespace TJAPlayer3 { public ModalQueue(Modal.EModalFormat mf) { - _modalQueues = new Queue[] { new Queue(), new Queue() }; + _modalQueues = new Queue[] { new Queue(), new Queue(), new Queue(), new Queue(), new Queue() }; _modalFormat = mf; } // Add two modals (one per player) at the same time - public void tAddModal(Modal mp1, Modal mp2) + public void tAddModal(Modal mp1, Modal mp2, Modal mp3, Modal mp4, Modal mp5) { mp1.modalFormat = _modalFormat; mp2.modalFormat = _modalFormat; + mp3.modalFormat = _modalFormat; + mp4.modalFormat = _modalFormat; + mp5.modalFormat = _modalFormat; mp1.player = 0; mp2.player = 1; + mp3.player = 2; + mp4.player = 3; + mp5.player = 4; mp1.tSetupModal(); mp2.tSetupModal(); + mp3.tSetupModal(); + mp4.tSetupModal(); + mp5.tSetupModal(); if (mp1 != null) _modalQueues[0].Enqueue(mp1); if (mp2 != null) _modalQueues[1].Enqueue(mp2); + if (mp3 != null) + _modalQueues[2].Enqueue(mp3); + if (mp4 != null) + _modalQueues[3].Enqueue(mp4); + if (mp5 != null) + _modalQueues[4].Enqueue(mp5); } // Add a single modal @@ -58,7 +73,7 @@ namespace TJAPlayer3 public bool tAreBothQueuesEmpty() { - return tIsQueueEmpty(0) && tIsQueueEmpty(1); + return tIsQueueEmpty(0) && tIsQueueEmpty(1) && tIsQueueEmpty(2) && tIsQueueEmpty(3) && tIsQueueEmpty(4); } private Modal.EModalFormat _modalFormat; diff --git a/TJAPlayer3/Common/NamePlateConfig.cs b/TJAPlayer3/Common/NamePlateConfig.cs index d4fc4dd8..6e1e4c92 100644 --- a/TJAPlayer3/Common/NamePlateConfig.cs +++ b/TJAPlayer3/Common/NamePlateConfig.cs @@ -26,7 +26,7 @@ namespace TJAPlayer3 if (amounts.Length < 2) return; - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { int p = TJAPlayer3.GetActualPlayer(i); @@ -154,44 +154,47 @@ namespace TJAPlayer3 public class Data { [JsonProperty("name")] - public string[] Name = { "プレイヤー1", "プレイヤー2" }; + public string[] Name = { "プレイヤー1", "プレイヤー2", "プレイヤー3", "プレイヤー4", "プレイヤー5" }; [JsonProperty("title")] - public string[] Title = { "初心者", "初心者" }; + public string[] Title = { "初心者", "初心者", "初心者", "初心者", "初心者" }; [JsonProperty("dan")] - public string[] Dan = { "新人", "新人" }; + public string[] Dan = { "新人", "新人", "新人", "新人", "新人" }; [JsonProperty("danGold")] - public bool[] DanGold = { false, false }; + public bool[] DanGold = { false, false, false, false, false }; [JsonProperty("danType")] - public int[] DanType = { 0, 0 }; + public int[] DanType = { 0, 0, 0, 0, 0 }; [JsonProperty("titleType")] - public int[] TitleType = { 0, 0 }; + public int[] TitleType = { 0, 0, 0, 0, 0 }; [JsonProperty("puchiChara")] - public string[] PuchiChara = { "0", "0" }; + public string[] PuchiChara = { "0", "0", "0", "0", "0" }; [JsonProperty("medals")] - public int[] Medals = { 0, 0 }; + public int[] Medals = { 0, 0, 0, 0, 0 }; [JsonProperty("character")] - public int[] Character = { 0, 0 }; + public int[] Character = { 0, 0, 0, 0, 0 }; [JsonProperty("characterName")] - public string[] CharacterName = { "0", "0" }; + public string[] CharacterName = { "0", "0", "0", "0", "0" }; [JsonProperty("danTitles")] - public Dictionary[] DanTitles = new Dictionary[2]; + public Dictionary[] DanTitles = new Dictionary[5]; [JsonProperty("namePlateTitles")] - public Dictionary[] NamePlateTitles = new Dictionary[2]; + public Dictionary[] NamePlateTitles = new Dictionary[5]; [JsonProperty("unlockedPuchicharas")] - public List[] UnlockedPuchicharas = new List[2] + public List[] UnlockedPuchicharas = new List[5] { + new List(), + new List(), + new List(), new List(), new List() }; diff --git a/TJAPlayer3/Common/TJAPlayer3.cs b/TJAPlayer3/Common/TJAPlayer3.cs index f80389c6..406e735b 100644 --- a/TJAPlayer3/Common/TJAPlayer3.cs +++ b/TJAPlayer3/Common/TJAPlayer3.cs @@ -122,8 +122,68 @@ namespace TJAPlayer3 } } } - - public static bool IsPerformingCalibration; + public static CDTX DTX_3P + { + get + { + return dtx[2]; + } + set + { + if ((dtx[2] != null) && (app != null)) + { + dtx[2].On非活性化(); + app.listトップレベルActivities.Remove(dtx[2]); + } + dtx[2] = value; + if ((dtx[2] != null) && (app != null)) + { + app.listトップレベルActivities.Add(dtx[2]); + } + } + } + public static CDTX DTX_4P + { + get + { + return dtx[3]; + } + set + { + if ((dtx[3] != null) && (app != null)) + { + dtx[3].On非活性化(); + app.listトップレベルActivities.Remove(dtx[3]); + } + dtx[3] = value; + if ((dtx[3] != null) && (app != null)) + { + app.listトップレベルActivities.Add(dtx[3]); + } + } + } + public static CDTX DTX_5P + { + get + { + return dtx[4]; + } + set + { + if ((dtx[4] != null) && (app != null)) + { + dtx[4].On非活性化(); + app.listトップレベルActivities.Remove(dtx[4]); + } + dtx[4] = value; + if ((dtx[4] != null) && (app != null)) + { + app.listトップレベルActivities.Add(dtx[4]); + } + } + } + + public static bool IsPerformingCalibration; public static CFPS FPS { @@ -2094,7 +2154,7 @@ for (int i = 0; i < 3; i++) { private bool b終了処理完了済み; private bool bネットワークに接続中 = false; private long 前回のシステム時刻ms = long.MinValue; - private static CDTX[] dtx = new CDTX[ 4 ]; + private static CDTX[] dtx = new CDTX[ 5 ]; public static TextureLoader Tx = new TextureLoader(); @@ -2303,8 +2363,10 @@ for (int i = 0; i < 3; i++) { #region [ Skin の初期化 ] //--------------------- Trace.TraceInformation( "スキンの初期化を行います。" ); - Trace.Indent(); - try + Trace.Indent(); +#if !DEBUG + try +#endif { Skin = new CSkin( TJAPlayer3.ConfigIni.strSystemSkinSubfolderFullName, false); TJAPlayer3.ConfigIni.strSystemSkinSubfolderFullName = TJAPlayer3.Skin.GetCurrentSkinSubfolderFullName( true ); // 旧指定のSkinフォルダが消滅していた場合に備える @@ -2312,7 +2374,8 @@ for (int i = 0; i < 3; i++) { ChangeResolution(TJAPlayer3.Skin.Resolution[0], TJAPlayer3.Skin.Resolution[1]); Trace.TraceInformation( "スキンの初期化を完了しました。" ); - } + } +#if !DEBUG catch (Exception e) { Trace.TraceInformation( "スキンの初期化に失敗しました。" ); @@ -2322,6 +2385,7 @@ for (int i = 0; i < 3; i++) { { Trace.Unindent(); } +#endif // Init Modal fonts once config.ini parsing is done // Moved here to reference Skin values. diff --git a/TJAPlayer3/I18N/CLang_jp.cs b/TJAPlayer3/I18N/CLang_jp.cs index 27e53b2b..a882b0f3 100644 --- a/TJAPlayer3/I18N/CLang_jp.cs +++ b/TJAPlayer3/I18N/CLang_jp.cs @@ -294,6 +294,40 @@ namespace TJAPlayer3 [10092] = "ドラムの演奏に関する項目を設定します。", [10093] = "設定を保存し、コンフィグ画面を終了します。", + [10094] = "LeftRed3P", + [10095] = "左側の面へのキーの割り当てを設\n定します。", + [10096] = "RightRed3P", + [10097] = "右側の面へのキーの割り当て\nを設定します。", + [10098] = "LeftBlue3P", + [10099] = "左側のふちへのキーの\n割り当てを設定します。", + [10100] = "RightBlue3P", + [10101] = "右側のふちへのキーの\n割り当てを設定します。", + + [10102] = "LeftRed4P", + [10103] = "左側の面へのキーの割り当てを設\n定します。", + [10104] = "RightRed4P", + [10105] = "右側の面へのキーの割り当て\nを設定します。", + [10106] = "LeftBlue4P", + [10107] = "左側のふちへのキーの\n割り当てを設定します。", + [10108] = "RightBlue4P", + [10109] = "右側のふちへのキーの\n割り当てを設定します。", + + [10110] = "LeftRed5P", + [10111] = "左側の面へのキーの割り当てを設\n定します。", + [10112] = "RightRed5P", + [10113] = "右側の面へのキーの割り当て\nを設定します。", + [10114] = "LeftBlue5P", + [10115] = "左側のふちへのキーの\n割り当てを設定します。", + [10116] = "RightBlue5P", + [10117] = "右側のふちへのキーの\n割り当てを設定します。", + + [10118] = "Clap3P", + [10119] = "コンガの拍手へのキーの割り当てを設\n定します。", + [10120] = "Clap4P", + [10121] = "コンガの拍手へのキーの割り当てを設\n定します。", + [10122] = "Clap5P", + [10123] = "コンガの拍手へのキーの割り当てを設\n定します。", + [100] = "演奏ゲーム", [101] = "段位道場", [102] = "太鼓タワー", diff --git a/TJAPlayer3/Songs/CDTXStyleExtractor.cs b/TJAPlayer3/Songs/CDTXStyleExtractor.cs index a43568d8..d94dcccb 100644 --- a/TJAPlayer3/Songs/CDTXStyleExtractor.cs +++ b/TJAPlayer3/Songs/CDTXStyleExtractor.cs @@ -391,7 +391,7 @@ namespace TJAPlayer3 // relevant section/subsection combination. private static void RankSheets(int seqNo, IList
sections) { - var sheetRanksBySectionKindAndSubSectionKind = SeqNoSheetRanksBySectionKindAndSubSectionKind[seqNo]; + var sheetRanksBySectionKindAndSubSectionKind = SeqNoSheetRanksBySectionKindAndSubSectionKind[((seqNo - 1) % 2) + 1]; foreach (var section in sections) { diff --git a/TJAPlayer3/Songs/CScoreIni.cs b/TJAPlayer3/Songs/CScoreIni.cs index 2f97bc4f..6c9a8205 100644 --- a/TJAPlayer3/Songs/CScoreIni.cs +++ b/TJAPlayer3/Songs/CScoreIni.cs @@ -1557,7 +1557,7 @@ namespace TJAPlayer3 } internal static void t更新条件を取得する( out bool bDrumsを更新する, out bool bGuitarを更新する, out bool bBassを更新する ) { - bDrumsを更新する = !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + bDrumsを更新する = !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]; bGuitarを更新する = false; bBassを更新する = false; } diff --git a/TJAPlayer3/Songs/Cスコア.cs b/TJAPlayer3/Songs/Cスコア.cs index 92b74aba..39914a40 100644 --- a/TJAPlayer3/Songs/Cスコア.cs +++ b/TJAPlayer3/Songs/Cスコア.cs @@ -50,7 +50,7 @@ namespace TJAPlayer3 public ST譜面情報 譜面情報; // Smaller version of ST譜面情報 to keep the main info for each player (High scores, clear status, score ranks - public STGamePlayInformations[] GPInfo = new STGamePlayInformations[2]; + public STGamePlayInformations[] GPInfo = new STGamePlayInformations[5]; [Serializable] [StructLayout(LayoutKind.Sequential)] @@ -335,7 +335,7 @@ namespace TJAPlayer3 this.譜面情報.nクリア = new int[5]; this.譜面情報.nスコアランク = new int[5]; - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { this.GPInfo[i].nHighScore = new int[(int)Difficulty.Total]; this.GPInfo[i].nClear = new int[5]; diff --git a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs index 6a814edf..4833aaae 100644 --- a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs +++ b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs @@ -119,6 +119,7 @@ namespace TJAPlayer3 Readme = TxC(@"Readme.png"); NamePlate = new CTexture[2]; NamePlateBase = TxC(@"NamePlate.png"); + NamePlate_Extension = TxC(@"NamePlate_Extension.png"); NamePlate[0] = TxC(@"1P_NamePlate.png"); NamePlate[1] = TxC(@"2P_NamePlate.png"); NamePlate_Effect[0] = TxC(@"9_NamePlateEffect\GoldMStar.png"); @@ -202,7 +203,10 @@ namespace TJAPlayer3 #region 3_選曲画面 SongSelect_Background = TxC(SONGSELECT + @"Background.png"); SongSelect_Header = TxC(SONGSELECT + @"Header.png"); - SongSelect_Coin_Slot = TxC(SONGSELECT + @"Coin_Slot.png"); + SongSelect_Coin_Slot[0] = TxC(SONGSELECT + @"Coin_Slot.png"); + SongSelect_Coin_Slot[1] = TxC(SONGSELECT + @"Coin_Slot_3P.png"); + SongSelect_Coin_Slot[2] = TxC(SONGSELECT + @"Coin_Slot_4P.png"); + SongSelect_Coin_Slot[3] = TxC(SONGSELECT + @"Coin_Slot_5P.png"); SongSelect_Auto = TxC(SONGSELECT + @"Auto.png"); SongSelect_Level = TxC(SONGSELECT + @"Level.png"); @@ -298,6 +302,9 @@ namespace TJAPlayer3 Difficulty_Select_Bar[0] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar.png"); Difficulty_Select_Bar[1] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar2.png"); + Difficulty_Select_Bar[2] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar3.png"); + Difficulty_Select_Bar[3] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar4.png"); + Difficulty_Select_Bar[4] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar5.png"); TJAPlayer3.Skin.SongSelect_Difficulty_Background_Count = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + SONGSELECT + @"Difficulty_Select\Difficulty_Back\"), "Difficulty_Back_"); @@ -391,7 +398,7 @@ namespace TJAPlayer3 #region Taiko - Taiko_Background = new CTexture[11]; + Taiko_Background = new CTexture[12]; Taiko_Background[0] = TxC(GAME + TAIKO + @"1P_Background.png"); Taiko_Background[1] = TxC(GAME + TAIKO + @"2P_Background.png"); Taiko_Background[2] = TxC(GAME + TAIKO + @"Dan_Background.png"); @@ -403,18 +410,23 @@ namespace TJAPlayer3 Taiko_Background[8] = TxC(GAME + TAIKO + @"4P_Background.png"); Taiko_Background[9] = TxC(GAME + TAIKO + @"AI_Background.png"); Taiko_Background[10] = TxC(GAME + TAIKO + @"Boss_Background.png"); + Taiko_Background[11] = TxC(GAME + TAIKO + @"5P_Background.png"); - Taiko_Frame = new CTexture[6]; + Taiko_Frame = new CTexture[7]; Taiko_Frame[0] = TxC(GAME + TAIKO + @"1P_Frame.png"); Taiko_Frame[1] = TxC(GAME + TAIKO + @"2P_Frame.png"); Taiko_Frame[2] = TxC(GAME + TAIKO + @"Tower_Frame.png"); Taiko_Frame[3] = TxC(GAME + TAIKO + @"Tokkun_Frame.png"); Taiko_Frame[4] = TxC(GAME + TAIKO + @"2P_None_Frame.png"); Taiko_Frame[5] = TxC(GAME + TAIKO + @"AI_Frame.png"); + Taiko_Frame[6] = TxC(GAME + TAIKO + @"4PPlay_Frame.png"); - Taiko_PlayerNumber = new CTexture[2]; + Taiko_PlayerNumber = new CTexture[5]; Taiko_PlayerNumber[0] = TxC(GAME + TAIKO + @"1P_PlayerNumber.png"); Taiko_PlayerNumber[1] = TxC(GAME + TAIKO + @"2P_PlayerNumber.png"); + Taiko_PlayerNumber[2] = TxC(GAME + TAIKO + @"3P_PlayerNumber.png"); + Taiko_PlayerNumber[3] = TxC(GAME + TAIKO + @"4P_PlayerNumber.png"); + Taiko_PlayerNumber[4] = TxC(GAME + TAIKO + @"5P_PlayerNumber.png"); Taiko_Base = new CTexture[2]; @@ -439,10 +451,13 @@ namespace TJAPlayer3 Couse_Symbol[i] = TxC(GAME + COURSESYMBOL + Couse_Symbols[i] + ".png"); } - Taiko_Score = new CTexture[3]; + Taiko_Score = new CTexture[6]; Taiko_Score[0] = TxC(GAME + TAIKO + @"Score.png"); Taiko_Score[1] = TxC(GAME + TAIKO + @"Score_1P.png"); Taiko_Score[2] = TxC(GAME + TAIKO + @"Score_2P.png"); + Taiko_Score[3] = TxC(GAME + TAIKO + @"Score_3P.png"); + Taiko_Score[4] = TxC(GAME + TAIKO + @"Score_4P.png"); + Taiko_Score[5] = TxC(GAME + TAIKO + @"Score_5P.png"); Taiko_Combo = new CTexture[4]; Taiko_Combo[0] = TxC(GAME + TAIKO + @"Combo.png"); Taiko_Combo[1] = TxC(GAME + TAIKO + @"Combo_Big.png"); @@ -461,15 +476,25 @@ namespace TJAPlayer3 #region Gauge - Gauge = new CTexture[3]; + Gauge = new CTexture[8]; Gauge[0] = TxC(GAME + GAUGE + @"1P.png"); Gauge[1] = TxC(GAME + GAUGE + @"2P.png"); Gauge[2] = TxC(GAME + GAUGE + @"1P_Right.png"); + Gauge[3] = TxC(GAME + GAUGE + @"1P_4PGauge.png"); + Gauge[4] = TxC(GAME + GAUGE + @"2P_4PGauge.png"); + Gauge[5] = TxC(GAME + GAUGE + @"3P_4PGauge.png"); + Gauge[6] = TxC(GAME + GAUGE + @"4P_4PGauge.png"); + Gauge[7] = TxC(GAME + GAUGE + @"5P_4PGauge.png"); - Gauge_Base = new CTexture[3]; + Gauge_Base = new CTexture[8]; Gauge_Base[0] = TxC(GAME + GAUGE + @"1P_Base.png"); Gauge_Base[1] = TxC(GAME + GAUGE + @"2P_Base.png"); Gauge_Base[2] = TxC(GAME + GAUGE + @"1P_Base_Right.png"); + Gauge_Base[3] = TxC(GAME + GAUGE + @"1P_Base_4PGauge.png"); + Gauge_Base[4] = TxC(GAME + GAUGE + @"2P_Base_4PGauge.png"); + Gauge_Base[5] = TxC(GAME + GAUGE + @"3P_Base_4PGauge.png"); + Gauge_Base[6] = TxC(GAME + GAUGE + @"4P_Base_4PGauge.png"); + Gauge_Base[7] = TxC(GAME + GAUGE + @"5P_Base_4PGauge.png"); Gauge_Line = new CTexture[2]; Gauge_Line[0] = TxC(GAME + GAUGE + @"1P_Line.png"); @@ -891,6 +916,12 @@ namespace TJAPlayer3 Result_Gauge_Base[0] = TxC(RESULT + @"Gauge_Base.png"); Result_Gauge[1] = TxC(RESULT + @"Gauge_2.png"); Result_Gauge_Base[1] = TxC(RESULT + @"Gauge_Base_2.png"); + Result_Gauge[2] = TxC(RESULT + @"Gauge_3.png"); + Result_Gauge_Base[2] = TxC(RESULT + @"Gauge_Base_3.png"); + Result_Gauge[3] = TxC(RESULT + @"Gauge_4.png"); + Result_Gauge_Base[3] = TxC(RESULT + @"Gauge_Base_4.png"); + Result_Gauge[4] = TxC(RESULT + @"Gauge_5.png"); + Result_Gauge_Base[4] = TxC(RESULT + @"Gauge_Base_5.png"); Result_Header = TxC(RESULT + @"Header.png"); Result_Number = TxC(RESULT + @"Number.png"); @@ -912,6 +943,12 @@ namespace TJAPlayer3 Result_Flower = TxC(RESULT + @"Flower\Flower.png"); + for (int i = 0; i < 4; i++) + Result_Panel_4P[i] = TxC(RESULT + @"Panel_4P_" + (i + 1).ToString() + ".png"); + + for (int i = 0; i < 5; i++) + Result_Panel_5P[i] = TxC(RESULT + @"Panel_5P_" + (i + 1).ToString() + ".png"); + for (int i = 1; i <= 5; i++) Result_Flower_Rotate[i - 1] = TxC(RESULT + @"Flower\Rotate_" + i.ToString() + ".png"); @@ -922,7 +959,7 @@ namespace TJAPlayer3 for (int i = 0; i < 41; i++) Result_Rainbow[i] = TxC(RESULT + @"Rainbow\" + i.ToString() + ".png"); - for (int i = 0; i < 3; i++) + for (int i = 0; i < 6; i++) Result_Background[i] = TxC(RESULT + @"Background_" + i.ToString() + ".png"); for (int i = 0; i < 4; i++) @@ -1061,12 +1098,16 @@ namespace TJAPlayer3 TJAPlayer3.Skin.Characters_Menu_Y = new int[TJAPlayer3.Skin.Characters_Ptn][]; TJAPlayer3.Skin.Characters_X = new int[TJAPlayer3.Skin.Characters_Ptn][]; TJAPlayer3.Skin.Characters_Y = new int[TJAPlayer3.Skin.Characters_Ptn][]; + TJAPlayer3.Skin.Characters_4P = new int[TJAPlayer3.Skin.Characters_Ptn][]; + TJAPlayer3.Skin.Characters_5P = new int[TJAPlayer3.Skin.Characters_Ptn][]; TJAPlayer3.Skin.Characters_X_AI = new int[TJAPlayer3.Skin.Characters_Ptn][]; TJAPlayer3.Skin.Characters_Y_AI = new int[TJAPlayer3.Skin.Characters_Ptn][]; TJAPlayer3.Skin.Characters_Result_X = new int[TJAPlayer3.Skin.Characters_Ptn][]; TJAPlayer3.Skin.Characters_Result_Y = new int[TJAPlayer3.Skin.Characters_Ptn][]; TJAPlayer3.Skin.Characters_Balloon_X = new int[TJAPlayer3.Skin.Characters_Ptn][]; TJAPlayer3.Skin.Characters_Balloon_Y = new int[TJAPlayer3.Skin.Characters_Ptn][]; + TJAPlayer3.Skin.Characters_Balloon_4P = new int[TJAPlayer3.Skin.Characters_Ptn][]; + TJAPlayer3.Skin.Characters_Balloon_5P = new int[TJAPlayer3.Skin.Characters_Ptn][]; TJAPlayer3.Skin.Characters_Motion_Normal = new string[TJAPlayer3.Skin.Characters_Ptn]; TJAPlayer3.Skin.Characters_Motion_Miss = new string[TJAPlayer3.Skin.Characters_Ptn]; TJAPlayer3.Skin.Characters_Motion_MissDown = new string[TJAPlayer3.Skin.Characters_Ptn]; @@ -1088,10 +1129,10 @@ namespace TJAPlayer3 #endregion - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { TJAPlayer3.NamePlateConfig.tReindexCharacter(i, TJAPlayer3.Skin.Characters_DirName); - this.ReloadCharacter(-1, TJAPlayer3.NamePlateConfig.data.Character[i], i, i == 0); + this.ReloadCharacter(-1, TJAPlayer3.NamePlateConfig.data.Character[i], i, true); } @@ -1108,13 +1149,19 @@ namespace TJAPlayer3 Modal_Full = new CTexture[6]; Modal_Half = new CTexture[6]; + Modal_Half_4P = new CTexture[6]; + Modal_Half_5P = new CTexture[6]; for (int i = 0; i < 5; i++) { Modal_Full[i] = TxC(MODALS + i.ToString() + @"_full.png"); Modal_Half[i] = TxC(MODALS + i.ToString() + @"_half.png"); + Modal_Half_4P[i] = TxC(MODALS + i.ToString() + @"_half_4P.png"); + Modal_Half_5P[i] = TxC(MODALS + i.ToString() + @"_half_5P.png"); } Modal_Full[Modal_Full.Length - 1] = TxC(MODALS + @"Coin_full.png"); Modal_Half[Modal_Full.Length - 1] = TxC(MODALS + @"Coin_half.png"); + Modal_Half_4P[Modal_Full.Length - 1] = TxC(MODALS + @"Coin_half_4P.png"); + Modal_Half_5P[Modal_Full.Length - 1] = TxC(MODALS + @"Coin_half_5P.png"); #endregion @@ -1163,7 +1210,12 @@ namespace TJAPlayer3 int other = (player == 0) ? 1 : 0; - if (old >= 0 && TJAPlayer3.NamePlateConfig.data.Character[other] != old) + if (old >= 0 && + (TJAPlayer3.NamePlateConfig.data.Character[0] != old || player == 0) && + (TJAPlayer3.NamePlateConfig.data.Character[1] != old || player == 1) && + (TJAPlayer3.NamePlateConfig.data.Character[2] != old || player == 2) && + (TJAPlayer3.NamePlateConfig.data.Character[3] != old || player == 3) && + (TJAPlayer3.NamePlateConfig.data.Character[4] != old || player == 4)) { int i = old; @@ -1252,7 +1304,12 @@ namespace TJAPlayer3 string charaPath = TJAPlayer3.strEXEのあるフォルダ + GLOBAL + CHARACTERS + TJAPlayer3.Skin.Characters_DirName[newC]; - if ((newC >= 0 && TJAPlayer3.NamePlateConfig.data.Character[other] != newC) || primary) + if ((newC >= 0 && + TJAPlayer3.NamePlateConfig.data.Character[0] != newC && + TJAPlayer3.NamePlateConfig.data.Character[1] != newC && + TJAPlayer3.NamePlateConfig.data.Character[2] != newC && + TJAPlayer3.NamePlateConfig.data.Character[3] != newC && + TJAPlayer3.NamePlateConfig.data.Character[4] != newC) || primary) { int i = newC; @@ -1415,10 +1472,14 @@ namespace TJAPlayer3 TJAPlayer3.Skin.Characters_X[i] = new int[] { 0, 0 }; TJAPlayer3.Skin.Characters_Y[i] = new int[] { 0, 537 }; + TJAPlayer3.Skin.Characters_4P[i] = new int[] { 165, 68 }; + TJAPlayer3.Skin.Characters_5P[i] = new int[] { 165, 40 }; TJAPlayer3.Skin.Characters_X_AI[i] = new int[] { 472, 602 }; TJAPlayer3.Skin.Characters_Y_AI[i] = new int[] { 152, 152 }; TJAPlayer3.Skin.Characters_Balloon_X[i] = new int[] { 240, 240, 0, 0 }; TJAPlayer3.Skin.Characters_Balloon_Y[i] = new int[] { 0, 297, 0, 0 }; + TJAPlayer3.Skin.Characters_Balloon_4P[i] = new int[] { 0, -176 }; + TJAPlayer3.Skin.Characters_Balloon_5P[i] = new int[] { 0, -168 }; TJAPlayer3.Skin.Characters_Motion_Normal[i] = "0"; TJAPlayer3.Skin.Characters_Motion_Miss[i] = "0"; TJAPlayer3.Skin.Characters_Motion_MissDown[i] = "0"; @@ -1534,6 +1595,22 @@ namespace TJAPlayer3 TJAPlayer3.Skin.Characters_Y[i][k] = int.Parse(strSplit[k]); } } + else if (strCommand == "Game_Chara_4P") + { + string[] strSplit = strParam.Split(','); + for (int k = 0; k < 2; k++) + { + TJAPlayer3.Skin.Characters_4P[i][k] = int.Parse(strSplit[k]); + } + } + else if (strCommand == "Game_Chara_5P") + { + string[] strSplit = strParam.Split(','); + for (int k = 0; k < 2; k++) + { + TJAPlayer3.Skin.Characters_5P[i][k] = int.Parse(strSplit[k]); + } + } else if (strCommand == "Game_Chara_X_AI") { string[] strSplit = strParam.Split(','); @@ -1566,6 +1643,22 @@ namespace TJAPlayer3 TJAPlayer3.Skin.Characters_Balloon_Y[i][k] = int.Parse(strSplit[k]); } } + else if (strCommand == "Game_Chara_Balloon_4P") + { + string[] strSplit = strParam.Split(','); + for (int k = 0; k < 2; k++) + { + TJAPlayer3.Skin.Characters_Balloon_4P[i][k] = int.Parse(strSplit[k]); + } + } + else if (strCommand == "Game_Chara_Balloon_5P") + { + string[] strSplit = strParam.Split(','); + for (int k = 0; k < 2; k++) + { + TJAPlayer3.Skin.Characters_Balloon_5P[i][k] = int.Parse(strSplit[k]); + } + } else if (strCommand == "Game_Chara_Balloon_Timer") { if (int.Parse(strParam) > 0) @@ -1729,6 +1822,7 @@ namespace TJAPlayer3 Loading, Scanning_Loudness, NamePlateBase, + NamePlate_Extension, Overlay, Readme, Network_Connection; @@ -1775,7 +1869,6 @@ namespace TJAPlayer3 public CTexture SongSelect_Background, SongSelect_Header, - SongSelect_Coin_Slot, SongSelect_Auto, SongSelect_Level, SongSelect_Branch, @@ -1815,6 +1908,7 @@ namespace TJAPlayer3 SongSelect_Frame_Score = new CTexture[2], SongSelect_NamePlate = new CTexture[1], SongSelect_Song_Panel = new CTexture[4], + SongSelect_Coin_Slot = new CTexture[4], SongSelect_Table = new CTexture[6]; #region [ 難易度選択画面 ] @@ -1825,7 +1919,7 @@ namespace TJAPlayer3 public CTexture Difficulty_Option; public CTexture Difficulty_Option_Select; - public CTexture[] Difficulty_Select_Bar = new CTexture[2]; + public CTexture[] Difficulty_Select_Bar = new CTexture[5]; public CTexture[] Difficulty_Back; #endregion @@ -2095,15 +2189,17 @@ namespace TJAPlayer3 Result_Dan; public CTexture[] + Result_Panel_5P = new CTexture[5], + Result_Panel_4P = new CTexture[4], Result_Rainbow = new CTexture[41], - Result_Background = new CTexture[3], + Result_Background = new CTexture[6], Result_Crown = new CTexture[3], Result_Flower_Rotate = new CTexture[5], Result_Work = new CTexture[3], - Result_Gauge = new CTexture[2], - Result_Gauge_Base = new CTexture[2], + Result_Gauge = new CTexture[5], + Result_Gauge_Base = new CTexture[5], Result_Speech_Bubble = new CTexture[2], Result_Mountain = new CTexture[4]; @@ -2193,7 +2289,9 @@ namespace TJAPlayer3 #region [11_Modals] public CTexture[] Modal_Full, - Modal_Half; + Modal_Half, + Modal_Half_4P, + Modal_Half_5P; #endregion diff --git a/TJAPlayer3/Stages/02.Title/CStageタイトル.cs b/TJAPlayer3/Stages/02.Title/CStageタイトル.cs index 7fbee76c..7ccdd044 100644 --- a/TJAPlayer3/Stages/02.Title/CStageタイトル.cs +++ b/TJAPlayer3/Stages/02.Title/CStageタイトル.cs @@ -352,7 +352,7 @@ namespace TJAPlayer3 if (CMainMenuTab.__Menus[usedMenus[this.n現在の選択行モード選択]].rp == E戻り値.DANGAMESTART) { - if (TJAPlayer3.Songs管理.list曲ルート_Dan.Count > 0 && TJAPlayer3.ConfigIni.nPlayerCount != 2) + if (TJAPlayer3.Songs管理.list曲ルート_Dan.Count > 0 && TJAPlayer3.ConfigIni.nPlayerCount == 1) operationSucceded = true; } else if (CMainMenuTab.__Menus[usedMenus[this.n現在の選択行モード選択]].implemented == true @@ -687,6 +687,8 @@ namespace TJAPlayer3 for (int player = 0; player < TJAPlayer3.ConfigIni.nPlayerCount; player++) { + if (player >= 2) continue; + float DonchanX = 0f, DonchanY = 0f; DonchanX = -200 + ((float)Math.Sin(ctどんちゃんイン.n現在の値 / 2 * (Math.PI / 180)) * 200f); @@ -895,6 +897,8 @@ namespace TJAPlayer3 for (int player = 0; player < TJAPlayer3.ConfigIni.nPlayerCount; player++) { + if (player >= 2) continue; + TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.SongSelect_NamePlate_X[player], TJAPlayer3.Skin.SongSelect_NamePlate_Y[player], player, false, 255); } } diff --git a/TJAPlayer3/Stages/04.Config/CActConfigList.cs b/TJAPlayer3/Stages/04.Config/CActConfigList.cs index 95d93942..b94337d2 100644 --- a/TJAPlayer3/Stages/04.Config/CActConfigList.cs +++ b/TJAPlayer3/Stages/04.Config/CActConfigList.cs @@ -86,7 +86,7 @@ namespace TJAPlayer3 CLangManager.LangInstance.GetString(17)); this.list項目リスト.Add(this.iLayoutType); - this.iTaikoPlayerCount = new CItemInteger(CLangManager.LangInstance.GetString(6), 1, 2, TJAPlayer3.ConfigIni.nPlayerCount, + this.iTaikoPlayerCount = new CItemInteger(CLangManager.LangInstance.GetString(6), 1, 5, TJAPlayer3.ConfigIni.nPlayerCount, CLangManager.LangInstance.GetString(7)); this.list項目リスト.Add( this.iTaikoPlayerCount ); @@ -491,9 +491,63 @@ namespace TJAPlayer3 else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignTaikoRBlue2P ) { TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.RBlue2P ); + } + + //太鼓のキー設定。3P + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLRed3P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LRed3P); } - - // Konga claps + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRRed3P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.RRed3P); + } + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLBlue3P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LBlue3P); + } + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRBlue3P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.RBlue3P); + } + + //太鼓のキー設定。4P + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLRed4P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LRed4P); + } + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRRed4P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.RRed4P); + } + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLBlue4P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LBlue4P); + } + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRBlue4P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.RBlue4P); + } + + //太鼓のキー設定。5P + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLRed5P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LRed5P); + } + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRRed5P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.RRed5P); + } + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLBlue5P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LBlue5P); + } + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRBlue5P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.RBlue5P); + } + + // Konga claps else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignKongaClap) { TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.Clap); @@ -501,6 +555,18 @@ namespace TJAPlayer3 else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignKongaClap2P) { TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.Clap2P); + } + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignKongaClap3P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.Clap3P); + } + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignKongaClap4P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.Clap4P); + } + else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignKongaClap5P) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.Clap5P); } else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignDecide) @@ -696,6 +762,45 @@ namespace TJAPlayer3 CLangManager.LangInstance.GetString(10014)); this.list項目リスト.Add( this.iKeyAssignTaikoRBlue2P ); + this.iKeyAssignTaikoLRed3P = new CItemBase(CLangManager.LangInstance.GetString(10094), + CLangManager.LangInstance.GetString(10095)); + this.list項目リスト.Add(this.iKeyAssignTaikoLRed3P); + this.iKeyAssignTaikoRRed3P = new CItemBase(CLangManager.LangInstance.GetString(10096), + CLangManager.LangInstance.GetString(10097)); + this.list項目リスト.Add(this.iKeyAssignTaikoRRed3P); + this.iKeyAssignTaikoLBlue3P = new CItemBase(CLangManager.LangInstance.GetString(10098), + CLangManager.LangInstance.GetString(10099)); + this.list項目リスト.Add(this.iKeyAssignTaikoLBlue3P); + this.iKeyAssignTaikoRBlue3P = new CItemBase(CLangManager.LangInstance.GetString(10100), + CLangManager.LangInstance.GetString(10101)); + this.list項目リスト.Add(this.iKeyAssignTaikoRBlue3P); + + this.iKeyAssignTaikoLRed4P = new CItemBase(CLangManager.LangInstance.GetString(10102), + CLangManager.LangInstance.GetString(10103)); + this.list項目リスト.Add(this.iKeyAssignTaikoLRed4P); + this.iKeyAssignTaikoRRed4P = new CItemBase(CLangManager.LangInstance.GetString(10104), + CLangManager.LangInstance.GetString(10105)); + this.list項目リスト.Add(this.iKeyAssignTaikoRRed4P); + this.iKeyAssignTaikoLBlue4P = new CItemBase(CLangManager.LangInstance.GetString(10106), + CLangManager.LangInstance.GetString(10107)); + this.list項目リスト.Add(this.iKeyAssignTaikoLBlue4P); + this.iKeyAssignTaikoRBlue4P = new CItemBase(CLangManager.LangInstance.GetString(10108), + CLangManager.LangInstance.GetString(10109)); + this.list項目リスト.Add(this.iKeyAssignTaikoRBlue4P); + + this.iKeyAssignTaikoLRed5P = new CItemBase(CLangManager.LangInstance.GetString(10110), + CLangManager.LangInstance.GetString(10111)); + this.list項目リスト.Add(this.iKeyAssignTaikoLRed5P); + this.iKeyAssignTaikoRRed5P = new CItemBase(CLangManager.LangInstance.GetString(10112), + CLangManager.LangInstance.GetString(10113)); + this.list項目リスト.Add(this.iKeyAssignTaikoRRed5P); + this.iKeyAssignTaikoLBlue5P = new CItemBase(CLangManager.LangInstance.GetString(10114), + CLangManager.LangInstance.GetString(10115)); + this.list項目リスト.Add(this.iKeyAssignTaikoLBlue5P); + this.iKeyAssignTaikoRBlue5P = new CItemBase(CLangManager.LangInstance.GetString(10116), + CLangManager.LangInstance.GetString(10117)); + this.list項目リスト.Add(this.iKeyAssignTaikoRBlue5P); + this.iKeyAssignKongaClap = new CItemBase(CLangManager.LangInstance.GetString(10060), CLangManager.LangInstance.GetString(10061)); this.list項目リスト.Add(this.iKeyAssignKongaClap); @@ -704,6 +809,18 @@ namespace TJAPlayer3 CLangManager.LangInstance.GetString(10063)); this.list項目リスト.Add(this.iKeyAssignKongaClap2P); + this.iKeyAssignKongaClap3P = new CItemBase(CLangManager.LangInstance.GetString(10118), + CLangManager.LangInstance.GetString(10119)); + this.list項目リスト.Add(this.iKeyAssignKongaClap3P); + + this.iKeyAssignKongaClap4P = new CItemBase(CLangManager.LangInstance.GetString(10120), + CLangManager.LangInstance.GetString(10121)); + this.list項目リスト.Add(this.iKeyAssignKongaClap4P); + + this.iKeyAssignKongaClap5P = new CItemBase(CLangManager.LangInstance.GetString(10122), + CLangManager.LangInstance.GetString(10123)); + this.list項目リスト.Add(this.iKeyAssignKongaClap5P); + this.iKeyAssignDecide = new CItemBase(CLangManager.LangInstance.GetString(10064), CLangManager.LangInstance.GetString(10065)); this.list項目リスト.Add(this.iKeyAssignDecide); @@ -1293,13 +1410,32 @@ namespace TJAPlayer3 private CItemBase iKeyAssignTaikoRRed; private CItemBase iKeyAssignTaikoLBlue; private CItemBase iKeyAssignTaikoRBlue; + private CItemBase iKeyAssignTaikoLRed2P; private CItemBase iKeyAssignTaikoRRed2P; private CItemBase iKeyAssignTaikoLBlue2P; private CItemBase iKeyAssignTaikoRBlue2P; + private CItemBase iKeyAssignTaikoLRed3P; + private CItemBase iKeyAssignTaikoRRed3P; + private CItemBase iKeyAssignTaikoLBlue3P; + private CItemBase iKeyAssignTaikoRBlue3P; + + private CItemBase iKeyAssignTaikoLRed4P; + private CItemBase iKeyAssignTaikoRRed4P; + private CItemBase iKeyAssignTaikoLBlue4P; + private CItemBase iKeyAssignTaikoRBlue4P; + + private CItemBase iKeyAssignTaikoLRed5P; + private CItemBase iKeyAssignTaikoRRed5P; + private CItemBase iKeyAssignTaikoLBlue5P; + private CItemBase iKeyAssignTaikoRBlue5P; + private CItemBase iKeyAssignKongaClap; private CItemBase iKeyAssignKongaClap2P; + private CItemBase iKeyAssignKongaClap3P; + private CItemBase iKeyAssignKongaClap4P; + private CItemBase iKeyAssignKongaClap5P; private CItemBase iKeyAssignDecide; private CItemBase iKeyAssignCancel; diff --git a/TJAPlayer3/Stages/05.SongSelect/CActPlayOption.cs b/TJAPlayer3/Stages/05.SongSelect/CActPlayOption.cs index 5164894f..7de16f07 100644 --- a/TJAPlayer3/Stages/05.SongSelect/CActPlayOption.cs +++ b/TJAPlayer3/Stages/05.SongSelect/CActPlayOption.cs @@ -200,7 +200,8 @@ namespace TJAPlayer3 txFunMods[nFunMods], }; - var _shift = player == 1 ? (TJAPlayer3.Tx.Difficulty_Option.szテクスチャサイズ.Width / 2) : 0; + var pos = player % 2; + var _shift = pos == 1 ? (TJAPlayer3.Tx.Difficulty_Option.szテクスチャサイズ.Width / 2) : 0; var _rect = new Rectangle(_shift, 0, TJAPlayer3.Tx.Difficulty_Option.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Difficulty_Option.szテクスチャサイズ.Height); TJAPlayer3.Tx.Difficulty_Option.t2D描画(TJAPlayer3.app.Device, _shift, y, _rect); @@ -209,17 +210,17 @@ namespace TJAPlayer3 for (int i = 0; i < OptionType.Length; i++) { - OptionType[i].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_Option_OptionType_X[player] + i * TJAPlayer3.Skin.SongSelect_Option_Interval[0], - TJAPlayer3.Skin.SongSelect_Option_OptionType_Y[player] + y + i * TJAPlayer3.Skin.SongSelect_Option_Interval[1]); + OptionType[i].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_Option_OptionType_X[pos] + i * TJAPlayer3.Skin.SongSelect_Option_Interval[0], + TJAPlayer3.Skin.SongSelect_Option_OptionType_Y[pos] + y + i * TJAPlayer3.Skin.SongSelect_Option_Interval[1]); } - txModMults[0]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, TJAPlayer3.Skin.SongSelect_Option_ModMults1_X[player], TJAPlayer3.Skin.SongSelect_Option_ModMults1_Y[player] + y); - txModMults[1]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, TJAPlayer3.Skin.SongSelect_Option_ModMults2_X[player], TJAPlayer3.Skin.SongSelect_Option_ModMults2_Y[player] + y); + txModMults[0]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, TJAPlayer3.Skin.SongSelect_Option_ModMults1_X[pos], TJAPlayer3.Skin.SongSelect_Option_ModMults1_Y[pos] + y); + txModMults[1]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, TJAPlayer3.Skin.SongSelect_Option_ModMults2_X[pos], TJAPlayer3.Skin.SongSelect_Option_ModMults2_Y[pos] + y); for (int i = 0; i < _textures.Length; i++) { - _textures[i]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, TJAPlayer3.Skin.SongSelect_Option_Value_X[player] + i * TJAPlayer3.Skin.SongSelect_Option_Interval[0], - TJAPlayer3.Skin.SongSelect_Option_Value_Y[player] + y + i * TJAPlayer3.Skin.SongSelect_Option_Interval[1]); + _textures[i]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, TJAPlayer3.Skin.SongSelect_Option_Value_X[pos] + i * TJAPlayer3.Skin.SongSelect_Option_Interval[0], + TJAPlayer3.Skin.SongSelect_Option_Value_Y[pos] + y + i * TJAPlayer3.Skin.SongSelect_Option_Interval[1]); } if (ctClose.n現在の値 >= 50) @@ -239,17 +240,44 @@ namespace TJAPlayer3 if (!ctClose.b進行中) { - bool _leftDrum = (player == 0) - ? TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LeftChange) - : TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P); + bool _leftDrum = false; - bool _rightDrum = (player == 0) - ? TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange) - : TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P); + bool _rightDrum = false; - bool _centerDrum = (player == 0) - ? (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.Decide)) - : (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed2P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed2P)); + bool _centerDrum = false; + + bool _cancel = false; + + switch (player) + { + case 0: + _rightDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow)); + _leftDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LeftChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow)); + _centerDrum = (TJAPlayer3.Pad.b押されたDGB(Eパッド.Decide) || + (TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return))); + _cancel = (TJAPlayer3.Pad.b押されたDGB(Eパッド.Cancel) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape)); + break; + case 1: + _rightDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P)); + _leftDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P)); + _centerDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed2P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed2P)); + break; + case 2: + _rightDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue3P)); + _leftDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue3P)); + _centerDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed3P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed3P)); + break; + case 3: + _rightDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue4P)); + _leftDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue4P)); + _centerDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed4P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed4P)); + break; + case 4: + _rightDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue5P)); + _leftDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue5P)); + _centerDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed5P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed5P)); + break; + } if (_leftDrum || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow)) @@ -521,9 +549,7 @@ namespace TJAPlayer3 #region [ AutoMode ] - bool _auto = (player == 0) - ? TJAPlayer3.ConfigIni.b太鼓パートAutoPlay - : TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P; + bool _auto = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player]; if (_auto == true) nAutoMode = 1; @@ -656,18 +682,12 @@ namespace TJAPlayer3 #region [ AutoMode ] if (nAutoMode == 1) - { - if (player == 0) - TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = true; - else - TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = true; + { + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player] = true; } else - { - if (player == 0) - TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = false; - else - TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = false; + { + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player] = false; } #endregion diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelectQuickConfig.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelectQuickConfig.cs index 457d7e45..329686e2 100644 --- a/TJAPlayer3/Stages/05.SongSelect/CActSelectQuickConfig.cs +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelectQuickConfig.cs @@ -95,7 +95,7 @@ namespace TJAPlayer3 #endregion #region [ 共通 SET切り替え/More/Return ] - l.Add(new CItemInteger("PlayerCount", 1, 2, TJAPlayer3.ConfigIni.nPlayerCount, "プレイヤーの人数を指定します。" ,"Set a player count.")); + l.Add(new CItemInteger("PlayerCount", 1, 5, TJAPlayer3.ConfigIni.nPlayerCount, "プレイヤーの人数を指定します。" ,"Set a player count.")); l.Add( new CSwitchItemList( "More...", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "" } ) ); l.Add( new CSwitchItemList( "戻る", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "", "" } ) ); #endregion diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs index 99bf0552..795be131 100644 --- a/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs @@ -1569,6 +1569,8 @@ namespace TJAPlayer3 for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { + if (i >= 2) continue; + int ap = TJAPlayer3.GetActualPlayer(i); int[] clear = this.r現在選択中の曲.arスコア[(int)Difficulty.Dan].GPInfo[ap].nClear; @@ -1588,6 +1590,8 @@ namespace TJAPlayer3 for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { + if (i >= 2) continue; + int ap = TJAPlayer3.GetActualPlayer(i); int[] clear = this.r現在選択中の曲.arスコア[(int)Difficulty.Tower].GPInfo[ap].nClear; @@ -1606,6 +1610,8 @@ namespace TJAPlayer3 for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { + if (i >= 2) continue; + int ap = TJAPlayer3.GetActualPlayer(i); int[] クリア = sr.GPInfo[ap].nClear; @@ -2690,6 +2696,8 @@ namespace TJAPlayer3 for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { + if (i >= 2) continue; + displayDanStatus(x + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_X[i], y + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_Y[i], Math.Min(クリア[i][0], 6) - 1, 0.2f); } } @@ -2699,6 +2707,8 @@ namespace TJAPlayer3 for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { + if (i >= 2) continue; + displayTowerStatus(x + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_X[i], y + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_Y[i], Math.Min(クリア[i][0], 7) - 1, 0.3f); } } @@ -2708,6 +2718,8 @@ namespace TJAPlayer3 for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { + if (i >= 2) continue; + displayRegularCrowns(x + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_X[i], y + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_Y[i], クリア[i], スコアランク[i], 0.8f); } } diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelect難易度選択画面.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelect難易度選択画面.cs index b31d29a8..c171677e 100644 --- a/TJAPlayer3/Stages/05.SongSelect/CActSelect難易度選択画面.cs +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelect難易度選択画面.cs @@ -71,7 +71,7 @@ namespace TJAPlayer3 } else if (nスイッチカウント == 0) { - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { if(!bSelect[i]) { @@ -121,9 +121,12 @@ namespace TJAPlayer3 this.txTitle = TJAPlayer3.tテクスチャの生成(pfTitle.DrawPrivateFont(TJAPlayer3.stage選曲.r現在選択中の曲.strタイトル, Color.White, Color.Black )); this.txSubTitle = TJAPlayer3.tテクスチャの生成(pfSubTitle.DrawPrivateFont(TJAPlayer3.stage選曲.r現在選択中の曲.strサブタイトル, Color.White, Color.Black)); - this.n現在の選択行 = new int[2]; + this.n現在の選択行 = new int[5]; this.bSelect[0] = false; this.bSelect[1] = false; + this.bSelect[2] = false; + this.bSelect[3] = false; + this.bSelect[4] = false; this.b裏譜面 = (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[(int)Difficulty.Edit] >= 0 && TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[(int)Difficulty.Oni] < 0); @@ -136,9 +139,12 @@ namespace TJAPlayer3 { if( this.b活性化してる ) return; - ctBarAnime = new CCounter[2]; + ctBarAnime = new CCounter[5]; ctBarAnime[0] = new CCounter(); ctBarAnime[1] = new CCounter(); + ctBarAnime[2] = new CCounter(); + ctBarAnime[3] = new CCounter(); + ctBarAnime[4] = new CCounter(); base.On活性化(); } @@ -187,9 +193,11 @@ namespace TJAPlayer3 //----------------- #endregion - ctBarAnimeIn.t進行(); - ctBarAnime[0].t進行(); - ctBarAnime[1].t進行(); + ctBarAnimeIn.t進行(); + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + ctBarAnime[i].t進行(); + } bool uraExists = TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[(int)Difficulty.Edit] >= 0; bool omoteExists = TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[(int)Difficulty.Oni] >= 0; @@ -202,19 +210,42 @@ namespace TJAPlayer3 { if (!bSelect[i] && !isOnOption()) { - bool right = i == 0 ? - (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow)) : - (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P)); + bool right = false; + bool left = false; + bool decide = false; - bool left = i == 0 ? - (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LeftChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow)) : - (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P)); + bool cancel = false; - bool decide = i == 0 ? - (TJAPlayer3.Pad.b押されたDGB(Eパッド.Decide) || (TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return))) : - (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed2P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed2P)); - - bool cancel = i == 0 ? (TJAPlayer3.Pad.b押されたDGB(Eパッド.Cancel) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape)) : false; + switch (i) + { + case 0: + right = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow)); + left = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LeftChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow)); + decide = (TJAPlayer3.Pad.b押されたDGB(Eパッド.Decide) || + (TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return))); + cancel = (TJAPlayer3.Pad.b押されたDGB(Eパッド.Cancel) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape)); + break; + case 1: + right = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P)); + left = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P)); + decide = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed2P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed2P)); + break; + case 2: + right = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue3P)); + left = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue3P)); + decide = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed3P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed3P)); + break; + case 3: + right = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue4P)); + left = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue4P)); + decide = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed4P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed4P)); + break; + case 4: + right = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue5P)); + left = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue5P)); + decide = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed5P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed5P)); + break; + } if (right) { @@ -248,7 +279,6 @@ namespace TJAPlayer3 this.bSelect[i] = true; TJAPlayer3.Skin.sound決定音.t再生する(); - TJAPlayer3.Skin.voiceMenuSongDecide[TJAPlayer3.SaveFile]?.t再生する(); bool allPlayerSelected = true; @@ -267,6 +297,7 @@ namespace TJAPlayer3 { for (int i2 = 0; i2 < TJAPlayer3.ConfigIni.nPlayerCount; i2++) { + TJAPlayer3.Skin.voiceMenuSongDecide[TJAPlayer3.SaveFile]?.t再生する(); CMenuCharacter.tMenuResetTimer(i2, CMenuCharacter.ECharacterAnimation.START); if (TJAPlayer3.ConfigIni.bAIBattleMode) { @@ -380,6 +411,8 @@ namespace TJAPlayer3 for (int j = 0; j < TJAPlayer3.ConfigIni.nPlayerCount; j++) { + if (j >= 2) continue; + if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break; int p = TJAPlayer3.GetActualPlayer(j); @@ -447,16 +480,45 @@ namespace TJAPlayer3 new RectangleF(0, 0, 259, 114)); */ - bool overlap = n現在の選択行[0] == n現在の選択行[1] && consideMultiPlay; + //bool overlap = n現在の選択行[0] == n現在の選択行[1] && consideMultiPlay; - float moveX = overlap ? (i == 0 ? -TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[0] : TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[0]) : 0; - moveX += (((float)Math.Sin((float)ctBarAnime[i].n現在の値 * (Math.PI / 180)) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[0]) - + int overlapCount = 0; + int nowOverlapIndex = 0; + + for (int j = 0; j < TJAPlayer3.ConfigIni.nPlayerCount; j++) + { + if (n現在の選択行[i] == n現在の選択行[j] && j != i) overlapCount++; + if (j == i) + { + nowOverlapIndex = overlapCount; + } + } + + /*float moveX = overlap ? (i == 0 ? -TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[0] : TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[0]) : 0; + moveX += (((float)Math.Sin((float)ctBarAnime[i].n現在の値 * (Math.PI / 180)) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[0]) - (((float)Math.Cos((float)ctBarAnimeIn.n現在の値 * (Math.PI / 170)) + 1.0f) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_AnimeIn[0])); float moveY = overlap ? (i == 0 ? -TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[1] : TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[1]) : 0; - moveY += (((float)Math.Sin((float)ctBarAnime[i].n現在の値 * (Math.PI / 180)) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[1]) - + moveY += (((float)Math.Sin((float)ctBarAnime[i].n現在の値 * (Math.PI / 180)) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[1]) - + (((float)Math.Cos((float)ctBarAnimeIn.n現在の値 * (Math.PI / 170)) + 1.0f) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[1])); + */ + + float moveX = TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[0] * (nowOverlapIndex - (overlapCount / 2.0f)) * (2.0f / Math.Max(overlapCount, 1)); + float moveY = TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[1] * (nowOverlapIndex - (overlapCount / 2.0f)) * (2.0f / Math.Max(overlapCount, 1)); + + if (!consideMultiPlay) + { + moveX = 0; + moveY = 0; + } + + moveX += (((float)Math.Sin((float)ctBarAnime[i].n現在の値 * (Math.PI / 180)) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[0]) - + (((float)Math.Cos((float)ctBarAnimeIn.n現在の値 * (Math.PI / 170)) + 1.0f) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_AnimeIn[0])); + moveY += (((float)Math.Sin((float)ctBarAnime[i].n現在の値 * (Math.PI / 180)) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[1]) - (((float)Math.Cos((float)ctBarAnimeIn.n現在の値 * (Math.PI / 170)) + 1.0f) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[1])); + + TJAPlayer3.Tx.Difficulty_Select_Bar[i].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_X[n現在の選択行[i]] + moveX, TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Y[n現在の選択行[i]] + moveY, @@ -476,8 +538,8 @@ namespace TJAPlayer3 #region [ private ] //----------------- - public bool[] bSelect = new bool[2]; - public bool[] bOption = new bool[2]; + public bool[] bSelect = new bool[5]; + public bool[] bOption = new bool[5]; private CPrivateFastFont pfTitle; private CPrivateFastFont pfSubTitle; @@ -523,7 +585,7 @@ namespace TJAPlayer3 private bool isOnOption() { - return bOption[1] || bOption[0]; + return bOption[0] || bOption[1] || bOption[2] || bOption[3] || bOption[4]; } public int nStrジャンルtoNum(string strジャンル) diff --git a/TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs b/TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs index aec88785..f5c09597 100644 --- a/TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs +++ b/TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs @@ -107,7 +107,7 @@ namespace TJAPlayer3 return this.act曲リスト.bスクロール中; } } - public int[] n確定された曲の難易度 = new int[2]; + public int[] n確定された曲の難易度 = new int[5]; public string str確定された曲のジャンル { @@ -240,7 +240,7 @@ namespace TJAPlayer3 Trace.Indent(); try { - n確定された曲の難易度 = new int[2]; + n確定された曲の難易度 = new int[5]; this.eフェードアウト完了時の戻り値 = E戻り値.継続; // BGM played @@ -460,7 +460,9 @@ namespace TJAPlayer3 */ for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) - { + { + if (i >= 2) continue; + ModIcons.tDisplayModsMenu(TJAPlayer3.Skin.SongSelect_ModIcons_X[i], TJAPlayer3.Skin.SongSelect_ModIcons_Y[i], i); } @@ -507,7 +509,7 @@ namespace TJAPlayer3 //if (this.ctDonchan_Select.b終了値に達してない) for (int player = 0; player < TJAPlayer3.ConfigIni.nPlayerCount; player++) - { + { CCounter ___cc = CMenuCharacter._getReferenceCounter(CMenuCharacter.ECharacterAnimation.SELECT)[player]; int _charaId = TJAPlayer3.NamePlateConfig.data.Character[TJAPlayer3.GetActualPlayer(player)]; @@ -521,8 +523,8 @@ namespace TJAPlayer3 //int puchi_x = player == 0 ? 0 + 100 : 981 + 250; //int puchi_y = player == 0 ? 330 + 230 : 330 + 230; - int puchi_x = chara_x + TJAPlayer3.Skin.Adjustments_MenuPuchichara_X[player]; - int puchi_y = chara_y + TJAPlayer3.Skin.Adjustments_MenuPuchichara_Y[player]; + int puchi_x = chara_x + TJAPlayer3.Skin.Adjustments_MenuPuchichara_X[player % 2]; + int puchi_y = chara_y + TJAPlayer3.Skin.Adjustments_MenuPuchichara_Y[player % 2]; if (___cc != null && ___cc.b終了値に達してない) { @@ -564,7 +566,10 @@ namespace TJAPlayer3 int defaultTable = Math.Max(0, Math.Min((int)Difficulty.Edit + 1, TJAPlayer3.ConfigIni.nDefaultCourse)); - int[] currentPads = new int[2] { + int[] currentPads = new int[5] { + defaultTable, + defaultTable, + defaultTable, defaultTable, defaultTable }; @@ -575,12 +580,18 @@ namespace TJAPlayer3 currentPads[0] = TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[0] - 2; if (TJAPlayer3.ConfigIni.nPlayerCount > 1 && TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[1] >= 2) currentPads[1] = TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[1] - 2; + if (TJAPlayer3.ConfigIni.nPlayerCount > 1 && TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[2] >= 2) + currentPads[2] = TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[2] - 2; + if (TJAPlayer3.ConfigIni.nPlayerCount > 1 && TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[3] >= 2) + currentPads[3] = TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[3] - 2; + if (TJAPlayer3.ConfigIni.nPlayerCount > 1 && TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[4] >= 2) + currentPads[4] = TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[4] - 2; } for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) - { + { if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break; int p = TJAPlayer3.GetActualPlayer(i); @@ -599,8 +610,15 @@ namespace TJAPlayer3 } - TJAPlayer3.Tx.SongSelect_Coin_Slot?.t2D描画(TJAPlayer3.app.Device, 0, 0, - new Rectangle(0, 0, (TJAPlayer3.Tx.SongSelect_Coin_Slot.sz画像サイズ.Width / 2) + ((TJAPlayer3.ConfigIni.nPlayerCount > 1 && !TJAPlayer3.ConfigIni.bAIBattleMode) ? (TJAPlayer3.Tx.SongSelect_Coin_Slot.sz画像サイズ.Width / 2) : 0), TJAPlayer3.Tx.SongSelect_Coin_Slot.sz画像サイズ.Height)); + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + TJAPlayer3.Tx.SongSelect_Coin_Slot[0]?.t2D描画(TJAPlayer3.app.Device, 0, 0, + new Rectangle(0, 0, (TJAPlayer3.Tx.SongSelect_Coin_Slot[0].sz画像サイズ.Width / 2) + ((TJAPlayer3.ConfigIni.nPlayerCount > 1 && !TJAPlayer3.ConfigIni.bAIBattleMode) ? (TJAPlayer3.Tx.SongSelect_Coin_Slot[0].sz画像サイズ.Width / 2) : 0), TJAPlayer3.Tx.SongSelect_Coin_Slot[0].sz画像サイズ.Height)); + } + else + { + TJAPlayer3.Tx.SongSelect_Coin_Slot[TJAPlayer3.ConfigIni.nPlayerCount - 2]?.t2D描画(TJAPlayer3.app.Device, 0, 0); + } for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { @@ -773,7 +791,7 @@ namespace TJAPlayer3 if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F3)) { TJAPlayer3.Skin.sound変更音.t再生する(); - C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay); + C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]); } #endregion #region [ F4 2PオートON/OFF ] @@ -782,7 +800,7 @@ namespace TJAPlayer3 if (TJAPlayer3.ConfigIni.nPlayerCount > 1) { TJAPlayer3.Skin.sound変更音.t再生する(); - C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P); + C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1]); } } #endregion @@ -1099,7 +1117,7 @@ namespace TJAPlayer3 TJAPlayer3.Tx.SongSelect_Credit.t2D描画(TJAPlayer3.app.Device, 0, 0); } - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { CCounter ___cs = CMenuCharacter._getReferenceCounter(CMenuCharacter.ECharacterAnimation.START)[i]; @@ -1119,6 +1137,9 @@ namespace TJAPlayer3 if (act難易度選択画面.bOption[0]) actPlayOption.On進行描画(0); if (act難易度選択画面.bOption[1]) actPlayOption.On進行描画(1); + if (act難易度選択画面.bOption[2]) actPlayOption.On進行描画(2); + if (act難易度選択画面.bOption[3]) actPlayOption.On進行描画(3); + if (act難易度選択画面.bOption[4]) actPlayOption.On進行描画(4); switch (base.eフェーズID) { diff --git a/TJAPlayer3/Stages/06.SongLoading/CStage曲読み込み.cs b/TJAPlayer3/Stages/06.SongLoading/CStage曲読み込み.cs index f35d6e69..58c8f98e 100644 --- a/TJAPlayer3/Stages/06.SongLoading/CStage曲読み込み.cs +++ b/TJAPlayer3/Stages/06.SongLoading/CStage曲読み込み.cs @@ -97,7 +97,7 @@ namespace TJAPlayer3 // player and the special song title and subtitle // of the .tja used to perform input calibration TJAPlayer3.IsPerformingCalibration = - !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay && + !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] && TJAPlayer3.ConfigIni.nPlayerCount == 1 && str曲タイトル == "Input Calibration" && strサブタイトル == "TJAPlayer3 Developers"; @@ -423,13 +423,19 @@ namespace TJAPlayer3 //if( CDTXMania.DTX == null ) { TJAPlayer3.DTX = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 0, true, TJAPlayer3.stage選曲.n確定された曲の難易度[0]); - if ( TJAPlayer3.ConfigIni.nPlayerCount == 2 ) + if ( TJAPlayer3.ConfigIni.nPlayerCount >= 2 ) TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[1]); + if (TJAPlayer3.ConfigIni.nPlayerCount >= 3) + TJAPlayer3.DTX_3P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 2, true, TJAPlayer3.stage選曲.n確定された曲の難易度[2]); + if (TJAPlayer3.ConfigIni.nPlayerCount >= 4) + TJAPlayer3.DTX_4P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 3, true, TJAPlayer3.stage選曲.n確定された曲の難易度[3]); + if (TJAPlayer3.ConfigIni.nPlayerCount >= 5) + TJAPlayer3.DTX_5P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 4, true, TJAPlayer3.stage選曲.n確定された曲の難易度[4]); if ( File.Exists( TJAPlayer3.DTX.strフォルダ名 + @"\\set.def" ) ) { - TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[0]); - if ( TJAPlayer3.ConfigIni.nPlayerCount == 2 ) - TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[1]); + //TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[0]); + //if ( TJAPlayer3.ConfigIni.nPlayerCount == 2 ) + //TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[1]); } Trace.TraceInformation( "----曲情報-----------------" ); @@ -532,7 +538,7 @@ namespace TJAPlayer3 TJAPlayer3.DTX.PlanToAddMixerChannel(); } - var _dtx = new CDTX[4]{ TJAPlayer3.DTX, TJAPlayer3.DTX_2P, null, null }; + var _dtx = new CDTX[5]{ TJAPlayer3.DTX, TJAPlayer3.DTX_2P, TJAPlayer3.DTX_3P, TJAPlayer3.DTX_4P, TJAPlayer3.DTX_5P }; for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏Combo共通.cs b/TJAPlayer3/Stages/07.Game/CAct演奏Combo共通.cs index b3ce2740..5e10f2eb 100644 --- a/TJAPlayer3/Stages/07.Game/CAct演奏Combo共通.cs +++ b/TJAPlayer3/Stages/07.Game/CAct演奏Combo共通.cs @@ -33,6 +33,9 @@ namespace TJAPlayer3 case 3: return this.P4; + + case 4: + return this.P5; } throw new IndexOutOfRangeException(); } @@ -55,6 +58,10 @@ namespace TJAPlayer3 case 3: this.P4 = value; return; + + case 4: + this.P5 = value; + return; } throw new IndexOutOfRangeException(); } @@ -127,12 +134,30 @@ namespace TJAPlayer3 this.act.status.P4.n最高COMBO値 = this.最高値[3]; } } + public int P5 + { + get + { + return this.p5; + } + set + { + this.p5 = value; + if (this.p5 > this.最高値[4]) + { + this.最高値[4] = this.p5; + } + this.act.status.P5.nCOMBO値 = this.p5; + this.act.status.P5.n最高COMBO値 = this.最高値[4]; + } + } public int[] 最高値 { get; set; } private int p1; private int p2; private int p3; private int p4; + private int p5; } public C演奏判定ライン座標共通 演奏判定ライン座標 { @@ -230,6 +255,7 @@ namespace TJAPlayer3 public CSTAT P2 = new CSTAT(); public CSTAT P3 = new CSTAT(); public CSTAT P4 = new CSTAT(); + public CSTAT P5 = new CSTAT(); public CSTAT this[int index] { get @@ -247,6 +273,9 @@ namespace TJAPlayer3 case 3: return this.P4; + + case 4: + return this.P5; } throw new IndexOutOfRangeException(); } @@ -269,6 +298,10 @@ namespace TJAPlayer3 case 3: this.P4 = value; return; + + case 4: + this.P5 = value; + return; } throw new IndexOutOfRangeException(); } @@ -307,14 +340,14 @@ namespace TJAPlayer3 { } - private void showComboEffect(int cat, int i, int rightX, int nPlayer) + private void showComboEffect(int cat, int i, int rightX, int y, int nPlayer) { if (TJAPlayer3.Tx.Taiko_Combo_Effect != null) { int a = rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[cat] * i; float b = (TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[cat]; float c = (TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[cat]; - float d = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer]; + float d = y; if (ctコンボラメ.n現在の値 < 13) // First { @@ -371,10 +404,55 @@ namespace TJAPlayer3 #region [ n位の数[] を、"COMBO" → 1の位 → 10の位 … の順に、右から左へ向かって順番に表示する。] //----------------- - const int n1桁ごとのジャンプの遅れ = 30; // 1桁につき 50 インデックス遅れる - - - //X右座標を元にして、右座標 - ( コンボの幅 * 桁数 ) でX座標を求めていく? + const int n1桁ごとのジャンプの遅れ = 30; // 1桁につき 50 インデックス遅れる + + + //X右座標を元にして、右座標 - ( コンボの幅 * 桁数 ) でX座標を求めていく? + + int combo_text_x; + int combo_text_y; + int combo_x; + int combo_y; + int combo_ex_x; + int combo_ex_y; + int combo_ex4_x; + int combo_ex4_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + combo_text_x = TJAPlayer3.Skin.Game_Taiko_Combo_Text_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * nPlayer); + combo_text_y = TJAPlayer3.Skin.Game_Taiko_Combo_Text_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * nPlayer); + + combo_x = TJAPlayer3.Skin.Game_Taiko_Combo_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * nPlayer); + combo_y = TJAPlayer3.Skin.Game_Taiko_Combo_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * nPlayer); + combo_ex_x = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * nPlayer); + combo_ex_y = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * nPlayer); + combo_ex4_x = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * nPlayer); + combo_ex4_y = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * nPlayer); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + combo_text_x = TJAPlayer3.Skin.Game_Taiko_Combo_Text_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * nPlayer); + combo_text_y = TJAPlayer3.Skin.Game_Taiko_Combo_Text_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * nPlayer); + + combo_x = TJAPlayer3.Skin.Game_Taiko_Combo_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * nPlayer); + combo_y = TJAPlayer3.Skin.Game_Taiko_Combo_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * nPlayer); + combo_ex_x = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * nPlayer); + combo_ex_y = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * nPlayer); + combo_ex4_x = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * nPlayer); + combo_ex4_y = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * nPlayer); + } + else + { + combo_text_x = TJAPlayer3.Skin.Game_Taiko_Combo_Text_X[nPlayer]; + combo_text_y = TJAPlayer3.Skin.Game_Taiko_Combo_Text_Y[nPlayer]; + + combo_x = TJAPlayer3.Skin.Game_Taiko_Combo_X[nPlayer]; + combo_y = TJAPlayer3.Skin.Game_Taiko_Combo_Y[nPlayer]; + combo_ex_x = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_X[nPlayer]; + combo_ex_y = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer]; + combo_ex4_x = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_X[nPlayer]; + combo_ex4_y = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_Y[nPlayer]; + } int nY上辺位置px = TJAPlayer3.ConfigIni.bReverse.Drums ? 350 : 10; int n数字とCOMBOを合わせた画像の全長px = ((44) * n桁数); @@ -384,7 +462,7 @@ namespace TJAPlayer3 #region[ Combo text & Combo guides ] - TJAPlayer3.Tx.Taiko_Combo_Text?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Combo_Text_X[nPlayer], TJAPlayer3.Skin.Game_Taiko_Combo_Text_Y[nPlayer]); + TJAPlayer3.Tx.Taiko_Combo_Text?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, combo_text_x, combo_text_y); int guide = 2; var ccf = TJAPlayer3.stage演奏ドラム画面.CChartScore[nPlayer]; @@ -394,7 +472,7 @@ namespace TJAPlayer3 if (ccf.nMiss > 0 || ccf.nMine > 0) guide = 0; - TJAPlayer3.Tx.Taiko_Combo_Guide[guide]?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Combo_Text_X[nPlayer], TJAPlayer3.Skin.Game_Taiko_Combo_Text_Y[nPlayer]); + TJAPlayer3.Tx.Taiko_Combo_Guide[guide]?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, combo_text_x, combo_text_y); #endregion @@ -403,22 +481,22 @@ namespace TJAPlayer3 if (n桁数 == 1) { // 一桁ならそのままSkinConfigの座標を使用する。 - rightX = TJAPlayer3.Skin.Game_Taiko_Combo_X[nPlayer]; + rightX = combo_x; } else if (n桁数 == 2) { // 二桁ならSkinConfigの座標+パディング/2を使用する - rightX = TJAPlayer3.Skin.Game_Taiko_Combo_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] / 2; + rightX = combo_x + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] / 2; } else if (n桁数 == 3) { // 三桁ならSkinConfigの座標+パディングを使用する - rightX = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1]; + rightX = combo_ex_x + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1]; } else if (n桁数 == 4) { // 四桁ならSkinconfigの座標+パディング/2 + パディングを使用する - rightX = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] / 2 + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2]; + rightX = combo_ex4_x + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] / 2 + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2]; } else { @@ -431,14 +509,14 @@ namespace TJAPlayer3 // パディング/2を足す必要がある // 右に表示される桁数を求め、-1する rightDigit = n桁数 / 2 - 1; - rightX = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] / 2 + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * rightDigit; + rightX = combo_ex4_x + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] / 2 + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * rightDigit; break; case 1: // 2で割るとあまりが出る // そのままパディングを足していく // 右に表示される桁数を求める(中央除く -1) rightDigit = (n桁数 - 1) / 2; - rightX = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * rightDigit; + rightX = combo_ex4_x + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * rightDigit; break; default: break; @@ -460,7 +538,7 @@ namespace TJAPlayer3 var yScalling = ComboScale[this.ctコンボ加算[nPlayer].n現在の値]; TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0] + yScalling; TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0]; - TJAPlayer3.Tx.Taiko_Combo[0].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX, TJAPlayer3.Skin.Game_Taiko_Combo_Y[nPlayer], new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1])); + TJAPlayer3.Tx.Taiko_Combo[0].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX, combo_y, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1])); } } else if (n桁数 <= 2) @@ -473,7 +551,7 @@ namespace TJAPlayer3 var yScalling = ComboScale[this.ctコンボ加算[nPlayer].n現在の値]; TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0] + yScalling; TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0]; - TJAPlayer3.Tx.Taiko_Combo[0].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Y[nPlayer], new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1])); + TJAPlayer3.Tx.Taiko_Combo[0].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i, combo_y, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1])); } } else @@ -483,10 +561,10 @@ namespace TJAPlayer3 var yScalling = ComboScale[this.ctコンボ加算[nPlayer].n現在の値]; TJAPlayer3.Tx.Taiko_Combo[2].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0] + yScalling; TJAPlayer3.Tx.Taiko_Combo[2].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0]; - TJAPlayer3.Tx.Taiko_Combo[2].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Y[nPlayer], new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1])); + TJAPlayer3.Tx.Taiko_Combo[2].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i, combo_y, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1])); } - showComboEffect(0, i, rightX, nPlayer); + showComboEffect(0, i, rightX, combo_ex_y, nPlayer); } } else if (n桁数 == 3) @@ -497,7 +575,7 @@ namespace TJAPlayer3 TJAPlayer3.Tx.Taiko_Combo[3].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1] + yScalling; TJAPlayer3.Tx.Taiko_Combo[3].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1]; var yJumping = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].n現在の値, 1] : 0; - TJAPlayer3.Tx.Taiko_Combo[3].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1])); + TJAPlayer3.Tx.Taiko_Combo[3].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1] * i, combo_ex_y + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1])); } else if (TJAPlayer3.Tx.Taiko_Combo[1] != null) { @@ -505,10 +583,10 @@ namespace TJAPlayer3 TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1] + yScalling; TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1]; var yJumping = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].n現在の値, 1] : 0; - TJAPlayer3.Tx.Taiko_Combo[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1])); + TJAPlayer3.Tx.Taiko_Combo[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1] * i, combo_ex_y + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1])); } - showComboEffect(1, i, rightX, nPlayer); + showComboEffect(1, i, rightX, combo_ex_y, nPlayer); } else { @@ -518,7 +596,7 @@ namespace TJAPlayer3 TJAPlayer3.Tx.Taiko_Combo[3].vc拡大縮小倍率.Y = 1.0f + yScalling; TJAPlayer3.Tx.Taiko_Combo[3].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[2]; var yJumping = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].n現在の値, 1] : 0; - TJAPlayer3.Tx.Taiko_Combo[3].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1])); + TJAPlayer3.Tx.Taiko_Combo[3].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * i, combo_ex_y + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1])); } else if (TJAPlayer3.Tx.Taiko_Combo[1] != null) { @@ -526,10 +604,10 @@ namespace TJAPlayer3 TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.Y = 1.0f + yScalling; TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[2]; var yJumping = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].n現在の値, 1] : 0; - TJAPlayer3.Tx.Taiko_Combo[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1])); + TJAPlayer3.Tx.Taiko_Combo[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * i, combo_ex_y + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1])); } - showComboEffect(2, i, rightX, nPlayer); + showComboEffect(2, i, rightX, combo_ex_y, nPlayer); } } @@ -562,10 +640,10 @@ namespace TJAPlayer3 public override void On活性化() { this.n現在のコンボ数 = new STCOMBO() { act = this }; - this.n現在のコンボ数.最高値 = new int[4]; + this.n現在のコンボ数.最高値 = new int[5]; this.status = new CSTATUS(); - this.ctコンボ加算 = new CCounter[4]; - for (int i = 0; i < 4; i++) + this.ctコンボ加算 = new CCounter[5]; + for (int i = 0; i < 5; i++) { this.status[i].e現在のモード = EMode.非表示中; this.status[i].nCOMBO値 = 0; @@ -604,7 +682,7 @@ namespace TJAPlayer3 if (this.b活性化してない) return 0; - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) { EEvent e今回の状態遷移イベント; @@ -701,11 +779,15 @@ namespace TJAPlayer3 break; case 2: - this.tコンボ表示_ベース(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値); + this.tコンボ表示_太鼓(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値, 2); break; case 3: - this.tコンボ表示_ドラム(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値); + this.tコンボ表示_太鼓(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値, 3); + break; + + case 4: + this.tコンボ表示_太鼓(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値, 4); break; } break; diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏Combo音声.cs b/TJAPlayer3/Stages/07.Game/CAct演奏Combo音声.cs index 65419142..8ddf1d21 100644 --- a/TJAPlayer3/Stages/07.Game/CAct演奏Combo音声.cs +++ b/TJAPlayer3/Stages/07.Game/CAct演奏Combo音声.cs @@ -60,13 +60,13 @@ namespace TJAPlayer3 public override void On活性化() { - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { ListCombo[i] = new List(); ListFloor[i] = new List(); } - VoiceIndex = new int[] { 0, 0 }; - FloorIndex = new int[] { 0, 0 }; + VoiceIndex = new int[] { 0, 0, 0, 0, 0 }; + FloorIndex = new int[] { 0, 0, 0, 0, 0 }; base.On活性化(); } public override void OnManagedリソースの作成() @@ -142,7 +142,7 @@ namespace TJAPlayer3 { if( !base.b活性化してない ) { - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { foreach (var item in ListCombo[i]) { @@ -166,8 +166,8 @@ namespace TJAPlayer3 int[] VoiceIndex; int[] FloorIndex; - readonly List[] ListCombo = new List[2]; - readonly List[] ListFloor = new List[2]; + readonly List[] ListCombo = new List[5]; + readonly List[] ListFloor = new List[5]; //----------------- #endregion } diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏ゲージ共通.cs b/TJAPlayer3/Stages/07.Game/CAct演奏ゲージ共通.cs index 0b053c50..2070e39d 100644 --- a/TJAPlayer3/Stages/07.Game/CAct演奏ゲージ共通.cs +++ b/TJAPlayer3/Stages/07.Game/CAct演奏ゲージ共通.cs @@ -33,14 +33,17 @@ namespace TJAPlayer3 { for (int i = 0; i < 3; i++) { - dbゲージ増加量[i] = new float[2]; + dbゲージ増加量[i] = new float[5]; for (int n = 0; n < 3; n++) { - dbゲージ増加量_Branch[i, n] = new float[2]; + dbゲージ増加量_Branch[i, n] = new float[5]; } } this.DTX[0] = TJAPlayer3.DTX; this.DTX[1] = TJAPlayer3.DTX_2P; + this.DTX[2] = TJAPlayer3.DTX_3P; + this.DTX[3] = TJAPlayer3.DTX_4P; + this.DTX[4] = TJAPlayer3.DTX_5P; actLVLNFont = new CActLVLNFont(); actLVLNFont.On活性化(); base.On活性化(); @@ -107,7 +110,7 @@ namespace TJAPlayer3 { //ダメージ値の計算は太鼓の達人譜面Wikiのものを参考にしました。 - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) { this.db現在のゲージ値[i] = 0; } @@ -519,8 +522,8 @@ namespace TJAPlayer3 //----------------- #endregion - private CDTX[] DTX = new CDTX[2]; - public double[] db現在のゲージ値 = new double[4]; + private CDTX[] DTX = new CDTX[5]; + public double[] db現在のゲージ値 = new double[5]; protected CCounter ct炎; protected CCounter ct虹アニメ; protected CCounter ct虹透明度; diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏スクロール速度.cs b/TJAPlayer3/Stages/07.Game/CAct演奏スクロール速度.cs index 242f7f1a..f68f5d10 100644 --- a/TJAPlayer3/Stages/07.Game/CAct演奏スクロール速度.cs +++ b/TJAPlayer3/Stages/07.Game/CAct演奏スクロール速度.cs @@ -9,7 +9,7 @@ namespace TJAPlayer3 { // プロパティ - public STDGBVALUE db現在の譜面スクロール速度; + public double[] db現在の譜面スクロール速度 = new double[5]; // コンストラクタ @@ -24,7 +24,7 @@ namespace TJAPlayer3 public override void On活性化() { - for( int i = 0; i < 4; i++ ) + for( int i = 0; i < 5; i++ ) { this.db現在の譜面スクロール速度[ i ] = (double) TJAPlayer3.ConfigIni.nScrollSpeed[ TJAPlayer3.GetActualPlayer(i) ]; this.n速度変更制御タイマ[ i ] = -1; @@ -41,7 +41,7 @@ namespace TJAPlayer3 if( base.b初めての進行描画 ) { //this.n速度変更制御タイマ.Drums = this.n速度変更制御タイマ.Guitar = this.n速度変更制御タイマ.Bass = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) { this.n速度変更制御タイマ[i] = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); @@ -50,7 +50,7 @@ namespace TJAPlayer3 base.b初めての進行描画 = false; } long n現在時刻 = CSound管理.rc演奏用タイマ.n現在時刻; - for( int i = 0; i < 4; i++ ) + for( int i = 0; i < 5; i++ ) { double db譜面スクロールスピード = (double) TJAPlayer3.ConfigIni.nScrollSpeed[ TJAPlayer3.GetActualPlayer(i) ]; if( n現在時刻 < this.n速度変更制御タイマ[ i ] ) @@ -89,7 +89,7 @@ namespace TJAPlayer3 #region [ private ] //----------------- - private STDGBVALUE n速度変更制御タイマ; + private long[] n速度変更制御タイマ = new long[5]; //----------------- #endregion } diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏スコア共通.cs b/TJAPlayer3/Stages/07.Game/CAct演奏スコア共通.cs index 75013a30..16b7edc0 100644 --- a/TJAPlayer3/Stages/07.Game/CAct演奏スコア共通.cs +++ b/TJAPlayer3/Stages/07.Game/CAct演奏スコア共通.cs @@ -287,14 +287,17 @@ namespace TJAPlayer3 public override void On活性化() { - this.n現在表示中のスコア = new STDGBVALUE[ 4 ]; - this.n現在の本当のスコア = new STDGBVALUE[ 4 ]; - this.nスコアの増分 = new STDGBVALUE[ 4 ]; - for( int i = 0; i < 4; i++ ) - { - this.n現在表示中のスコア[ i ][ i ] = 0L; - this.n現在の本当のスコア[ i ][ i ] = 0L; - this.nスコアの増分[ i ][ i ] = 0L; + this.n現在表示中のスコア = new STDGBVALUE[ 5 ]; + this.n現在の本当のスコア = new STDGBVALUE[ 5 ]; + this.nスコアの増分 = new STDGBVALUE[ 5 ]; + for( int i = 0; i < 5; i++ ) + { + for (int j = 0; j < 4; j++) + { + this.n現在表示中のスコア[i][j] = 0L; + this.n現在の本当のスコア[i][j] = 0L; + this.nスコアの増分[i][j] = 0L; + } } for( int sc = 0; sc < 256; sc++ ) { @@ -309,13 +312,13 @@ namespace TJAPlayer3 this.ctTimer = new CCounter(); - this.ct点数アニメタイマ = new CCounter[4]; - for (int i = 0; i < 4; i++) + this.ct点数アニメタイマ = new CCounter[5]; + for (int i = 0; i < 5; i++) { this.ct点数アニメタイマ[i] = new CCounter(); } - this.ctボーナス加算タイマ = new CCounter[4]; - for (int i = 0; i < 4; i++) + this.ctボーナス加算タイマ = new CCounter[5]; + for (int i = 0; i < 5; i++) { this.ctボーナス加算タイマ[i] = new CCounter(); } @@ -372,13 +375,43 @@ namespace TJAPlayer3 } break; case 2: - if(TJAPlayer3.Tx.Taiko_Score[2] != null ) + if (TJAPlayer3.Tx.Taiko_Score[2] != null) { //this.txScore.color4 = new SlimDX.Color4( 0.4f, 0.5f, 1.0f ); //this.txScore.color4 = CDTXMania.Skin.cScoreColor2P; TJAPlayer3.Tx.Taiko_Score[2].Opacity = alpha; TJAPlayer3.Tx.Taiko_Score[2].vc拡大縮小倍率.Y = 1; - TJAPlayer3.Tx.Taiko_Score[2].t2D拡大率考慮下基準描画( TJAPlayer3.app.Device, x, y, rectangle ); + TJAPlayer3.Tx.Taiko_Score[2].t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, x, y, rectangle); + } + break; + case 3: + if (TJAPlayer3.Tx.Taiko_Score[3] != null) + { + //this.txScore.color4 = new SlimDX.Color4( 0.4f, 0.5f, 1.0f ); + //this.txScore.color4 = CDTXMania.Skin.cScoreColor2P; + TJAPlayer3.Tx.Taiko_Score[3].Opacity = alpha; + TJAPlayer3.Tx.Taiko_Score[3].vc拡大縮小倍率.Y = 1; + TJAPlayer3.Tx.Taiko_Score[3].t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, x, y, rectangle); + } + break; + case 4: + if (TJAPlayer3.Tx.Taiko_Score[4] != null) + { + //this.txScore.color4 = new SlimDX.Color4( 0.4f, 0.5f, 1.0f ); + //this.txScore.color4 = CDTXMania.Skin.cScoreColor2P; + TJAPlayer3.Tx.Taiko_Score[4].Opacity = alpha; + TJAPlayer3.Tx.Taiko_Score[4].vc拡大縮小倍率.Y = 1; + TJAPlayer3.Tx.Taiko_Score[4].t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, x, y, rectangle); + } + break; + case 5: + if (TJAPlayer3.Tx.Taiko_Score[5] != null) + { + //this.txScore.color4 = new SlimDX.Color4( 0.4f, 0.5f, 1.0f ); + //this.txScore.color4 = CDTXMania.Skin.cScoreColor2P; + TJAPlayer3.Tx.Taiko_Score[5].Opacity = alpha; + TJAPlayer3.Tx.Taiko_Score[5].vc拡大縮小倍率.Y = 1; + TJAPlayer3.Tx.Taiko_Score[5].t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, x, y, rectangle); } break; } diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏パネル文字列.cs b/TJAPlayer3/Stages/07.Game/CAct演奏パネル文字列.cs index 6e415ae9..a0fb0a3d 100644 --- a/TJAPlayer3/Stages/07.Game/CAct演奏パネル文字列.cs +++ b/TJAPlayer3/Stages/07.Game/CAct演奏パネル文字列.cs @@ -252,7 +252,7 @@ namespace TJAPlayer3 } public int t進行描画( int x, int y ) { - if (TJAPlayer3.stage演奏ドラム画面.actDan.IsAnimating) return 0; + if (TJAPlayer3.stage演奏ドラム画面.actDan.IsAnimating || TJAPlayer3.ConfigIni.nPlayerCount > 2) return 0; if( !base.b活性化してない && !this.bMute ) { this.ct進行用.t進行Loop(); diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏演奏情報.cs b/TJAPlayer3/Stages/07.Game/CAct演奏演奏情報.cs index 6bb615b3..73d127fb 100644 --- a/TJAPlayer3/Stages/07.Game/CAct演奏演奏情報.cs +++ b/TJAPlayer3/Stages/07.Game/CAct演奏演奏情報.cs @@ -12,7 +12,7 @@ namespace TJAPlayer3 // プロパティ public double dbBPM; - public readonly int[] NowMeasure = new int[2]; + public readonly int[] NowMeasure = new int[5]; public double dbSCROLL; public int[] _chipCounts = new int[2]; @@ -28,7 +28,7 @@ namespace TJAPlayer3 public override void On活性化() { - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { NowMeasure[i] = 0; } diff --git a/TJAPlayer3/Stages/07.Game/CInvisibleChip.cs b/TJAPlayer3/Stages/07.Game/CInvisibleChip.cs index a44b1488..b871d6c7 100644 --- a/TJAPlayer3/Stages/07.Game/CInvisibleChip.cs +++ b/TJAPlayer3/Stages/07.Game/CInvisibleChip.cs @@ -52,7 +52,7 @@ namespace TJAPlayer3 /// public void Reset() { - for ( int i = 0; i < 4; i++ ) + for ( int i = 0; i < 5; i++ ) { ccounter[ i ] = new CCounter(); b演奏チップが1つでもバーを通過した[ i ] = false; @@ -170,7 +170,7 @@ namespace TJAPlayer3 if( disposeManagedObjects ) { // (A) Managed リソースの解放 - for ( int i = 0; i < 4; i++ ) + for ( int i = 0; i < 5; i++ ) { // ctInvisibleTimer[ i ].Dispose(); ccounter[ i ].t停止(); @@ -189,8 +189,8 @@ namespace TJAPlayer3 //----------------- #endregion - private STDGBVALUE ccounter; + private CCounter[] ccounter = new CCounter[5]; private bool bDispose完了済み = false; - private STDGBVALUE b演奏チップが1つでもバーを通過した; + private bool[] b演奏チップが1つでもバーを通過した = new bool[5]; } } diff --git a/TJAPlayer3/Stages/07.Game/CStage演奏画面共通.cs b/TJAPlayer3/Stages/07.Game/CStage演奏画面共通.cs index a0316cb6..c23c2106 100644 --- a/TJAPlayer3/Stages/07.Game/CStage演奏画面共通.cs +++ b/TJAPlayer3/Stages/07.Game/CStage演奏画面共通.cs @@ -29,11 +29,11 @@ namespace TJAPlayer3 Drums.nスコア = (long) this.actScore.Get( E楽器パート.DRUMS, 0 ); Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(TJAPlayer3.DTX.LEVEL.Drums, TJAPlayer3.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.actCombo.n現在のコンボ数.最高値[0], E楽器パート.DRUMS, bIsAutoPlay); Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( TJAPlayer3.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.nヒット数_Auto含まない.Drums.Great, this.nヒット数_Auto含まない.Drums.Good, this.nヒット数_Auto含まない.Drums.Poor, this.nヒット数_Auto含まない.Drums.Miss, E楽器パート.DRUMS, bIsAutoPlay ); - Drums.nPerfect数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Perfect : this.nヒット数_Auto含まない.Drums.Perfect; - Drums.nGreat数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Great : this.nヒット数_Auto含まない.Drums.Great; - Drums.nGood数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Good : this.nヒット数_Auto含まない.Drums.Good; - Drums.nPoor数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Poor : this.nヒット数_Auto含まない.Drums.Poor; - Drums.nMiss数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Miss : this.nヒット数_Auto含まない.Drums.Miss; + Drums.nPerfect数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? this.nヒット数_Auto含む.Drums.Perfect : this.nヒット数_Auto含まない.Drums.Perfect; + Drums.nGreat数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? this.nヒット数_Auto含む.Drums.Great : this.nヒット数_Auto含まない.Drums.Great; + Drums.nGood数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? this.nヒット数_Auto含む.Drums.Good : this.nヒット数_Auto含まない.Drums.Good; + Drums.nPoor数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? this.nヒット数_Auto含む.Drums.Poor : this.nヒット数_Auto含まない.Drums.Poor; + Drums.nMiss数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? this.nヒット数_Auto含む.Drums.Miss : this.nヒット数_Auto含まない.Drums.Miss; Drums.nPerfect数_Auto含まない = this.nヒット数_Auto含まない.Drums.Perfect; Drums.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Drums.Great; Drums.nGood数_Auto含まない = this.nヒット数_Auto含まない.Drums.Good; @@ -75,7 +75,7 @@ namespace TJAPlayer3 Drums.最終更新日時 = DateTime.Now.ToString(); Drums.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Drums ); Drums.fゲージ = (float)this.actGauge.db現在のゲージ値[ 0 ]; - if( !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ) + if( !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]) { Drums.nハイスコア = TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.nハイスコア; //2015.06.16 kairera0467 他難易度の上書き防止。 if( TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.nハイスコア[ TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < (int)this.actScore.Get( E楽器パート.DRUMS, 0 ) ) @@ -92,14 +92,14 @@ namespace TJAPlayer3 // CStage 実装 - public int[] nNoteCount = new int[4]; - public int[] nBalloonCount = new int[4]; - public double[] nRollTimeMs = new double[4]; - public double[] nAddScoreNiji = new double[4]; + public int[] nNoteCount = new int[5]; + public int[] nBalloonCount = new int[5]; + public double[] nRollTimeMs = new double[5]; + public double[] nAddScoreNiji = new double[5]; public override void On活性化() { - listChip = new List[ 4 ]; + listChip = new List[ 5 ]; for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) { nNoteCount[i] = 0; @@ -115,6 +115,15 @@ namespace TJAPlayer3 case 1: listChip[i] = TJAPlayer3.DTX_2P.listChip; break; + case 2: + listChip[i] = TJAPlayer3.DTX_3P.listChip; + break; + case 3: + listChip[i] = TJAPlayer3.DTX_4P.listChip; + break; + case 4: + listChip[i] = TJAPlayer3.DTX_5P.listChip; + break; } int n整数値管理 = 0; @@ -138,8 +147,26 @@ namespace TJAPlayer3 for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { - var _dtx = (i == 0) ? TJAPlayer3.DTX : TJAPlayer3.DTX_2P; - + CDTX _dtx = TJAPlayer3.DTX; + switch (i) //2017.08.11 kairera0467 + { + case 0: + break; + case 1: + _dtx = TJAPlayer3.DTX_2P; + break; + case 2: + _dtx = TJAPlayer3.DTX_3P; + break; + case 3: + _dtx = TJAPlayer3.DTX_4P; + break; + case 4: + _dtx = TJAPlayer3.DTX_5P; + break; + default: + break; + } int _totalNotes = 0; int _totalBalloons = 0; @@ -269,9 +296,9 @@ namespace TJAPlayer3 NowAIBattleSectionCount = 0; - ctChipAnime = new CCounter[2]; - ctChipAnimeLag = new CCounter[2]; - for (int i = 0; i < 2; i++) + ctChipAnime = new CCounter[5]; + ctChipAnimeLag = new CCounter[5]; + for (int i = 0; i < 5; i++) { ctChipAnime[i] = new CCounter(); ctChipAnimeLag[i] = new CCounter(); @@ -329,13 +356,13 @@ namespace TJAPlayer3 this.tステータスパネルの選択(); this.tパネル文字列の設定(); //this.演奏判定ライン座標(); - this.bIsGOGOTIME = new bool[] { false, false, false, false }; - this.bIsMiss = new bool[] { false, false, false, false }; - this.bUseBranch = new bool[]{ false, false, false, false }; - this.n現在のコース = new CDTX.ECourse[4]; - this.n次回のコース = new CDTX.ECourse[4]; + this.bIsGOGOTIME = new bool[] { false, false, false, false, false }; + this.bIsMiss = new bool[] { false, false, false, false, false }; + this.bUseBranch = new bool[]{ false, false, false, false, false }; + this.n現在のコース = new CDTX.ECourse[5]; + this.n次回のコース = new CDTX.ECourse[5]; - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { this.b強制的に分岐させた[i] = false; @@ -356,18 +383,18 @@ namespace TJAPlayer3 } - this.nレーン用表示コース = new CDTX.ECourse[4]; - this.b連打中 = new bool[] { false, false, false, false }; - this.n現在の連打数 = new int[]{ 0, 0, 0, 0 }; - this.n合計連打数 = new int[]{ 0, 0, 0, 0 }; - this.n分岐した回数 = new int[ 4 ]; - this.Chara_MissCount = new int[4]; + this.nレーン用表示コース = new CDTX.ECourse[5]; + this.b連打中 = new bool[] { false, false, false, false, false }; + this.n現在の連打数 = new int[]{ 0, 0, 0, 0, 0 }; + this.n合計連打数 = new int[]{ 0, 0, 0, 0, 0 }; + this.n分岐した回数 = new int[ 5 ]; + this.Chara_MissCount = new int[5]; for (int i = 0; i < 2; i++) { ShownLyric[i] = 0; } - this.nJPOSSCROLL = new int[ 4 ]; - this.bLEVELHOLD = new bool[]{ false, false, false, false }; + this.nJPOSSCROLL = new int[ 5 ]; + this.bLEVELHOLD = new bool[]{ false, false, false, false, false }; // Double play set here @@ -377,13 +404,16 @@ namespace TJAPlayer3 this.tBranchReset(0); - this.bIsAutoPlay = TJAPlayer3.ConfigIni.bAutoPlay; // #24239 2011.1.23 yyagi + this.bIsAutoPlay = TJAPlayer3.ConfigIni.bAutoPlay; // #24239 2011.1.23 yyagi //this.bIsAutoPlay.Guitar = CDTXMania.ConfigIni.bギターが全部オートプレイである; //this.bIsAutoPlay.Bass = CDTXMania.ConfigIni.bベースが全部オートプレイである; // this.nRisky = CDTXMania.ConfigIni.nRisky; // #23559 2011.7.28 yyagi - actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 0 ); // #23559 2011.7.28 yyagi - if(bDoublePlay) actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 1 ); // #23559 2011.7.28 yyagi + + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + actGauge.Init(TJAPlayer3.ConfigIni.nRisky, i); // #23559 2011.7.28 yyagi + } this.nPolyphonicSounds = TJAPlayer3.ConfigIni.nPoliphonicSounds; e判定表示優先度 = TJAPlayer3.ConfigIni.e判定表示優先度; @@ -452,8 +482,8 @@ namespace TJAPlayer3 // this.sw2 = new Stopwatch(); // this.gclatencymode = GCSettings.LatencyMode; // GCSettings.LatencyMode = GCLatencyMode.Batch; // 演奏画面中はGCを抑止する - this.bIsAlreadyCleared = new bool[2]; - this.bIsAlreadyMaxed = new bool[2]; + this.bIsAlreadyCleared = new bool[5]; + this.bIsAlreadyMaxed = new bool[5]; this.ListDan_Number = 0; this.IsDanFailed = false; @@ -493,7 +523,7 @@ namespace TJAPlayer3 this.ctチップ模様アニメ.Bass = null; this.ctチップ模様アニメ.Taiko = null; - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { ctChipAnime[i] = null; ctChipAnimeLag[i] = null; @@ -630,6 +660,66 @@ namespace TJAPlayer3 public int nMine; } + public int[] NoteOriginX + { + get + { + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + return new int[] { + TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 0), + TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 1), + TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 2), + TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 3), + TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 4) + }; + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + return new int[] { + TJAPlayer3.Skin.nScrollField_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * 0), + TJAPlayer3.Skin.nScrollField_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * 1), + TJAPlayer3.Skin.nScrollField_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * 2), + TJAPlayer3.Skin.nScrollField_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * 3) + }; + } + else + { + return TJAPlayer3.Skin.nScrollFieldX; + } + } + } + + public int[] NoteOriginY + { + get + { + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + return new int[] { + TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 0), + TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 1), + TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 2), + TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 3), + TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 4) + }; + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + return new int[] { + TJAPlayer3.Skin.nScrollField_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * 0), + TJAPlayer3.Skin.nScrollField_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * 1), + TJAPlayer3.Skin.nScrollField_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * 2), + TJAPlayer3.Skin.nScrollField_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * 3) + }; + } + else + { + return TJAPlayer3.Skin.nScrollFieldY; + } + } + } + public CAct演奏AVI actAVI; public Rainbow Rainbow; protected CAct演奏チップファイアGB actChipFireGB; @@ -723,34 +813,34 @@ namespace TJAPlayer3 protected STAUTOPLAY bIsAutoPlay; // #24239 2011.1.23 yyagi // protected int nRisky_InitialVar, nRiskyTime; // #23559 2011.7.28 yyagi → CAct演奏ゲージ共通クラスに隠蔽 protected int nPolyphonicSounds; - protected List[] listChip = new List[4]; + protected List[] listChip = new List[5]; protected Dictionary listWAV; protected CInvisibleChip cInvisibleChip; protected bool bUseOSTimer; protected E判定表示優先度 e判定表示優先度; public CBRANCHSCORE[] CBranchScore = new CBRANCHSCORE[6]; - public CBRANCHSCORE[] CChartScore = new CBRANCHSCORE[2]; + public CBRANCHSCORE[] CChartScore = new CBRANCHSCORE[5]; - public bool[] bIsGOGOTIME = new bool[4]; - public bool[] bIsMiss = new bool[4]; - public bool[] bUseBranch = new bool[ 4 ]; - public CDTX.ECourse[] n現在のコース = new CDTX.ECourse[4]; //0:普通譜面 1:玄人譜面 2:達人譜面 - public CDTX.ECourse[] n次回のコース = new CDTX.ECourse[4]; - public CDTX.ECourse[] nレーン用表示コース = new CDTX.ECourse[4]; - protected bool[] b譜面分岐中 = new bool[] { false, false, false, false }; - protected int[] n分岐した回数 = new int[ 4 ]; - protected int[] nJPOSSCROLL = new int[ 4 ]; + public bool[] bIsGOGOTIME = new bool[5]; + public bool[] bIsMiss = new bool[5]; + public bool[] bUseBranch = new bool[ 5 ]; + public CDTX.ECourse[] n現在のコース = new CDTX.ECourse[5]; //0:普通譜面 1:玄人譜面 2:達人譜面 + public CDTX.ECourse[] n次回のコース = new CDTX.ECourse[5]; + public CDTX.ECourse[] nレーン用表示コース = new CDTX.ECourse[5]; + protected bool[] b譜面分岐中 = new bool[] { false, false, false, false, false }; + protected int[] n分岐した回数 = new int[ 5 ]; + protected int[] nJPOSSCROLL = new int[ 5 ]; - public bool[] b強制的に分岐させた = new bool[] { false, false, false, false }; - public bool[] bLEVELHOLD = new bool[] { false, false, false, false }; + public bool[] b強制的に分岐させた = new bool[] { false, false, false, false, false }; + public bool[] bLEVELHOLD = new bool[] { false, false, false, false, false }; protected int nListCount; private readonly int[] ShownLyric = new int[] { 0, 0 }; - public bool[] b連打中 = new bool[]{ false, false, false, false }; //奥の手 - private int[] n合計連打数 = new int[ 4 ]; - protected int[] n風船残り = new int[ 4 ]; - protected int[] n現在の連打数 = new int[ 4 ]; + public bool[] b連打中 = new bool[]{ false, false, false, false, false }; //奥の手 + private int[] n合計連打数 = new int[ 5 ]; + protected int[] n風船残り = new int[ 5 ]; + protected int[] n現在の連打数 = new int[ 5 ]; public int[] Chara_MissCount; protected E連打State eRollState; @@ -762,29 +852,25 @@ namespace TJAPlayer3 protected int[] nStoredHit; - public CDTX.CChip[] chip現在処理中の連打チップ = new CDTX.CChip[ 4 ]; + public CDTX.CChip[] chip現在処理中の連打チップ = new CDTX.CChip[ 5 ]; protected const int NOTE_GAP = 25; public int nLoopCount_Clear; protected int[] nScore = new int[11]; - protected int[] nHand = new int[4]; - protected CSound soundRed; - protected CSound soundBlue; - protected CSound soundAdlib; - protected CSound soundClap; - protected CSound soundRed2; - protected CSound soundBlue2; - protected CSound soundAdlib2; - protected CSound soundClap2; + protected int[] nHand = new int[5]; + protected CSound[] soundRed = new CSound[5]; + protected CSound[] soundBlue = new CSound[5]; + protected CSound[] soundAdlib = new CSound[5]; + protected CSound[] soundClap = new CSound[5]; public bool bDoublePlay; // 2016.08.21 kairera0467 表示だけ。 protected Stopwatch sw; // 2011.6.13 最適化検討用のストップウォッチ public int ListDan_Number; private bool IsDanFailed; - private bool[] b強制分岐譜面 = new bool[4]; + private bool[] b強制分岐譜面 = new bool[5]; private CDTX.E分岐種類 eBranch種類; public double nBranch条件数値A; public double nBranch条件数値B; - private readonly int[] NowProcessingChip = new int[] { 0, 0 }; + private readonly int[] NowProcessingChip = new int[] { 0, 0, 0, 0, 0 }; public int AIBattleState; @@ -1105,63 +1191,28 @@ namespace TJAPlayer3 if (index == 0x11 || index == 0x13 || index == 0x1A || index == 0x101) { - if (pChip.nPlayerSide == 0) - { - this.soundRed?.t再生を開始する(); - } - else - { - this.soundRed2?.t再生を開始する(); - } + this.soundRed[pChip.nPlayerSide]?.t再生を開始する(); if ((index == 0x13 && _gt == EGameType.KONGA) || index == 0x101) { - if (pChip.nPlayerSide == 0) - { - this.soundBlue?.t再生を開始する(); - } - else - { - this.soundBlue2?.t再生を開始する(); - } + this.soundBlue[pChip.nPlayerSide]?.t再生を開始する(); } } else if (index == 0x12 || index == 0x14 || index == 0x1B) { if (index == 0x14 && _gt == EGameType.KONGA) { - if (pChip.nPlayerSide == 0) - { - this.soundClap?.t再生を開始する(); - } - else - { - this.soundClap2?.t再生を開始する(); - } + this.soundClap[pChip.nPlayerSide]?.t再生を開始する(); } else { - if (pChip.nPlayerSide == 0) - { - this.soundBlue?.t再生を開始する(); - } - else - { - this.soundBlue2?.t再生を開始する(); - } + this.soundBlue[pChip.nPlayerSide]?.t再生を開始する(); } } else if (index == 0x1F) { - if (pChip.nPlayerSide == 0) - { - this.soundAdlib?.t再生を開始する(); - } - else - { - this.soundAdlib2?.t再生を開始する(); - } + this.soundAdlib[pChip.nPlayerSide]?.t再生を開始する(); } if (this.nHand[nPlayer] == 0) @@ -1305,10 +1356,7 @@ namespace TJAPlayer3 //赤か青かの分岐 if ( sort == 0|| sort == 2 ) { - if (pChip.nPlayerSide == 0) - this.soundRed?.t再生を開始する(); - else - this.soundRed2?.t再生を開始する(); + this.soundRed[pChip.nPlayerSide]?.t再生を開始する(); if (pChip.nチャンネル番号 == 0x15 || _gt == EGameType.KONGA || (_gt == EGameType.TAIKO && pChip.nチャンネル番号 == 0x21)) { @@ -1325,10 +1373,7 @@ namespace TJAPlayer3 } else if (sort == 1 || sort == 3) { - if (pChip.nPlayerSide == 0) - this.soundBlue?.t再生を開始する(); - else - this.soundBlue2?.t再生を開始する(); + this.soundBlue[pChip.nPlayerSide]?.t再生を開始する(); if (pChip.nチャンネル番号 == 0x15 || _gt == EGameType.KONGA || (_gt == EGameType.TAIKO && pChip.nチャンネル番号 == 0x21)) { @@ -1345,10 +1390,7 @@ namespace TJAPlayer3 } else if (sort == 4) { - if (pChip.nPlayerSide == 0) - this.soundClap?.t再生を開始する(); - else - this.soundClap2?.t再生を開始する(); + this.soundClap[pChip.nPlayerSide]?.t再生を開始する(); TJAPlayer3.stage演奏ドラム画面.FlyingNotes.Start(4, nPlayer, true); } @@ -1432,10 +1474,7 @@ namespace TJAPlayer3 this.actScore.Add(E楽器パート.TAIKO, this.bIsAutoPlay, 100L, player); } //CDTXMania.Skin.soundRed.t再生する(); - if (pChip.nPlayerSide == 0) - this.soundRed?.t再生を開始する(); - else - this.soundRed2?.t再生を開始する(); + this.soundRed[pChip.nPlayerSide]?.t再生を開始する(); if ( pChip.nBalloon == pChip.nRollCount ) @@ -1494,16 +1533,13 @@ namespace TJAPlayer3 { //unsafeコードにつき、デバッグ中の変更厳禁! - bool bAutoPlay = false; + bool bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer]; bool bBombHit = false; switch (nPlayer) { - case 0: - bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; - break; case 1: - bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode; + bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode; break; } @@ -2070,7 +2106,7 @@ namespace TJAPlayer3 //CDTXMania.act文字コンソール.tPrint(620, 80, C文字コンソール.Eフォント種別.白, "BPM: " + dbUnit.ToString()); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { if (this.actCombo.n現在のコンボ数[i] == 50 || this.actCombo.n現在のコンボ数[i] == 300) { @@ -2339,6 +2375,9 @@ namespace TJAPlayer3 case E楽器パート.TAIKO: this.actCombo.n現在のコンボ数.P1 = 0; this.actCombo.n現在のコンボ数.P2 = 0; + this.actCombo.n現在のコンボ数.P3 = 0; + this.actCombo.n現在のコンボ数.P4 = 0; + this.actCombo.n現在のコンボ数.P5 = 0; break; default: @@ -2988,10 +3027,10 @@ namespace TJAPlayer3 { if (keyboard.bキーが押された((int)SlimDXKeys.Key.F6)) { - if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == false) - TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = true; + if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] == false) + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] = true; else - TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = false; + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] = false; } } } @@ -3000,10 +3039,10 @@ namespace TJAPlayer3 if (keyboard.bキーが押された((int)SlimDXKeys.Key.F7)) { - if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P == false) - TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = true; + if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] == false) + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] = true; else - TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = false; + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] = false; } #endif if ( !this.actPauseMenu.bIsActivePopupMenu && this.bPAUSE && ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) @@ -3166,16 +3205,22 @@ namespace TJAPlayer3 CConfigIni configIni = TJAPlayer3.ConfigIni; CDTX dTX = TJAPlayer3.DTX; - bool bAutoPlay = false; - switch( nPlayer ) //2017.08.11 kairera0467 + bool bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer]; + switch ( nPlayer ) //2017.08.11 kairera0467 { - case 0: - bAutoPlay = configIni.b太鼓パートAutoPlay; - break; case 1: - bAutoPlay = configIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode; + bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode; dTX = TJAPlayer3.DTX_2P; break; + case 2: + dTX = TJAPlayer3.DTX_3P; + break; + case 3: + dTX = TJAPlayer3.DTX_4P; + break; + case 4: + dTX = TJAPlayer3.DTX_5P; + break; default: break; } @@ -3472,7 +3517,7 @@ namespace TJAPlayer3 this.actChara.b演奏中[nPlayer] = true; if( this.actPlayInfo.NowMeasure[nPlayer] == 0 ) { - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { ctChipAnime[i] = new CCounter(0, 3, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * 1 / 4 / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ); } @@ -3699,7 +3744,7 @@ namespace TJAPlayer3 } - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { ctChipAnime[i] = new CCounter(0, 3, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * 1 / 4, CSound管理.rc演奏用タイマ); } @@ -4090,16 +4135,22 @@ namespace TJAPlayer3 CConfigIni configIni = TJAPlayer3.ConfigIni; CDTX dTX = TJAPlayer3.DTX; - bool bAutoPlay = false; - switch( nPlayer ) //2017.08.11 kairera0467 + bool bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer]; + switch ( nPlayer ) //2017.08.11 kairera0467 { - case 0: - bAutoPlay = configIni.b太鼓パートAutoPlay; - break; case 1: - bAutoPlay = configIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode; + bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode; dTX = TJAPlayer3.DTX_2P; break; + case 2: + dTX = TJAPlayer3.DTX_3P; + break; + case 3: + dTX = TJAPlayer3.DTX_4P; + break; + case 4: + dTX = TJAPlayer3.DTX_5P; + break; default: break; } @@ -4310,6 +4361,15 @@ namespace TJAPlayer3 case 1: dTX = TJAPlayer3.DTX_2P; break; + case 2: + dTX = TJAPlayer3.DTX_3P; + break; + case 3: + dTX = TJAPlayer3.DTX_4P; + break; + case 4: + dTX = TJAPlayer3.DTX_5P; + break; default: break; } @@ -4450,7 +4510,7 @@ namespace TJAPlayer3 this.t数値の初期化( true, true ); this.actAVI.tReset(); this.actPanel.t歌詞テクスチャを削除する(); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { this.t演奏位置の変更(0, i); this.actPlayInfo.NowMeasure[i] = 0; @@ -4496,8 +4556,10 @@ namespace TJAPlayer3 this.actCombo.On活性化(); this.actScore.On活性化(); - this.actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 0 ); - if (bDoublePlay) this.actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 1 ); + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + this.actGauge.Init(TJAPlayer3.ConfigIni.nRisky, i); + } } if( b演奏状態 ) { @@ -4515,7 +4577,7 @@ namespace TJAPlayer3 this.n合計連打数[ i ] = 0; this.n分岐した回数[ i ] = 0; } - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { this.actComboVoice.tReset(i); NowProcessingChip[i] = 0; @@ -4523,7 +4585,7 @@ namespace TJAPlayer3 } this.ReSetScore(TJAPlayer3.DTX.nScoreInit[0, TJAPlayer3.stage選曲.n確定された曲の難易度[0]], TJAPlayer3.DTX.nScoreDiff[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]); - this.nHand = new int[]{ 0, 0, 0, 0 }; + this.nHand = new int[]{ 0, 0, 0, 0, 0 }; } public void t演奏位置の変更( int nStartBar, int nPlayer ) @@ -4537,6 +4599,15 @@ namespace TJAPlayer3 case 1: dTX = TJAPlayer3.DTX_2P; break; + case 2: + dTX = TJAPlayer3.DTX_3P; + break; + case 3: + dTX = TJAPlayer3.DTX_4P; + break; + case 4: + dTX = TJAPlayer3.DTX_5P; + break; default: break; } @@ -4748,7 +4819,7 @@ namespace TJAPlayer3 protected abstract void t進行描画_チップ_小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer ); protected void t進行描画_チップアニメ() { - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { ctChipAnime[i].t進行LoopDb(); ctChipAnimeLag[i].t進行(); diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMtaiko.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMtaiko.cs index b4919c58..7c2550f7 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMtaiko.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMtaiko.cs @@ -23,7 +23,7 @@ namespace TJAPlayer3 public override void On活性化() { - for( int i = 0; i < 16; i++ ) + for( int i = 0; i < 25; i++ ) { STパッド状態 stパッド状態 = new STパッド状態(); stパッド状態.n明るさ = 0; @@ -39,10 +39,10 @@ namespace TJAPlayer3 public override void OnManagedリソースの作成() { - this.ctレベルアップダウン = new CCounter[ 4 ]; - this.After = new CDTX.ECourse[ 4 ]; - this.Before = new CDTX.ECourse[ 4 ]; - for ( int i = 0; i < 4; i++ ) + this.ctレベルアップダウン = new CCounter[ 5 ]; + this.After = new CDTX.ECourse[ 5 ]; + this.Before = new CDTX.ECourse[ 5 ]; + for ( int i = 0; i < 5; i++ ) { this.ctレベルアップダウン[ i ] = new CCounter(); } @@ -73,7 +73,7 @@ namespace TJAPlayer3 } while( ( num - this.nフラッシュ制御タイマ ) >= 20 ) { - for( int j = 0; j < 16; j++ ) + for( int j = 0; j < 25; j++ ) { if( this.stパッド状態[ j ].n明るさ > 0 ) { @@ -81,15 +81,88 @@ namespace TJAPlayer3 } } this.nフラッシュ制御タイマ += 20; - } - - - //this.nHS = TJAPlayer3.ConfigIni.nScrollSpeed.Drums < 8 ? TJAPlayer3.ConfigIni.nScrollSpeed.Drums : 7; - + } + + + //this.nHS = TJAPlayer3.ConfigIni.nScrollSpeed.Drums < 8 ? TJAPlayer3.ConfigIni.nScrollSpeed.Drums : 7; + + + + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + int bg_x; + int bg_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + bg_x = TJAPlayer3.Skin.Game_Taiko_Background_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + bg_y = TJAPlayer3.Skin.Game_Taiko_Background_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + bg_x = TJAPlayer3.Skin.Game_Taiko_Background_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + bg_y = TJAPlayer3.Skin.Game_Taiko_Background_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + else + { + bg_x = TJAPlayer3.Skin.Game_Taiko_Background_X[i]; + bg_y = TJAPlayer3.Skin.Game_Taiko_Background_Y[i]; + } + + CTexture tex = null; + + switch (i) + { + case 0: + { + if (TJAPlayer3.ConfigIni.bTokkunMode) + { + if (TJAPlayer3.P1IsBlue()) + tex = TJAPlayer3.Tx.Taiko_Background[6]; + else + tex = TJAPlayer3.Tx.Taiko_Background[5]; + } + else + { + if (TJAPlayer3.P1IsBlue()) + tex = TJAPlayer3.Tx.Taiko_Background[4]; + else + tex = TJAPlayer3.Tx.Taiko_Background[0]; + } + } + break; + case 1: + { + if (TJAPlayer3.ConfigIni.bAIBattleMode) + { + tex = TJAPlayer3.Tx.Taiko_Background[9]; + } + else + { + if (TJAPlayer3.ConfigIni.nPlayerCount == 2) + tex = TJAPlayer3.Tx.Taiko_Background[1]; + else + tex = TJAPlayer3.Tx.Taiko_Background[4]; + } + } + break; + case 2: + tex = TJAPlayer3.Tx.Taiko_Background[7]; + break; + case 3: + tex = TJAPlayer3.Tx.Taiko_Background[8]; + break; + case 4: + tex = TJAPlayer3.Tx.Taiko_Background[11]; + break; + } + + tex?.t2D描画(TJAPlayer3.app.Device, bg_x, bg_y); + } + /* if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) // Dan-i Dojo - TJAPlayer3.Tx.Taiko_Background[2]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[0], TJAPlayer3.Skin.Game_Taiko_Background_Y[0]); + TJAPlayer3.Tx.Taiko_Background[2]?.t2D描画(TJAPlayer3.app.Device, bg_x[0], bg_y[0]); else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower) // Taiko Towers - TJAPlayer3.Tx.Taiko_Background[3]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[0], TJAPlayer3.Skin.Game_Taiko_Background_Y[0]); + TJAPlayer3.Tx.Taiko_Background[3]?.t2D描画(TJAPlayer3.app.Device, bg_x[0], bg_y[0]); else if (!TJAPlayer3.ConfigIni.bTokkunMode || TJAPlayer3.Tx.Taiko_Background[5] == null || TJAPlayer3.Tx.Taiko_Background[6] == null) @@ -97,34 +170,67 @@ namespace TJAPlayer3 // Taiko Mode if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay) { - // 2P - if (!TJAPlayer3.ConfigIni.bAIBattleMode || TJAPlayer3.Tx.Taiko_Background[9] == null) - TJAPlayer3.Tx.Taiko_Background[1]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[1], TJAPlayer3.Skin.Game_Taiko_Background_Y[1]); + if (TJAPlayer3.ConfigIni.nPlayerCount == 2) + { + // 2P + if (!TJAPlayer3.ConfigIni.bAIBattleMode || TJAPlayer3.Tx.Taiko_Background[9] == null) + TJAPlayer3.Tx.Taiko_Background[1]?.t2D描画(TJAPlayer3.app.Device, bg_x[1], bg_y[1]); + else + TJAPlayer3.Tx.Taiko_Background[9]?.t2D描画(TJAPlayer3.app.Device, bg_x[1], bg_y[1]); + } else - TJAPlayer3.Tx.Taiko_Background[9]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[1], TJAPlayer3.Skin.Game_Taiko_Background_Y[1]); + { + if (TJAPlayer3.ConfigIni.nPlayerCount >= 2) + TJAPlayer3.Tx.Taiko_Background[4]?.t2D描画(TJAPlayer3.app.Device, bg_x[1], bg_y[1]); + if (TJAPlayer3.ConfigIni.nPlayerCount >= 3) + TJAPlayer3.Tx.Taiko_Background[7]?.t2D描画(TJAPlayer3.app.Device, bg_x[2], bg_y[2]); + if (TJAPlayer3.ConfigIni.nPlayerCount >= 4) + TJAPlayer3.Tx.Taiko_Background[8]?.t2D描画(TJAPlayer3.app.Device, bg_x[3], bg_y[3]); + if (TJAPlayer3.ConfigIni.nPlayerCount >= 5) + TJAPlayer3.Tx.Taiko_Background[11]?.t2D描画(TJAPlayer3.app.Device, bg_x[4], bg_y[4]); + } } if (TJAPlayer3.P1IsBlue()) - TJAPlayer3.Tx.Taiko_Background[4]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[0], TJAPlayer3.Skin.Game_Taiko_Background_Y[0]); + TJAPlayer3.Tx.Taiko_Background[4]?.t2D描画(TJAPlayer3.app.Device, bg_x[0], bg_y[0]); else - TJAPlayer3.Tx.Taiko_Background[0]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[0], TJAPlayer3.Skin.Game_Taiko_Background_Y[0]); + TJAPlayer3.Tx.Taiko_Background[0]?.t2D描画(TJAPlayer3.app.Device, bg_x[0], bg_y[0]); } else { // Training Mode if (TJAPlayer3.P1IsBlue()) - TJAPlayer3.Tx.Taiko_Background[6]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[0], TJAPlayer3.Skin.Game_Taiko_Background_Y[0]); + TJAPlayer3.Tx.Taiko_Background[6]?.t2D描画(TJAPlayer3.app.Device, bg_x[0], bg_y[0]); else - TJAPlayer3.Tx.Taiko_Background[5]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[0], TJAPlayer3.Skin.Game_Taiko_Background_Y[0]); + TJAPlayer3.Tx.Taiko_Background[5]?.t2D描画(TJAPlayer3.app.Device, bg_x[0], bg_y[0]); } + */ for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { + int taiko_x; + int taiko_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + taiko_x = TJAPlayer3.Skin.Game_Taiko_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + taiko_y = TJAPlayer3.Skin.Game_Taiko_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + taiko_x = TJAPlayer3.Skin.Game_Taiko_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + taiko_y = TJAPlayer3.Skin.Game_Taiko_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + else + { + taiko_x = TJAPlayer3.Skin.Game_Taiko_X[i]; + taiko_y = TJAPlayer3.Skin.Game_Taiko_Y[i]; + } + int _actual = TJAPlayer3.GetActualPlayer(i); EGameType _gt = TJAPlayer3.ConfigIni.nGameType[_actual]; int playerShift = i * 5; // Drum base - TJAPlayer3.Tx.Taiko_Base[(int)_gt]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]); + TJAPlayer3.Tx.Taiko_Base[(int)_gt]?.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y); // Taiko hits if (_gt == EGameType.TAIKO) @@ -136,10 +242,10 @@ namespace TJAPlayer3 TJAPlayer3.Tx.Taiko_Don_Left.Opacity = this.stパッド状態[2 + playerShift].n明るさ * 73; TJAPlayer3.Tx.Taiko_Don_Right.Opacity = this.stパッド状態[3 + playerShift].n明るさ * 73; - TJAPlayer3.Tx.Taiko_Ka_Left.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i], new Rectangle(0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height)); - TJAPlayer3.Tx.Taiko_Ka_Right.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i] + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.Game_Taiko_Y[i], new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height)); - TJAPlayer3.Tx.Taiko_Don_Left.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i], new Rectangle(0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height)); - TJAPlayer3.Tx.Taiko_Don_Right.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i] + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.Game_Taiko_Y[i], new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height)); + TJAPlayer3.Tx.Taiko_Ka_Left.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y, new Rectangle(0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height)); + TJAPlayer3.Tx.Taiko_Ka_Right.t2D描画(TJAPlayer3.app.Device, taiko_x + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, taiko_y, new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height)); + TJAPlayer3.Tx.Taiko_Don_Left.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y, new Rectangle(0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height)); + TJAPlayer3.Tx.Taiko_Don_Right.t2D描画(TJAPlayer3.app.Device, taiko_x + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, taiko_y, new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height)); } } else if (_gt == EGameType.KONGA) @@ -150,9 +256,9 @@ namespace TJAPlayer3 TJAPlayer3.Tx.Taiko_Konga_Don.Opacity = Math.Max(this.stパッド状態[2 + playerShift].n明るさ, this.stパッド状態[3 + playerShift].n明るさ) * 73; TJAPlayer3.Tx.Taiko_Konga_Ka.Opacity = Math.Max(this.stパッド状態[playerShift].n明るさ, this.stパッド状態[1 + playerShift].n明るさ) * 73; - TJAPlayer3.Tx.Taiko_Konga_Ka.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]); - TJAPlayer3.Tx.Taiko_Konga_Don.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]); - TJAPlayer3.Tx.Taiko_Konga_Clap.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]); + TJAPlayer3.Tx.Taiko_Konga_Ka.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y); + TJAPlayer3.Tx.Taiko_Konga_Don.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y); + TJAPlayer3.Tx.Taiko_Konga_Clap.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y); } } @@ -162,8 +268,10 @@ namespace TJAPlayer3 int[] nLVUPY = new int[] { 127, 127, 0, 0 }; for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) - { - if( !this.ctレベルアップダウン[ i ].b停止中 ) + { + if (TJAPlayer3.ConfigIni.nPlayerCount > 2) break; + + if ( !this.ctレベルアップダウン[ i ].b停止中 ) { this.ctレベルアップダウン[ i ].t進行(); if( this.ctレベルアップダウン[ i ].b終了値に達した ) { @@ -212,24 +320,29 @@ namespace TJAPlayer3 { nAlpha = 255; fScale = 1.0f; - } + } + + if (TJAPlayer3.ConfigIni.nPlayerCount > 2) continue; + + int levelChange_x = TJAPlayer3.Skin.Game_Taiko_LevelChange_X[i]; + int levelChange_y = TJAPlayer3.Skin.Game_Taiko_LevelChange_Y[i]; - if( this.After[ i ] - this.Before[ i ] >= 0 ) + if ( this.After[ i ] - this.Before[ i ] >= 0 ) { //レベルアップ TJAPlayer3.Tx.Taiko_LevelUp.vc拡大縮小倍率.X = fScale; TJAPlayer3.Tx.Taiko_LevelUp.vc拡大縮小倍率.Y = fScale; TJAPlayer3.Tx.Taiko_LevelUp.Opacity = nAlpha; - TJAPlayer3.Tx.Taiko_LevelUp.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_LevelChange_X[i], - TJAPlayer3.Skin.Game_Taiko_LevelChange_Y[i]); + TJAPlayer3.Tx.Taiko_LevelUp.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, levelChange_x, + levelChange_y); } else { TJAPlayer3.Tx.Taiko_LevelDown.vc拡大縮小倍率.X = fScale; TJAPlayer3.Tx.Taiko_LevelDown.vc拡大縮小倍率.Y = fScale; TJAPlayer3.Tx.Taiko_LevelDown.Opacity = nAlpha; - TJAPlayer3.Tx.Taiko_LevelDown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_LevelChange_X[i], - TJAPlayer3.Skin.Game_Taiko_LevelChange_Y[i]); + TJAPlayer3.Tx.Taiko_LevelDown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, levelChange_x, + levelChange_y); } } } @@ -237,14 +350,44 @@ namespace TJAPlayer3 for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) { if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break; + + + int modIcons_x; + int modIcons_y; + int couse_symbol_x; + int couse_symbol_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + modIcons_x = TJAPlayer3.Skin.Game_Taiko_ModIcons_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + modIcons_y = TJAPlayer3.Skin.Game_Taiko_ModIcons_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + + couse_symbol_x = TJAPlayer3.Skin.Game_CourseSymbol_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + couse_symbol_y = TJAPlayer3.Skin.Game_CourseSymbol_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + modIcons_x = TJAPlayer3.Skin.Game_Taiko_ModIcons_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + modIcons_y = TJAPlayer3.Skin.Game_Taiko_ModIcons_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + + couse_symbol_x = TJAPlayer3.Skin.Game_CourseSymbol_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + couse_symbol_y = TJAPlayer3.Skin.Game_CourseSymbol_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + else + { + modIcons_x = TJAPlayer3.Skin.Game_Taiko_ModIcons_X[i]; + modIcons_y = TJAPlayer3.Skin.Game_Taiko_ModIcons_Y[i]; + + couse_symbol_x = TJAPlayer3.Skin.Game_CourseSymbol_X[i]; + couse_symbol_y = TJAPlayer3.Skin.Game_CourseSymbol_Y[i]; + } - ModIcons.tDisplayMods(TJAPlayer3.Skin.Game_Taiko_ModIcons_X[i], TJAPlayer3.Skin.Game_Taiko_ModIcons_Y[i], i); + ModIcons.tDisplayMods(modIcons_x, modIcons_y, i); if (TJAPlayer3.Tx.Couse_Symbol[TJAPlayer3.stage選曲.n確定された曲の難易度[i]] != null) { TJAPlayer3.Tx.Couse_Symbol[TJAPlayer3.stage選曲.n確定された曲の難易度[i]].t2D描画(TJAPlayer3.app.Device, - TJAPlayer3.Skin.Game_CourseSymbol_X[i], - TJAPlayer3.Skin.Game_CourseSymbol_Y[i] + couse_symbol_x, + couse_symbol_y ); } @@ -254,28 +397,51 @@ namespace TJAPlayer3 if (TJAPlayer3.Tx.Couse_Symbol[(int)Difficulty.Total] != null) { TJAPlayer3.Tx.Couse_Symbol[(int)Difficulty.Total].t2D描画(TJAPlayer3.app.Device, - TJAPlayer3.Skin.Game_CourseSymbol_X[i], - TJAPlayer3.Skin.Game_CourseSymbol_Y[i] + couse_symbol_x, + couse_symbol_y ); } } - } - - TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.Game_Taiko_NamePlate_X[0], TJAPlayer3.Skin.Game_Taiko_NamePlate_Y[0], 0); - - if(TJAPlayer3.stage演奏ドラム画面.bDoublePlay) - { - TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.Game_Taiko_NamePlate_X[1], TJAPlayer3.Skin.Game_Taiko_NamePlate_Y[1], 1); - } - - if (TJAPlayer3.Tx.Taiko_PlayerNumber[0] != null) - { - TJAPlayer3.Tx.Taiko_PlayerNumber[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_PlayerNumber_X[0], TJAPlayer3.Skin.Game_Taiko_PlayerNumber_Y[0]); - } - if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && TJAPlayer3.Tx.Taiko_PlayerNumber[1] != null) - { - TJAPlayer3.Tx.Taiko_PlayerNumber[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_PlayerNumber_X[1], TJAPlayer3.Skin.Game_Taiko_PlayerNumber_Y[1]); + } + + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + int namePlate_x; + int namePlate_y; + int playerNumber_x; + int playerNumber_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + namePlate_x = TJAPlayer3.Skin.Game_Taiko_NamePlate_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + namePlate_y = TJAPlayer3.Skin.Game_Taiko_NamePlate_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + + playerNumber_x = TJAPlayer3.Skin.Game_Taiko_PlayerNumber_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + playerNumber_y = TJAPlayer3.Skin.Game_Taiko_PlayerNumber_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + namePlate_x = TJAPlayer3.Skin.Game_Taiko_NamePlate_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + namePlate_y = TJAPlayer3.Skin.Game_Taiko_NamePlate_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + + playerNumber_x = TJAPlayer3.Skin.Game_Taiko_PlayerNumber_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + playerNumber_y = TJAPlayer3.Skin.Game_Taiko_PlayerNumber_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + else + { + namePlate_x = TJAPlayer3.Skin.Game_Taiko_NamePlate_X[i]; + namePlate_y = TJAPlayer3.Skin.Game_Taiko_NamePlate_Y[i]; + + playerNumber_x = TJAPlayer3.Skin.Game_Taiko_PlayerNumber_X[i]; + playerNumber_y = TJAPlayer3.Skin.Game_Taiko_PlayerNumber_Y[i]; + } + + TJAPlayer3.NamePlate.tNamePlateDraw(namePlate_x, namePlate_y, i); + + if (TJAPlayer3.Tx.Taiko_PlayerNumber[i] != null) + { + TJAPlayer3.Tx.Taiko_PlayerNumber[i].t2D描画(TJAPlayer3.app.Device, playerNumber_x, playerNumber_y); + } } return base.On進行描画(); } @@ -283,19 +449,14 @@ namespace TJAPlayer3 public void tMtaikoEvent( int nChannel, int nHand, int nPlayer ) { CConfigIni configIni = TJAPlayer3.ConfigIni; - bool bAutoPlay = false; + bool bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer]; int playerShift = 5 * nPlayer; var _gt = configIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)]; switch (nPlayer) { - case 0: - bAutoPlay = configIni.b太鼓パートAutoPlay; - break; case 1: - bAutoPlay = configIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode; - break; - default: + bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode; break; } @@ -415,7 +576,7 @@ namespace TJAPlayer3 } //太鼓 - private STパッド状態[] stパッド状態 = new STパッド状態[ 4 * 5 ]; + private STパッド状態[] stパッド状態 = new STパッド状態[ 5 * 5 ]; private long nフラッシュ制御タイマ; //private CTexture[] txコースシンボル = new CTexture[ 6 ]; diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsキャラクター.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsキャラクター.cs index 7ec302be..b13b9382 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsキャラクター.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsキャラクター.cs @@ -27,7 +27,7 @@ namespace TJAPlayer3 public override void On活性化() { - for(int i = 0; i < 2; i++) + for(int i = 0; i < 5; i++) { ctChara_Normal[i] = new CCounter(); ctChara_Miss[i] = new CCounter(); @@ -81,7 +81,7 @@ namespace TJAPlayer3 public override void On非活性化() { - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { ctChara_Normal[i] = null; ctChara_Miss[i] = null; @@ -109,7 +109,7 @@ namespace TJAPlayer3 public override void OnManagedリソースの作成() { - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { this.arモーション番号[i] = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Characters_Motion_Normal[this.iCurrentCharacter[i]]); this.arMissモーション番号[i] = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Characters_Motion_Miss[this.iCurrentCharacter[i]]); @@ -141,7 +141,7 @@ namespace TJAPlayer3 public override int On進行描画() { for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) - { + { int Character = this.iCurrentCharacter[i]; if (TJAPlayer3.Skin.Characters_Ptn == 0) @@ -333,28 +333,7 @@ namespace TJAPlayer3 float chara_x; float chara_y; - float charaScale = 1.0f; - - if (TJAPlayer3.ConfigIni.bAIBattleMode) - { - chara_x = TJAPlayer3.Skin.Characters_X_AI[Character][i]; - chara_y = TJAPlayer3.Skin.Characters_Y_AI[Character][i]; - - if (nowChara != null) - { - charaScale = 0.58f; - } - } - else - { - chara_x = TJAPlayer3.Skin.Characters_X[Character][i]; - chara_y = TJAPlayer3.Skin.Characters_Y[Character][i]; - - if (nowChara != null) - { - charaScale = 1.0f; - } - } + float charaScale = 1.0f; if (nowChara != null) { @@ -363,9 +342,50 @@ namespace TJAPlayer3 float resolutionScaleX = TJAPlayer3.Skin.Resolution[0] / (float)TJAPlayer3.Skin.Characters_Resolution[Character][0]; float resolutionScaleY = TJAPlayer3.Skin.Resolution[1] / (float)TJAPlayer3.Skin.Characters_Resolution[Character][1]; + if (TJAPlayer3.ConfigIni.bAIBattleMode) + { + chara_x = (TJAPlayer3.Skin.Characters_X_AI[Character][i] * resolutionScaleX); + chara_y = (TJAPlayer3.Skin.Characters_Y_AI[Character][i] * resolutionScaleY); + + if (nowChara != null) + { + charaScale = 0.58f; + } + } + else if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + chara_x = (TJAPlayer3.Skin.Characters_X[Character][i] * resolutionScaleX); + chara_y = (TJAPlayer3.Skin.Characters_Y[Character][i] * resolutionScaleY); + + if (nowChara != null) + { + charaScale = 1.0f; + } + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + chara_x = (TJAPlayer3.Skin.Characters_5P[Character][0] * resolutionScaleX) + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + chara_y = (TJAPlayer3.Skin.Characters_5P[Character][1] * resolutionScaleY) + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + + if (nowChara != null) + { + charaScale = 0.58f; + } + } + else + { + chara_x = (TJAPlayer3.Skin.Characters_4P[Character][0] * resolutionScaleX) + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + chara_y = (TJAPlayer3.Skin.Characters_4P[Character][1] * resolutionScaleY) + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + + if (nowChara != null) + { + charaScale = 0.58f; + } + } + charaScale *= resolutionScaleY; - chara_x *= resolutionScaleX; - chara_y *= resolutionScaleY; + //chara_x *= resolutionScaleX; + //chara_y *= resolutionScaleY; if (TJAPlayer3.ConfigIni.bAIBattleMode) { @@ -389,9 +409,20 @@ namespace TJAPlayer3 nowChara.vc拡大縮小倍率.Y = 1.0f; } - if (this.b風船連打中[i] != true && CharaAction_Balloon_Delay[i].b終了値に達した) - { - TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画(TJAPlayer3.Skin.Game_PuchiChara_X[i], TJAPlayer3.Skin.Game_PuchiChara_Y[i], TJAPlayer3.stage演奏ドラム画面.bIsAlreadyMaxed[i], player : i); + if ((this.b風船連打中[i] != true && CharaAction_Balloon_Delay[i].b終了値に達した) || TJAPlayer3.ConfigIni.nPlayerCount > 2) + { + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画(TJAPlayer3.Skin.Game_PuchiChara_X[i], TJAPlayer3.Skin.Game_PuchiChara_Y[i], TJAPlayer3.stage演奏ドラム画面.bIsAlreadyMaxed[i], player: i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画(TJAPlayer3.Skin.Game_PuchiChara_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i), TJAPlayer3.Skin.Game_PuchiChara_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i), TJAPlayer3.stage演奏ドラム画面.bIsAlreadyMaxed[i], player: i, scale: 0.5f); + } + else + { + TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画(TJAPlayer3.Skin.Game_PuchiChara_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i), TJAPlayer3.Skin.Game_PuchiChara_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i), TJAPlayer3.stage演奏ドラム画面.bIsAlreadyMaxed[i], player: i, scale: 0.5f); + } } } return base.On進行描画(); @@ -414,8 +445,28 @@ namespace TJAPlayer3 float resolutionScaleX = TJAPlayer3.Skin.Resolution[0] / (float)TJAPlayer3.Skin.Characters_Resolution[this.iCurrentCharacter[i]][0]; float resolutionScaleY = TJAPlayer3.Skin.Resolution[1] / (float)TJAPlayer3.Skin.Characters_Resolution[this.iCurrentCharacter[i]][1]; - float chara_x = TJAPlayer3.Skin.Characters_Balloon_X[this.iCurrentCharacter[i]][i]; - float chara_y = TJAPlayer3.Skin.Characters_Balloon_Y[this.iCurrentCharacter[i]][i]; + float chara_x = 0; + float chara_y = 0; + + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + chara_x = TJAPlayer3.Skin.Characters_Balloon_X[this.iCurrentCharacter[i]][i]; + chara_y = TJAPlayer3.Skin.Characters_Balloon_Y[this.iCurrentCharacter[i]][i]; + } + else + { + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + chara_x = TJAPlayer3.Skin.Characters_Balloon_5P[this.iCurrentCharacter[i]][0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + chara_y = TJAPlayer3.Skin.Characters_Balloon_5P[this.iCurrentCharacter[i]][1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else + { + chara_x = TJAPlayer3.Skin.Characters_Balloon_4P[this.iCurrentCharacter[i]][0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + chara_y = TJAPlayer3.Skin.Characters_Balloon_4P[this.iCurrentCharacter[i]][1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + } + chara_x *= resolutionScaleX; chara_y *= resolutionScaleY; @@ -438,9 +489,10 @@ namespace TJAPlayer3 (TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + chara_x, chara_y); - } - - TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, nowOpacity, true, player : i); + } + + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, nowOpacity, true, player : i); if (CharaAction_Balloon_Broke[i].b終了値に達した) { @@ -465,9 +517,10 @@ namespace TJAPlayer3 (TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + chara_x, chara_y); - } - - TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, nowOpacity, true, player : i); + } + + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, nowOpacity, true, player : i); if (CharaAction_Balloon_Miss[i].b終了値に達した) { @@ -486,11 +539,11 @@ namespace TJAPlayer3 (TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + chara_x, chara_y); - } - - TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, 255, true, player : i); - } - + } + + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, 255, true, player : i); + } } } } @@ -521,39 +574,39 @@ namespace TJAPlayer3 //CharaAction_Balloon_Delay.n現在の値 = 0; } - public int[][] arモーション番号 = new int[2][]; - public int[][] arMissモーション番号 = new int[2][]; - public int[][] arMissDownモーション番号 = new int[2][]; - public int[][] arゴーゴーモーション番号 = new int[2][]; - public int[][] arクリアモーション番号 = new int[2][]; + public int[][] arモーション番号 = new int[5][]; + public int[][] arMissモーション番号 = new int[5][]; + public int[][] arMissDownモーション番号 = new int[5][]; + public int[][] arゴーゴーモーション番号 = new int[5][]; + public int[][] arクリアモーション番号 = new int[5][]; - public CCounter[] ctキャラクターアクション_10コンボ = new CCounter[2]; - public CCounter[] ctキャラクターアクション_10コンボMAX = new CCounter[2]; - public CCounter[] ctキャラクターアクション_ゴーゴースタート = new CCounter[2]; - public CCounter[] ctキャラクターアクション_ゴーゴースタートMAX = new CCounter[2]; - public CCounter[] ctキャラクターアクション_ノルマ = new CCounter[2]; - public CCounter[] ctキャラクターアクション_魂MAX = new CCounter[2]; - public CCounter[] ctキャラクターアクション_Return = new CCounter[2]; - public CCounter[] CharaAction_Balloon_Breaking = new CCounter[2]; - public CCounter[] CharaAction_Balloon_Broke = new CCounter[2]; - public CCounter[] CharaAction_Balloon_Miss = new CCounter[2]; - public CCounter[] CharaAction_Balloon_Delay = new CCounter[2]; + public CCounter[] ctキャラクターアクション_10コンボ = new CCounter[5]; + public CCounter[] ctキャラクターアクション_10コンボMAX = new CCounter[5]; + public CCounter[] ctキャラクターアクション_ゴーゴースタート = new CCounter[5]; + public CCounter[] ctキャラクターアクション_ゴーゴースタートMAX = new CCounter[5]; + public CCounter[] ctキャラクターアクション_ノルマ = new CCounter[5]; + public CCounter[] ctキャラクターアクション_魂MAX = new CCounter[5]; + public CCounter[] ctキャラクターアクション_Return = new CCounter[5]; + public CCounter[] CharaAction_Balloon_Breaking = new CCounter[5]; + public CCounter[] CharaAction_Balloon_Broke = new CCounter[5]; + public CCounter[] CharaAction_Balloon_Miss = new CCounter[5]; + public CCounter[] CharaAction_Balloon_Delay = new CCounter[5]; - public CCounter[] ctChara_Normal = new CCounter[2]; - public CCounter[] ctChara_Miss = new CCounter[2]; - public CCounter[] ctChara_MissDown = new CCounter[2]; - public CCounter[] ctChara_GoGo = new CCounter[2]; - public CCounter[] ctChara_Clear = new CCounter[2]; + public CCounter[] ctChara_Normal = new CCounter[5]; + public CCounter[] ctChara_Miss = new CCounter[5]; + public CCounter[] ctChara_MissDown = new CCounter[5]; + public CCounter[] ctChara_GoGo = new CCounter[5]; + public CCounter[] ctChara_Clear = new CCounter[5]; - public Animations.FadeOut[] CharaAction_Balloon_FadeOut = new Animations.FadeOut[2]; - //private readonly int[] CharaAction_Balloon_FadeOut_StartMs = new int[2]; - private readonly int[][] CharaAction_Balloon_FadeOut_StartMs = new int[2][]; + public Animations.FadeOut[] CharaAction_Balloon_FadeOut = new Animations.FadeOut[5]; + //private readonly int[] CharaAction_Balloon_FadeOut_StartMs = new int[5]; + private readonly int[][] CharaAction_Balloon_FadeOut_StartMs = new int[5][]; - public bool[] bマイどんアクション中 = new bool[2]; + public bool[] bマイどんアクション中 = new bool[5]; - public bool[] b風船連打中 = new bool[2]; - public bool[] b演奏中 = new bool[2]; + public bool[] b風船連打中 = new bool[5]; + public bool[] b演奏中 = new bool[5]; - public int[] iCurrentCharacter = new int[2] { 0, 0 }; + public int[] iCurrentCharacter = new int[5] { 0, 0, 0, 0, 0 }; } } diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsゲージ.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsゲージ.cs index 89392983..233cc58b 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsゲージ.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsゲージ.cs @@ -49,54 +49,28 @@ namespace TJAPlayer3 { if( player == 0 ) { - if( !this.st花火状態[ j ].b使用中 ) + if( !this.st花火状態[player][ j ].b使用中 ) { - this.st花火状態[j].ct進行 = new CCounter(0, 10, 20, TJAPlayer3.Timer); - this.st花火状態[j].nPlayer = player; + this.st花火状態[player][j].ct進行 = new CCounter(0, 10, 20, TJAPlayer3.Timer); + this.st花火状態[player][j].nPlayer = player; switch (nLane) { case 0x11: case 0x12: case 0x15: - this.st花火状態[j].isBig = false; + this.st花火状態[player][j].isBig = false; break; case 0x13: case 0x14: case 0x16: case 0x17: - this.st花火状態[j].isBig = true; + this.st花火状態[player][j].isBig = true; break; } - this.st花火状態[j].nLane = nLane; + this.st花火状態[player][j].nLane = nLane; - this.st花火状態[j].b使用中 = true; - break; - } - } - if( player == 1 ) - { - if( !this.st花火状態2P[ j ].b使用中 ) - { - this.st花火状態2P[ j ].ct進行 = new CCounter(0, 10, 20, TJAPlayer3.Timer); - this.st花火状態2P[ j ].nPlayer = player; - - switch (nLane) - { - case 0x11: - case 0x12: - case 0x15: - this.st花火状態2P[ j ].isBig = false; - break; - case 0x13: - case 0x14: - case 0x16: - case 0x17: - this.st花火状態2P[ j ].isBig = true; - break; - } - this.st花火状態2P[j].nLane = nLane; - this.st花火状態2P[ j ].b使用中 = true; + this.st花火状態[player][j].b使用中 = true; break; } } @@ -109,19 +83,23 @@ namespace TJAPlayer3 { this.ct炎 = new CCounter( 0, 6, 50, TJAPlayer3.Timer ); - for (int i = 0; i < 32; i++ ) + for (int player = 0; player < 5; player++) { - this.st花火状態[i].ct進行 = new CCounter(); - this.st花火状態2P[i].ct進行 = new CCounter(); + for (int i = 0; i < 32; i++) + { + this.st花火状態[player][i].ct進行 = new CCounter(); + } } base.On活性化(); } public override void On非活性化() - { - for (int i = 0; i < 32; i++ ) + { + for (int player = 0; player < 5; player++) { - this.st花火状態[i].ct進行 = null; - this.st花火状態2P[i].ct進行 = null; + for (int i = 0; i < 32; i++) + { + this.st花火状態[player][i].ct進行 = null; + } } this.ct炎 = null; } @@ -166,8 +144,13 @@ namespace TJAPlayer3 this.ctGaugeFlash.t進行Loop(); int nWidth = (TJAPlayer3.Skin.Game_Gauge_Rect[2] / 50); - int nRectX2P = (int)(this.db現在のゲージ値[1] / 2) * nWidth; - int nRectX = (int)( this.db現在のゲージ値[ 0 ] / 2 ) * nWidth; + int[] nRectX = new int[] { + (int)( this.db現在のゲージ値[ 0 ] / 2 ) * nWidth, + (int)( this.db現在のゲージ値[ 1 ] / 2 ) * nWidth, + (int)( this.db現在のゲージ値[ 2 ] / 2 ) * nWidth, + (int)( this.db現在のゲージ値[ 3 ] / 2 ) * nWidth, + (int)( this.db現在のゲージ値[ 4 ] / 2 ) * nWidth + }; int 虹ベース = ct虹アニメ.n現在の値 + 1; if (虹ベース == ct虹アニメ.n終了値+1) 虹ベース = 0; /* @@ -193,18 +176,40 @@ namespace TJAPlayer3 scale = 0.8f; } + int[] gauge_x = new int[5]; + int[] gauge_y = new int[5]; + + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + gauge_x[i] = TJAPlayer3.Skin.Game_Gauge_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + gauge_y[i] = TJAPlayer3.Skin.Game_Gauge_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + gauge_x[i] = TJAPlayer3.Skin.Game_Gauge_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + gauge_y[i] = TJAPlayer3.Skin.Game_Gauge_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + else + { + gauge_x[i] = TJAPlayer3.Skin.Game_Gauge_X[i]; + gauge_y[i] = TJAPlayer3.Skin.Game_Gauge_Y[i]; + } + } + #region [Gauge base] if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) { if (TJAPlayer3.P1IsBlue()) { - TJAPlayer3.Tx.Gauge_Dan[4]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0], + TJAPlayer3.Tx.Gauge_Dan[4]?.t2D描画(TJAPlayer3.app.Device, gauge_x[0], gauge_y[0], new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3])); } else { - TJAPlayer3.Tx.Gauge_Dan[0]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0], + TJAPlayer3.Tx.Gauge_Dan[0]?.t2D描画(TJAPlayer3.app.Device, gauge_x[0], gauge_y[0], new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3])); } @@ -216,7 +221,7 @@ namespace TJAPlayer3 { if (TJAPlayer3.DTX.Dan_C[i].GetExamType() == Exam.Type.Gauge) { - TJAPlayer3.Tx.Gauge_Dan[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0] + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Y[0], + TJAPlayer3.Tx.Gauge_Dan[2].t2D描画(TJAPlayer3.app.Device, gauge_x[0] + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), gauge_y[0], new Rectangle((TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), 0, TJAPlayer3.Skin.Game_Gauge_Rect[2] - (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Rect[3])); } } @@ -227,16 +232,22 @@ namespace TJAPlayer3 { if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode) { - TJAPlayer3.Tx.Gauge_Base[1]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1], + for (int i = 1; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 1 : 3 + i; + TJAPlayer3.Tx.Gauge_Base[index]?.t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i], new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3])); + } } if (TJAPlayer3.P1IsBlue()) { - TJAPlayer3.Tx.Gauge_Base[2]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0], + TJAPlayer3.Tx.Gauge_Base[2]?.t2D描画(TJAPlayer3.app.Device, gauge_x[0], gauge_y[0], new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3])); } else { + int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 0 : 3; + int x; int y; if (TJAPlayer3.ConfigIni.bAIBattleMode) @@ -246,16 +257,16 @@ namespace TJAPlayer3 } else { - x = TJAPlayer3.Skin.Game_Gauge_X[0]; - y = TJAPlayer3.Skin.Game_Gauge_Y[0]; + x = gauge_x[0]; + y = gauge_y[0]; } - if (TJAPlayer3.Tx.Gauge_Base[0] != null) + if (TJAPlayer3.Tx.Gauge_Base[index] != null) { - TJAPlayer3.Tx.Gauge_Base[0].vc拡大縮小倍率.X = scale; - TJAPlayer3.Tx.Gauge_Base[0].vc拡大縮小倍率.Y = scale; + TJAPlayer3.Tx.Gauge_Base[index].vc拡大縮小倍率.X = scale; + TJAPlayer3.Tx.Gauge_Base[index].vc拡大縮小倍率.Y = scale; - TJAPlayer3.Tx.Gauge_Base[0].t2D描画(TJAPlayer3.app.Device, x, y, + TJAPlayer3.Tx.Gauge_Base[index].t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3])); } } @@ -276,23 +287,23 @@ namespace TJAPlayer3 } else { - x = TJAPlayer3.Skin.Game_Gauge_X[0]; - y = TJAPlayer3.Skin.Game_Gauge_Y[0]; + x = gauge_x[0]; + y = gauge_y[0]; } if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) { if (TJAPlayer3.P1IsBlue()) - TJAPlayer3.Tx.Gauge_Dan[5]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3])); + TJAPlayer3.Tx.Gauge_Dan[5]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3])); else - TJAPlayer3.Tx.Gauge_Dan[1]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3])); + TJAPlayer3.Tx.Gauge_Dan[1]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3])); for (int i = 0; i < TJAPlayer3.DTX.Dan_C.Length; i++) { if (TJAPlayer3.DTX.Dan_C[i] != null && TJAPlayer3.DTX.Dan_C[i].GetExamType() == Exam.Type.Gauge && db現在のゲージ値[0] >= TJAPlayer3.DTX.Dan_C[i].GetValue(false)) { TJAPlayer3.Tx.Gauge_Dan[3].Opacity = 255; - TJAPlayer3.Tx.Gauge_Dan[3]?.t2D描画(TJAPlayer3.app.Device, x + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), y, new Rectangle(0, 0, nRectX - (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Rect[3])); + TJAPlayer3.Tx.Gauge_Dan[3]?.t2D描画(TJAPlayer3.app.Device, x + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), y, new Rectangle(0, 0, nRectX[0] - (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Rect[3])); int Opacity = 0; if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0; @@ -309,15 +320,17 @@ namespace TJAPlayer3 else { if (TJAPlayer3.P1IsBlue()) - TJAPlayer3.Tx.Gauge[2]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3])); + TJAPlayer3.Tx.Gauge[2]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3])); else { - if (TJAPlayer3.Tx.Gauge[0] != null) - { - TJAPlayer3.Tx.Gauge[0].vc拡大縮小倍率.X = scale; - TJAPlayer3.Tx.Gauge[0].vc拡大縮小倍率.Y = scale; + int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 0 : 3; - TJAPlayer3.Tx.Gauge[0].t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3])); + if (TJAPlayer3.Tx.Gauge[index] != null) + { + TJAPlayer3.Tx.Gauge[index].vc拡大縮小倍率.X = scale; + TJAPlayer3.Tx.Gauge[index].vc拡大縮小倍率.Y = scale; + + TJAPlayer3.Tx.Gauge[index].t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3])); } } } @@ -358,18 +371,20 @@ namespace TJAPlayer3 TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].vc拡大縮小倍率.X = scale; TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].vc拡大縮小倍率.Y = scale; + bool smart = TJAPlayer3.ConfigIni.nPlayerCount > 2 || TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan; + TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].Opacity = 255; - TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, x, y + (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0), + TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, x, y + (smart ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0), new RectangleF(0, - TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0, + smart ? 22 : 0, TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Width, - TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height)); + smart ? TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height)); TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].Opacity = (ct虹透明度.n現在の値 * 255 / (int)ct虹透明度.n終了値)/1; - TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].t2D描画(TJAPlayer3.app.Device, x, y + (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0), - new RectangleF(0, - TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0, + TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].t2D描画(TJAPlayer3.app.Device, x, y + (smart ? 22 : 0), + new RectangleF(0, + smart ? 22 : 0, TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Width, - TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Height)); + smart ? TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Height)); } } @@ -383,7 +398,7 @@ namespace TJAPlayer3 } #region[ 「Clear」icon ] - if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.ConfigIni.nPlayerCount <= 2) { int text_x; int text_y; @@ -417,47 +432,83 @@ namespace TJAPlayer3 #region [ Gauge 2P ] - if( TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode && TJAPlayer3.Tx.Gauge[1] != null ) + for (int i = 1; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { - TJAPlayer3.Tx.Gauge[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1], new Rectangle( 0, 0, nRectX2P, TJAPlayer3.Skin.Game_Gauge_Rect[3]) ); - if (db現在のゲージ値[1] >= 80.0 && db現在のゲージ値[1] < 100.0) + int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 1 : i + 3; + if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode && TJAPlayer3.Tx.Gauge[index] != null) { - int Opacity = 0; - if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0; - else if (this.ctGaugeFlash.n現在の値 <= 448) Opacity = (int)((this.ctGaugeFlash.n現在の値 - 365) / 83f * 255f); - else if (this.ctGaugeFlash.n現在の値 <= 531) Opacity = 255 - (int)((this.ctGaugeFlash.n現在の値 - 448) / 83f * 255f); - TJAPlayer3.Tx.Gauge_Flash.Opacity = Opacity; - TJAPlayer3.Tx.Gauge_Flash.t2D上下反転描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1], - new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3])); - } - if (TJAPlayer3.Tx.Gauge[1] != null ) - { - if (this.db現在のゲージ値[1] >= 100.0) + TJAPlayer3.Tx.Gauge[index].t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i], new Rectangle(0, 0, nRectX[i], TJAPlayer3.Skin.Game_Gauge_Rect[3])); + if (db現在のゲージ値[i] >= 80.0 && db現在のゲージ値[i] < 100.0) { - this.ct虹アニメ.t進行Loop(); - this.ct虹透明度.t進行Loop(); - if (TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値] != null) + int Opacity = 0; + if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0; + else if (this.ctGaugeFlash.n現在の値 <= 448) Opacity = (int)((this.ctGaugeFlash.n現在の値 - 365) / 83f * 255f); + else if (this.ctGaugeFlash.n現在の値 <= 531) Opacity = 255 - (int)((this.ctGaugeFlash.n現在の値 - 448) / 83f * 255f); + TJAPlayer3.Tx.Gauge_Flash.Opacity = Opacity; + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) { - TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].Opacity = 255; - TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].t2D上下反転描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1]); - TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].Opacity = (int)(ct虹透明度.n現在の値 * 255 / ct虹透明度.n終了値) / 1; - TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].t2D上下反転描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1]); + TJAPlayer3.Tx.Gauge_Flash.t2D上下反転描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i], + new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3])); + } + else + { + TJAPlayer3.Tx.Gauge_Flash.t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i], + new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3])); } } - TJAPlayer3.Tx.Gauge_Line[1]?.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1]); + if (TJAPlayer3.Tx.Gauge[index] != null) + { + if (this.db現在のゲージ値[i] >= 100.0) + { + this.ct虹アニメ.t進行Loop(); + this.ct虹透明度.t進行Loop(); + if (TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値] != null) + { + TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].Opacity = 255; + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].t2D上下反転描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i]); + } + else + { + TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i] + 22, + new RectangleF(0, 22, + TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].szテクスチャサイズ.Width, + TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2))); + } + TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].Opacity = (int)(ct虹透明度.n現在の値 * 255 / ct虹透明度.n終了値) / 1; + + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].t2D上下反転描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i]); + } + else + { + TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i] + 22, + new RectangleF(0, 22, + TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Width, + TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2))); + } + } + } + TJAPlayer3.Tx.Gauge_Line[1]?.t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i]); + } + #region[ 「クリア」文字 ] + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + if (this.db現在のゲージ値[i] >= 80.0) + { + TJAPlayer3.Tx.Gauge[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_ClearText_X[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Y[1], + new Rectangle(TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[0], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[2], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[3])); + } + else + { + TJAPlayer3.Tx.Gauge[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_ClearText_X[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Y[1], + new Rectangle(TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[0], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[2], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[3])); + } + } + #endregion } - #region[ 「クリア」文字 ] - if( this.db現在のゲージ値[ 1 ] >= 80.0 ) - { - TJAPlayer3.Tx.Gauge[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_ClearText_X[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Y[1], - new Rectangle(TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[0], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[2], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[3])); - } - else - { - TJAPlayer3.Tx.Gauge[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_ClearText_X[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Y[1], - new Rectangle(TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[0], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[2], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[3])); - } - #endregion } #endregion @@ -480,8 +531,21 @@ namespace TJAPlayer3 } else { - x = TJAPlayer3.Skin.Gauge_Soul_Fire_X[i]; - y = TJAPlayer3.Skin.Gauge_Soul_Fire_Y[i]; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + x = TJAPlayer3.Skin.Gauge_Soul_Fire_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + y = TJAPlayer3.Skin.Gauge_Soul_Fire_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + x = TJAPlayer3.Skin.Gauge_Soul_Fire_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + y = TJAPlayer3.Skin.Gauge_Soul_Fire_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + else + { + x = TJAPlayer3.Skin.Gauge_Soul_Fire_X[i]; + y = TJAPlayer3.Skin.Gauge_Soul_Fire_Y[i]; + } } if ( this.db現在のゲージ値[ i ] >= 100.0) @@ -512,8 +576,21 @@ namespace TJAPlayer3 } else { - x = TJAPlayer3.Skin.Gauge_Soul_X[i]; - y = TJAPlayer3.Skin.Gauge_Soul_Y[i]; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + x = TJAPlayer3.Skin.Gauge_Soul_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + y = TJAPlayer3.Skin.Gauge_Soul_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + x = TJAPlayer3.Skin.Gauge_Soul_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + y = TJAPlayer3.Skin.Gauge_Soul_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + else + { + x = TJAPlayer3.Skin.Gauge_Soul_X[i]; + y = TJAPlayer3.Skin.Gauge_Soul_Y[i]; + } } TJAPlayer3.Tx.Gauge_Soul.vc拡大縮小倍率.X = scale; @@ -532,34 +609,22 @@ namespace TJAPlayer3 //仮置き int[] nSoulExplosion = new int[] { 73, 468, 0, 0 }; - for( int d = 0; d < 32; d++ ) + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { - if( this.st花火状態[d].b使用中 ) + for (int d = 0; d < 32; d++) { - this.st花火状態[d].ct進行.t進行(); - if (this.st花火状態[d].ct進行.b終了値に達した) + if (this.st花火状態[i][d].b使用中) { - this.st花火状態[d].ct進行.t停止(); - this.st花火状態[d].b使用中 = false; + this.st花火状態[i][d].ct進行.t進行(); + if (this.st花火状態[i][d].ct進行.b終了値に達した) + { + this.st花火状態[i][d].ct進行.t停止(); + this.st花火状態[i][d].b使用中 = false; + } + + + break; } - - - break; - } - } - for( int d = 0; d < 32; d++ ) - { - if (this.st花火状態2P[d].b使用中) - { - this.st花火状態2P[d].ct進行.t進行(); - if (this.st花火状態2P[d].ct進行.b終了値に達した) - { - this.st花火状態2P[d].ct進行.t停止(); - this.st花火状態2P[d].b使用中 = false; - } - - - break; } } } @@ -573,8 +638,13 @@ namespace TJAPlayer3 //----------------- private CCounter ctGaugeFlash; - protected STSTATUS[] st花火状態 = new STSTATUS[ 32 ]; - protected STSTATUS[] st花火状態2P = new STSTATUS[ 32 ]; + protected STSTATUS[][] st花火状態 = new STSTATUS[5][] { + new STSTATUS[ 32 ], + new STSTATUS[ 32 ], + new STSTATUS[ 32 ], + new STSTATUS[ 32 ], + new STSTATUS[ 32 ] + }; [StructLayout(LayoutKind.Sequential)] protected struct STSTATUS { diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsコンボ吹き出し.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsコンボ吹き出し.cs index 33938d62..3b0d59c7 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsコンボ吹き出し.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsコンボ吹き出し.cs @@ -72,8 +72,9 @@ namespace TJAPlayer3 { if( !base.b活性化してない ) { + if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return 0; for( int i = 0; i < 2; i++ ) - { + { if (TJAPlayer3.ConfigIni.bAIBattleMode) break; int j = i; @@ -159,10 +160,10 @@ namespace TJAPlayer3 #region [ private ] //----------------- - private CCounter[] ct進行 = new CCounter[ 2 ]; + private CCounter[] ct進行 = new CCounter[ 5 ]; //private CTexture[] tx吹き出し本体 = new CTexture[ 2 ]; //private CTexture tx数字; - private int[] nCombo_渡 = new int[ 2 ]; + private int[] nCombo_渡 = new int[ 5 ]; private int NowDrawBalloon; diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコア.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコア.cs index a0526fbc..fddc0b7e 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコア.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコア.cs @@ -33,7 +33,7 @@ namespace TJAPlayer3 //base.t小文字表示( 20, 150, string.Format( "{0,7:######0}", this.nスコアの増分.Guitar ) ); } - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) { if (!this.ct点数アニメタイマ[i].b停止中) { @@ -45,7 +45,7 @@ namespace TJAPlayer3 } } - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) { if (!this.ctボーナス加算タイマ[i].b停止中) { @@ -58,10 +58,50 @@ namespace TJAPlayer3 } } + int[] x = new int[5]; + int[] y = new int[5]; + int[] add_x = new int[5]; + int[] add_y = new int[5]; + int[] addBonus_x = new int[5]; + int[] addBonus_y = new int[5]; + + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + x[i] = TJAPlayer3.Skin.Game_Score_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + y[i] = TJAPlayer3.Skin.Game_Score_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + add_x[i] = TJAPlayer3.Skin.Game_Score_Add_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + add_y[i] = TJAPlayer3.Skin.Game_Score_Add_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + addBonus_x[i] = TJAPlayer3.Skin.Game_Score_AddBonus_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + addBonus_y[i] = TJAPlayer3.Skin.Game_Score_AddBonus_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + x[i] = TJAPlayer3.Skin.Game_Score_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + y[i] = TJAPlayer3.Skin.Game_Score_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + add_x[i] = TJAPlayer3.Skin.Game_Score_Add_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + add_y[i] = TJAPlayer3.Skin.Game_Score_Add_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + addBonus_x[i] = TJAPlayer3.Skin.Game_Score_AddBonus_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + addBonus_y[i] = TJAPlayer3.Skin.Game_Score_AddBonus_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + else + { + x[i] = TJAPlayer3.Skin.Game_Score_X[i]; + y[i] = TJAPlayer3.Skin.Game_Score_Y[i]; + add_x[i] = TJAPlayer3.Skin.Game_Score_Add_X[i]; + add_y[i] = TJAPlayer3.Skin.Game_Score_Add_Y[i]; + addBonus_x[i] = TJAPlayer3.Skin.Game_Score_AddBonus_X[i]; + addBonus_y[i] = TJAPlayer3.Skin.Game_Score_AddBonus_Y[i]; + } + } + //CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, this.ctボーナス加算タイマ[0].n現在の値.ToString()); - base.t小文字表示(TJAPlayer3.Skin.Game_Score_X[0], TJAPlayer3.Skin.Game_Score_Y[0], string.Format( "{0,7:######0}", this.n現在表示中のスコア[ 0 ].Taiko ), 0 , 256, 0); - if( TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode) base.t小文字表示(TJAPlayer3.Skin.Game_Score_X[1], TJAPlayer3.Skin.Game_Score_Y[1], string.Format( "{0,7:######0}", this.n現在表示中のスコア[ 1 ].Taiko ), 0 , 256, 1); + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + base.t小文字表示(x[i], y[i], string.Format("{0,7:######0}", this.n現在表示中のスコア[i].Taiko), 0, 256, i); + } for( int i = 0; i < 256; i++ ) { @@ -190,9 +230,9 @@ namespace TJAPlayer3 pl = 1; if ( this.n現在表示中のAddScore < 10 && this.stScore[ i ].bBonusScore == false ) - base.t小文字表示(TJAPlayer3.Skin.Game_Score_Add_X[this.stScore[i].nPlayer] + xAdd, this.stScore[ i ].nPlayer == 0 ? TJAPlayer3.Skin.Game_Score_Add_Y[ this.stScore[ i ].nPlayer ] + yAdd : TJAPlayer3.Skin.Game_Score_Add_Y[ this.stScore[ i ].nPlayer ] - yAdd, string.Format( "{0,7:######0}", this.stScore[ i ].nAddScore ), pl + 1 , alpha, stScore[i].nPlayer); + base.t小文字表示(add_x[this.stScore[i].nPlayer] + xAdd, this.stScore[ i ].nPlayer == 0 && TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? add_y[ this.stScore[ i ].nPlayer ] + yAdd : add_y[ this.stScore[ i ].nPlayer ] - yAdd, string.Format( "{0,7:######0}", this.stScore[ i ].nAddScore ), pl + 1 , alpha, stScore[i].nPlayer); if( this.n現在表示中のAddScore < 10 && this.stScore[ i ].bBonusScore == true ) - base.t小文字表示(TJAPlayer3.Skin.Game_Score_AddBonus_X[this.stScore[i].nPlayer] + xAdd, TJAPlayer3.Skin.Game_Score_AddBonus_Y[ this.stScore[ i ].nPlayer ], string.Format( "{0,7:######0}", this.stScore[ i ].nAddScore ), pl + 1 , alpha, stScore[i].nPlayer); + base.t小文字表示(addBonus_x[this.stScore[i].nPlayer] + xAdd, addBonus_y[ this.stScore[ i ].nPlayer ], string.Format( "{0,7:######0}", this.stScore[ i ].nAddScore ), pl + 1 , alpha, stScore[i].nPlayer); else { this.n現在表示中のAddScore--; diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコアランク.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコアランク.cs index f4b6a8e7..18da1fb3 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコアランク.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコアランク.cs @@ -23,16 +23,15 @@ namespace TJAPlayer3 } */ - this.ScoreRank = new int[] { 500000, 600000, 700000, 800000, 900000, 950000, - Math.Max(1000000, (int)(TJAPlayer3.stage演奏ドラム画面.nAddScoreNiji[0] * TJAPlayer3.stage演奏ドラム画面.nNoteCount[0]) + (int)(TJAPlayer3.stage演奏ドラム画面.nBalloonCount[0] * 100) + (int)(Math.Ceiling(TJAPlayer3.stage演奏ドラム画面.nRollTimeMs[0] * 16.6 / 10) * 100 * 10)) }; - - this.ScoreRank2P = new int[] { 500000, 600000, 700000, 800000, 900000, 950000, - Math.Max(1000000, (int)(TJAPlayer3.stage演奏ドラム画面.nAddScoreNiji[1] * TJAPlayer3.stage演奏ドラム画面.nNoteCount[1]) + (int)(TJAPlayer3.stage演奏ドラム画面.nBalloonCount[1] * 100) + (int)(Math.Ceiling(TJAPlayer3.stage演奏ドラム画面.nRollTimeMs[1] * 16.6 / 10) * 100 * 10)) }; - - for (int i = 0; i < 7; i++) - { - this.counter[i] = new CCounter(); - this.counterJ2[i] = new CCounter(); + for (int player = 0; player < 5; player++) + { + this.ScoreRank[player] = new int[] { 500000, 600000, 700000, 800000, 900000, 950000, + Math.Max(1000000, (int)(TJAPlayer3.stage演奏ドラム画面.nAddScoreNiji[player] * TJAPlayer3.stage演奏ドラム画面.nNoteCount[player]) + (int)(TJAPlayer3.stage演奏ドラム画面.nBalloonCount[player] * 100) + (int)(Math.Ceiling(TJAPlayer3.stage演奏ドラム画面.nRollTimeMs[player] * 16.6 / 10) * 100 * 10)) }; + + for (int i = 0; i < 7; i++) + { + this.counter[player][i] = new CCounter(); + } } base.On活性化(); } @@ -44,9 +43,7 @@ namespace TJAPlayer3 private void displayScoreRank(int i, int player, float x, float y, int mode = 0) { - CCounter cct = this.counter[i]; - if (player == 1) - cct = this.counterJ2[i]; + CCounter cct = this.counter[player][i]; CTexture tex = TJAPlayer3.Tx.ScoreRank; if (mode == 1) // tower @@ -86,12 +83,29 @@ namespace TJAPlayer3 if (cct.n現在の値 >= 2745 && cct.n現在の値 <= 3000) { tex.Opacity = 255 - ((cct.n現在の値 - 2745)); - x = ((cct.n現在の値 - 2745) / 255.0f) * (player == 0 ? -TJAPlayer3.Skin.Game_Judge_Move[0] : TJAPlayer3.Skin.Game_Judge_Move[0]); - y = ((cct.n現在の値 - 2745) / 255.0f) * (player == 0 ? -TJAPlayer3.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]); + x = ((cct.n現在の値 - 2745) / 255.0f) * (player == 0 || TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? -TJAPlayer3.Skin.Game_Judge_Move[0] : TJAPlayer3.Skin.Game_Judge_Move[0]); + y = ((cct.n現在の値 - 2745) / 255.0f) * (player == 0 || TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? -TJAPlayer3.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]); } - var xpos = TJAPlayer3.Skin.Game_ScoreRank_X[player] + (int)x; - var ypos = TJAPlayer3.Skin.Game_ScoreRank_Y[player] + (int)y; + var xpos = 0; + var ypos = 0; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + xpos = TJAPlayer3.Skin.Game_ScoreRank_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player); + ypos = TJAPlayer3.Skin.Game_ScoreRank_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + xpos = TJAPlayer3.Skin.Game_ScoreRank_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player); + ypos = TJAPlayer3.Skin.Game_ScoreRank_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player); + } + else + { + xpos = TJAPlayer3.Skin.Game_ScoreRank_X[player]; + ypos = TJAPlayer3.Skin.Game_ScoreRank_Y[player]; + } + xpos += (int)x; + ypos += (int)y; int width; int height; @@ -125,14 +139,17 @@ namespace TJAPlayer3 { if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) { - #region [Ensou score ranks] - counter[i].t進行(); - if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(0) >= ScoreRank[i]) + for (int player = 0; player < 5; player++) { - displayScoreRank(i, 0, x, y); + #region [Ensou score ranks] - #region [Legacy] + counter[player][i].t進行(); + if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(player) >= ScoreRank[player][i]) + { + displayScoreRank(i, player, x, y); + + #region [Legacy] /* if (!this.counter[i].b進行中) @@ -168,50 +185,9 @@ namespace TJAPlayer3 */ #endregion - } + } - x = 0; - counterJ2[i].t進行(); - if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(1) >= ScoreRank2P[i]) - { - displayScoreRank(i, 1, x, y); - - #region [Legacy] - - /* - if (!this.counterJ2[i].b進行中) - { - this.counterJ2[i].t開始(0, 3000, 1, TJAPlayer3.Timer); - } - if (counterJ2[i].n現在の値 <= 255) - { - TJAPlayer3.Tx.ScoreRank.Opacity = counterJ2[i].n現在の値; - x = 51 - (counterJ2[i].n現在の値 / 5.0f); - } - if (counterJ2[i].n現在の値 > 255 && counterJ2[i].n現在の値 <= 255 + 180) - { - TJAPlayer3.Tx.ScoreRank.Opacity = 255; - TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((counterJ2[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f; - TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((counterJ2[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f; - x = 0; - } - if (counterJ2[i].n現在の値 > 255 + 180 && counterJ2[i].n現在の値 <= 2745) - { - TJAPlayer3.Tx.ScoreRank.Opacity = 255; - TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f; - TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f; - x = 0; - } - if (counterJ2[i].n現在の値 >= 2745 && counterJ2[i].n現在の値 <= 3000) - { - TJAPlayer3.Tx.ScoreRank.Opacity = 255 - ((counterJ2[i].n現在の値 - 2745)); - x = -((counterJ2[i].n現在の値 - 2745) / 5.0f); - } - - TJAPlayer3.Tx.ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 87, 720 - (98 + (int)x), new System.Drawing.Rectangle(0, i == 0 ? i * 114 : i * 120, 140, i == 0 ? 114 : 120)); - */ - - #endregion + x = 0; } #endregion } @@ -232,7 +208,7 @@ namespace TJAPlayer3 TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0 }; - counter[i].t進行(); + counter[0][i].t進行(); bool satisfied = true; for (int j = 0; j <= i; j++) @@ -261,9 +237,13 @@ namespace TJAPlayer3 return base.On進行描画(); } - public int[] ScoreRank; - public int[] ScoreRank2P; - private CCounter[] counter = new CCounter[7]; - private CCounter[] counterJ2 = new CCounter[7]; + public int[][] ScoreRank = new int[5][]; + private CCounter[][] counter = new CCounter[5][] { + new CCounter[7], + new CCounter[7], + new CCounter[7], + new CCounter[7], + new CCounter[7] + }; } } diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsチップファイアD.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsチップファイアD.cs index 0e772d91..af85041c 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsチップファイアD.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsチップファイアD.cs @@ -267,8 +267,25 @@ namespace TJAPlayer3 if( TJAPlayer3.Tx.Effects_Hit_Explosion != null && !TJAPlayer3.IsPerformingCalibration ) { int n = this.st状態[ i ].nIsBig == 1 ? (nHeight * 2) : 0; - int nX = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[this.st状態[i].nPlayer]; - int nY = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[this.st状態[i].nPlayer]; + + int nX = 0; + int nY = 0; + + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + nX = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * this.st状態[i].nPlayer); + nY = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * this.st状態[i].nPlayer); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + nX = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * this.st状態[i].nPlayer); + nY = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * this.st状態[i].nPlayer); + } + else + { + nX = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[this.st状態[i].nPlayer]; + nY = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[this.st状態[i].nPlayer]; + } switch( st状態[ i ].judge ) { @@ -340,8 +357,27 @@ namespace TJAPlayer3 TJAPlayer3.Tx.Effects_Hit_Explosion_Big.t3D描画( TJAPlayer3.app.Device, mat ); */ - float x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[this.st状態_大[i].nPlayer] - (TJAPlayer3.Tx.Effects_Hit_Explosion_Big.szテクスチャサイズ.Width * (f倍率 - 1.0f) / 2.0f); - float y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[this.st状態_大[i].nPlayer] - (TJAPlayer3.Tx.Effects_Hit_Explosion_Big.szテクスチャサイズ.Height * (f倍率 - 1.0f) / 2.0f); + float x = 0; + float y = 0; + + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * this.st状態[i].nPlayer); + y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * this.st状態[i].nPlayer); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * this.st状態[i].nPlayer); + y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * this.st状態[i].nPlayer); + } + else + { + x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[this.st状態[i].nPlayer]; + y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[this.st状態[i].nPlayer]; + } + + x -= (TJAPlayer3.Tx.Effects_Hit_Explosion_Big.szテクスチャサイズ.Width * (f倍率 - 1.0f) / 2.0f); + y -= (TJAPlayer3.Tx.Effects_Hit_Explosion_Big.szテクスチャサイズ.Height * (f倍率 - 1.0f) / 2.0f); TJAPlayer3.Tx.Effects_Hit_Explosion_Big.vc拡大縮小倍率.X = f倍率; TJAPlayer3.Tx.Effects_Hit_Explosion_Big.vc拡大縮小倍率.Y = f倍率; diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン.cs index 33ec66ff..dbbbf117 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン.cs @@ -27,14 +27,14 @@ namespace TJAPlayer3 public override void OnManagedリソースの作成() { - this.ct分岐アニメ進行 = new CCounter[ 4 ]; - this.nBefore = new CDTX.ECourse[ 4 ]; - this.nAfter = new CDTX.ECourse[ 4 ]; + this.ct分岐アニメ進行 = new CCounter[ 5 ]; + this.nBefore = new CDTX.ECourse[ 5 ]; + this.nAfter = new CDTX.ECourse[ 5 ]; for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) { this.ct分岐アニメ進行[ i ] = new CCounter(); - this.nBefore = new CDTX.ECourse[ 4 ]; - this.nAfter = new CDTX.ECourse[ 4 ]; + this.nBefore = new CDTX.ECourse[ 5 ]; + this.nAfter = new CDTX.ECourse[ 5 ]; this.bState[ i ] = false; } if (TJAPlayer3.Tx.Lane_Base[0] != null) @@ -63,11 +63,32 @@ namespace TJAPlayer3 this.ct分岐アニメ進行[ i ].t停止(); } } + } + + int[] x = new int[5]; + int[] y = new int[5]; + + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + x[i] = TJAPlayer3.Skin.Game_Lane_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * i); + y[i] = TJAPlayer3.Skin.Game_Lane_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + x[i] = TJAPlayer3.Skin.Game_Lane_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * i); + y[i] = TJAPlayer3.Skin.Game_Lane_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * i); + } + else + { + x[i] = TJAPlayer3.Skin.Game_Lane_X[i]; + y[i] = TJAPlayer3.Skin.Game_Lane_Y[i]; + } } - //アニメーション中の分岐レイヤー(背景)の描画を行う。 - for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) { if( TJAPlayer3.stage演奏ドラム画面.bUseBranch[ i ] == true ) { @@ -94,28 +115,28 @@ namespace TJAPlayer3 if (nBefore[i] == 0 && nAfter[i] == CDTX.ECourse.eNormal) { TJAPlayer3.Tx.Lane_Base[1].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 ); - TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); - TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); } //普通→達人 if (nBefore[i] == 0 && nAfter[i] == CDTX.ECourse.eMaster) { - TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); if( this.ct分岐アニメ進行[ i ].n現在の値 < 100 ) { TJAPlayer3.Tx.Lane_Base[1].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 ); - TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); } else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 100 && this.ct分岐アニメ進行[ i ].n現在の値 < 150 ) { TJAPlayer3.Tx.Lane_Base[1].Opacity = 255; - TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); } else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 150 ) { - TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); TJAPlayer3.Tx.Lane_Base[2].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 250 ? 255 : ( ( (this.ct分岐アニメ進行[ i ].n現在の値 - 150) * 0xff ) / 100 ); - TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); } } #endregion @@ -123,47 +144,47 @@ namespace TJAPlayer3 #region[ 玄人譜面_レベルアップ ] if (nBefore[i] == CDTX.ECourse.eExpert && nAfter[i] == CDTX.ECourse.eMaster) { - TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); TJAPlayer3.Tx.Lane_Base[2].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 ); - TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); } #endregion #region[ 玄人譜面_レベルダウン ] if (nBefore[i] == CDTX.ECourse.eExpert && nAfter[i] == CDTX.ECourse.eNormal) { - TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); TJAPlayer3.Tx.Lane_Base[0].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 ); - TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); } #endregion #region[ 達人譜面_レベルダウン ] if (nBefore[i] == CDTX.ECourse.eMaster && nAfter[i] == CDTX.ECourse.eNormal) { - TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); if( this.ct分岐アニメ進行[ i ].n現在の値 < 100 ) { TJAPlayer3.Tx.Lane_Base[1].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 ); - TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); } else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 100 && this.ct分岐アニメ進行[ i ].n現在の値 < 150 ) { TJAPlayer3.Tx.Lane_Base[1].Opacity = 255; - TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); } else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 150 ) { - TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); TJAPlayer3.Tx.Lane_Base[0].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 250 ? 255 : ( ( ( this.ct分岐アニメ進行[ i ].n現在の値 - 150 ) * 0xff ) / 100 ); - TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); } } if (nBefore[i] == CDTX.ECourse.eMaster && nAfter[i] == CDTX.ECourse.eExpert) { - TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); TJAPlayer3.Tx.Lane_Base[2].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 ); - TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] ); + TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] ); } #endregion } @@ -187,11 +208,11 @@ namespace TJAPlayer3 #region[ private ] //----------------- - public bool[] bState = new bool[4]; - public CCounter[] ct分岐アニメ進行 = new CCounter[4]; + public bool[] bState = new bool[5]; + public CCounter[] ct分岐アニメ進行 = new CCounter[5]; private CDTX.ECourse[] nBefore; private CDTX.ECourse[] nAfter; - private int[] n透明度 = new int[4]; + private int[] n透明度 = new int[5]; //private CTexture[] tx普通譜面 = new CTexture[2]; //private CTexture[] tx玄人譜面 = new CTexture[2]; //private CTexture[] tx達人譜面 = new CTexture[2]; diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン太鼓.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン太鼓.cs index ee365da9..f6b4bf08 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン太鼓.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン太鼓.cs @@ -27,7 +27,7 @@ namespace TJAPlayer3 public override void On活性化() { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) { this.st状態[i].ct進行 = new CCounter(); this.stBranch[i].ct分岐アニメ進行 = new CCounter(); @@ -51,7 +51,7 @@ namespace TJAPlayer3 public override void On非活性化() { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) { this.st状態[i].ct進行 = null; this.stBranch[i].ct分岐アニメ進行 = null; @@ -79,22 +79,45 @@ namespace TJAPlayer3 { if (base.b初めての進行描画) { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) this.stBranch[i].nフラッシュ制御タイマ = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); base.b初めての進行描画 = false; } //それぞれが独立したレイヤーでないといけないのでforループはパーツごとに分離すること。 - + #region[ レーン本体 ] - + + + int[] x = new int[5]; + int[] y = new int[5]; + + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + x[i] = TJAPlayer3.Skin.Game_Lane_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + y[i] = TJAPlayer3.Skin.Game_Lane_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + x[i] = TJAPlayer3.Skin.Game_Lane_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + y[i] = TJAPlayer3.Skin.Game_Lane_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + else + { + x[i] = TJAPlayer3.Skin.Game_Lane_X[i]; + y[i] = TJAPlayer3.Skin.Game_Lane_Y[i]; + } + } + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { if (i == 1 && TJAPlayer3.ConfigIni.bAIBattleMode && TJAPlayer3.Tx.Lane_Background_AI != null) - TJAPlayer3.Tx.Lane_Background_AI?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Background_AI?.t2D描画(TJAPlayer3.app.Device, x[i], y[i]); else - TJAPlayer3.Tx.Lane_Background_Main?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Background_Main?.t2D描画(TJAPlayer3.app.Device, x[i], y[i]); } #endregion @@ -149,21 +172,21 @@ namespace TJAPlayer3 if (TJAPlayer3.Tx.Lane_Base[0] != null) { TJAPlayer3.Tx.Lane_Base[0].Opacity = 255; - TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); } break; case CDTX.ECourse.eExpert: if (TJAPlayer3.Tx.Lane_Base[1] != null) { TJAPlayer3.Tx.Lane_Base[1].Opacity = 255; - TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); } break; case CDTX.ECourse.eMaster: if (TJAPlayer3.Tx.Lane_Base[2] != null) { TJAPlayer3.Tx.Lane_Base[2].Opacity = 255; - TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); } break; } @@ -188,9 +211,9 @@ namespace TJAPlayer3 { if (TJAPlayer3.Tx.Lane_Base[0] != null && TJAPlayer3.Tx.Lane_Base[1] != null) { - TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); TJAPlayer3.Tx.Lane_Base[1].Opacity = this.stBranch[i].nBranchレイヤー透明度; - TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); } } //普通→達人 @@ -202,8 +225,8 @@ namespace TJAPlayer3 } if (TJAPlayer3.Tx.Lane_Base[0] != null && TJAPlayer3.Tx.Lane_Base[2] != null) { - TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); - TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); + TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); TJAPlayer3.Tx.Lane_Base[2].Opacity = this.stBranch[i].nBranchレイヤー透明度; } } @@ -213,8 +236,8 @@ namespace TJAPlayer3 { if (TJAPlayer3.Tx.Lane_Base[1] != null && TJAPlayer3.Tx.Lane_Base[2] != null) { - TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); - TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); + TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); TJAPlayer3.Tx.Lane_Base[2].Opacity = this.stBranch[i].nBranchレイヤー透明度; } } @@ -224,8 +247,8 @@ namespace TJAPlayer3 { if (TJAPlayer3.Tx.Lane_Base[1] != null && TJAPlayer3.Tx.Lane_Base[0] != null) { - TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); - TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); + TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); TJAPlayer3.Tx.Lane_Base[0].Opacity = this.stBranch[i].nBranchレイヤー透明度; } } @@ -235,8 +258,8 @@ namespace TJAPlayer3 { if (TJAPlayer3.Tx.Lane_Base[2] != null && TJAPlayer3.Tx.Lane_Base[0] != null) { - TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); - TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); + TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); TJAPlayer3.Tx.Lane_Base[0].Opacity = this.stBranch[i].nBranchレイヤー透明度; } } @@ -265,27 +288,27 @@ namespace TJAPlayer3 if (this.ctゴーゴー.n現在の値 <= 4) { TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.2f; - TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + 54); + TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, x[i], y[i] + 54); } else if (this.ctゴーゴー.n現在の値 <= 5) { TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.4f; - TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + 40); + TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, x[i], y[i] + 40); } else if (this.ctゴーゴー.n現在の値 <= 6) { TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.6f; - TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + 26); + TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, x[i], y[i] + 26); } else if (this.ctゴーゴー.n現在の値 <= 8) { TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.8f; - TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + 13); + TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, x[i], y[i] + 13); } else if (this.ctゴーゴー.n現在の値 >= 9) { TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 1.0f; - TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, x[i], y[i]); } } #endregion @@ -319,15 +342,15 @@ namespace TJAPlayer3 { case CDTX.ECourse.eNormal: TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; - TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); break; case CDTX.ECourse.eExpert: TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); break; case CDTX.ECourse.eMaster: TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; - TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); break; } } @@ -346,14 +369,14 @@ namespace TJAPlayer3 if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) { this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; - TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i] + this.stBranch[i].nY); TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 30) + this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 30) + this.stBranch[i].nY); } else { TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); } } @@ -367,9 +390,9 @@ namespace TJAPlayer3 if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) { this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; - TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 12) + this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 12) + this.stBranch[i].nY); TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 100)); - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 20) + this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 20) + this.stBranch[i].nY); } //if( this.stBranch[ i ].ct分岐アニメ進行.n現在の値 >= 5 && this.stBranch[ i ].ct分岐アニメ進行.n現在の値 < 60 ) //{ @@ -381,21 +404,21 @@ namespace TJAPlayer3 else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 60 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 150) { this.stBranch[i].nY = 21; - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; } else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 150 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 210) { this.stBranch[i].nY = ((this.stBranch[i].ct分岐アニメ進行.n現在の値 - 150) / 2); - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i] + this.stBranch[i].nY); TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 100)); - TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 20) + this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 20) + this.stBranch[i].nY); } else { TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; - TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); } } #endregion @@ -411,12 +434,12 @@ namespace TJAPlayer3 if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) { this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + this.stBranch[i].nY); - TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 20) + this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i] + this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 20) + this.stBranch[i].nY); } else { - TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); } } #endregion @@ -431,12 +454,12 @@ namespace TJAPlayer3 if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) { this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY); - TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 30) - this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 30) - this.stBranch[i].nY); } else { - TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); } } #endregion @@ -451,27 +474,27 @@ namespace TJAPlayer3 { this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 60)); - TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY); - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 30) - this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 30) - this.stBranch[i].nY); } else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 60 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 150) { this.stBranch[i].nY = 21; - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; } else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 150 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 210) { this.stBranch[i].nY = ((this.stBranch[i].ct分岐アニメ進行.n現在の値 - 150) / 2); - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY); TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 100)); - TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 30) - this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 30) - this.stBranch[i].nY); } else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 210) { TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; - TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); } } if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) @@ -484,12 +507,12 @@ namespace TJAPlayer3 if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) { this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; - TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY); - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 30) - this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 30) - this.stBranch[i].nY); } else { - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); } } @@ -509,15 +532,15 @@ namespace TJAPlayer3 { case CDTX.ECourse.eNormal: TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; - TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); break; case CDTX.ECourse.eExpert: TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); break; case CDTX.ECourse.eMaster: TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; - TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]); break; } } @@ -528,15 +551,15 @@ namespace TJAPlayer3 //普通→玄人 if (this.stBranch[i].nBefore == CDTX.ECourse.eNormal && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) { - TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY座標); - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 20) - this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 20) - this.stBranch[i].nY座標); TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].nBranchレイヤー透明度; } //普通→達人 if (this.stBranch[i].nBefore == CDTX.ECourse.eNormal && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) { - TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY座標); - TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 20) - this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 20) - this.stBranch[i].nY座標); TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].nBranchレイヤー透明度; } #endregion @@ -544,30 +567,30 @@ namespace TJAPlayer3 //玄人→達人 if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) { - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY座標); - TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 20) - this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 20) - this.stBranch[i].nY座標); TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].nBranchレイヤー透明度; } #endregion #region[ 玄人譜面_レベルダウン ] if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) { - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + this.stBranch[i].nY座標); - TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 24) + this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i] + this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 24) + this.stBranch[i].nY座標); TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].nBranchレイヤー透明度; } #endregion #region[ 達人譜面_レベルダウン ] if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) { - TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + this.stBranch[i].nY座標); - TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 24) + this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i] + this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 24) + this.stBranch[i].nY座標); TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].nBranchレイヤー透明度; } if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) { - TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + this.stBranch[i].nY座標); - TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 24) + this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i] + this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 24) + this.stBranch[i].nY座標); TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].nBranchレイヤー透明度; } #endregion @@ -578,13 +601,15 @@ namespace TJAPlayer3 } - - if (TJAPlayer3.Tx.Lane_Background_Sub != null) + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) { - TJAPlayer3.Tx.Lane_Background_Sub.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_Sub_X[0], TJAPlayer3.Skin.Game_Lane_Sub_Y[0]); - if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay) + if (TJAPlayer3.Tx.Lane_Background_Sub != null) { - TJAPlayer3.Tx.Lane_Background_Sub.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_Sub_X[1], TJAPlayer3.Skin.Game_Lane_Sub_Y[1]); + TJAPlayer3.Tx.Lane_Background_Sub.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_Sub_X[0], TJAPlayer3.Skin.Game_Lane_Sub_Y[0]); + if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay) + { + TJAPlayer3.Tx.Lane_Background_Sub.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_Sub_X[1], TJAPlayer3.Skin.Game_Lane_Sub_Y[1]); + } } } @@ -596,6 +621,85 @@ namespace TJAPlayer3 if (TJAPlayer3.Tx.Taiko_Frame[0] != null) { // Tower frame (without tamashii jauge) if playing a tower chart + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + int frame_x; + int frame_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + frame_x = TJAPlayer3.Skin.Game_Taiko_Frame_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + frame_y = TJAPlayer3.Skin.Game_Taiko_Frame_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + frame_x = TJAPlayer3.Skin.Game_Taiko_Frame_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + frame_y = TJAPlayer3.Skin.Game_Taiko_Frame_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + else + { + frame_x = TJAPlayer3.Skin.Game_Taiko_Frame_X[i]; + frame_y = TJAPlayer3.Skin.Game_Taiko_Frame_Y[i]; + } + + CTexture tex = null; + + switch (i) + { + case 0: + { + if (TJAPlayer3.ConfigIni.bTokkunMode) + { + tex = TJAPlayer3.Tx.Taiko_Frame[3]; + } + else if (TJAPlayer3.ConfigIni.bAIBattleMode) + { + tex = TJAPlayer3.Tx.Taiko_Frame[5]; + } + else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower) + { + tex = TJAPlayer3.Tx.Taiko_Frame[2]; + } + else if (TJAPlayer3.ConfigIni.nPlayerCount > 2) + { + tex = TJAPlayer3.Tx.Taiko_Frame[6]; + } + else + { + tex = TJAPlayer3.Tx.Taiko_Frame[0]; + } + } + break; + case 1: + { + if (TJAPlayer3.ConfigIni.bAIBattleMode) + { + tex = TJAPlayer3.Tx.Taiko_Frame[4]; + } + else if (TJAPlayer3.ConfigIni.nPlayerCount > 2) + { + tex = TJAPlayer3.Tx.Taiko_Frame[6]; + } + else + { + tex = TJAPlayer3.Tx.Taiko_Frame[1]; + } + } + break; + case 2: + tex = TJAPlayer3.Tx.Taiko_Frame[6]; + break; + case 3: + tex = TJAPlayer3.Tx.Taiko_Frame[6]; + break; + case 4: + tex = TJAPlayer3.Tx.Taiko_Frame[6]; + break; + } + + tex?.t2D描画(TJAPlayer3.app.Device, frame_x, frame_y); + } + + /* if (TJAPlayer3.ConfigIni.bTokkunMode == true && TJAPlayer3.Tx.Taiko_Frame[3] != null) TJAPlayer3.Tx.Taiko_Frame[3]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Frame_X[0], TJAPlayer3.Skin.Game_Taiko_Frame_Y[0]); else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower && TJAPlayer3.Tx.Taiko_Frame[2] != null) @@ -612,6 +716,7 @@ namespace TJAPlayer3 else TJAPlayer3.Tx.Taiko_Frame[1]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Frame_X[1], TJAPlayer3.Skin.Game_Taiko_Frame_Y[1]); } + */ } var nTime = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); @@ -684,10 +789,10 @@ namespace TJAPlayer3 if (TJAPlayer3.Tx.Judge_Frame != null) { TJAPlayer3.Tx.Judge_Frame.b加算合成 = TJAPlayer3.Skin.Game_JudgeFrame_AddBlend; - TJAPlayer3.Tx.Judge_Frame.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldX[0], TJAPlayer3.Skin.nScrollFieldY[0], new Rectangle(0, 0, TJAPlayer3.Skin.Game_Notes_Size[0], TJAPlayer3.Skin.Game_Notes_Size[1])); - - if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay) - TJAPlayer3.Tx.Judge_Frame.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldX[1], TJAPlayer3.Skin.nScrollFieldY[1], new Rectangle(0, 0, TJAPlayer3.Skin.Game_Notes_Size[0], TJAPlayer3.Skin.Game_Notes_Size[1])); + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + TJAPlayer3.Tx.Judge_Frame.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.stage演奏ドラム画面.NoteOriginX[i], TJAPlayer3.stage演奏ドラム画面.NoteOriginY[i], new Rectangle(0, 0, TJAPlayer3.Skin.Game_Notes_Size[0], TJAPlayer3.Skin.Game_Notes_Size[1])); + } } @@ -718,8 +823,24 @@ namespace TJAPlayer3 int width = TJAPlayer3.Tx.Effects_Fire.szテクスチャサイズ.Width / 7; int height = TJAPlayer3.Tx.Effects_Fire.szテクスチャサイズ.Height; - float x = TJAPlayer3.Skin.Game_Effect_Fire_X[i] - (width * (f倍率 - 1.0f) / 2.0f); - float y = TJAPlayer3.Skin.Game_Effect_Fire_Y[i] - (height * (f倍率 - 1.0f) / 2.0f); + float x = -(width * (f倍率 - 1.0f) / 2.0f); + float y = -(height * (f倍率 - 1.0f) / 2.0f); + + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + x += TJAPlayer3.Skin.Game_Effect_Fire_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + y += TJAPlayer3.Skin.Game_Effect_Fire_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + x += TJAPlayer3.Skin.Game_Effect_Fire_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + y += TJAPlayer3.Skin.Game_Effect_Fire_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + else + { + x += TJAPlayer3.Skin.Game_Effect_Fire_X[i]; + y += TJAPlayer3.Skin.Game_Effect_Fire_Y[i]; + } TJAPlayer3.Tx.Effects_Fire.vc拡大縮小倍率.X = f倍率; TJAPlayer3.Tx.Effects_Fire.vc拡大縮小倍率.Y = f倍率; @@ -744,8 +865,24 @@ namespace TJAPlayer3 //this.txアタックエフェクトLower.b加算合成 = true; int n = this.st状態[i].nIsBig == 1 ? 520 : 0; - float x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[i]; - float y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[i]; + float x = 0; + float y = 0; + + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i); + y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i); + y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i); + } + else + { + x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[i]; + y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[i]; + } switch (st状態[i].judge) { @@ -881,7 +1018,7 @@ namespace TJAPlayer3 //private CTextureAf txアタックエフェクトLower; - protected STSTATUS[] st状態 = new STSTATUS[4]; + protected STSTATUS[] st状態 = new STSTATUS[5]; //private CTexture[] txゴーゴースプラッシュ; @@ -900,7 +1037,7 @@ namespace TJAPlayer3 - public STBRANCH[] stBranch = new STBRANCH[4]; + public STBRANCH[] stBranch = new STBRANCH[5]; [StructLayout(LayoutKind.Sequential)] public struct STBRANCH { @@ -929,7 +1066,7 @@ namespace TJAPlayer3 private int n移動目的場所X2; private int n移動方向2; - internal int[,] nDefaultJudgePos = new int[2, 2]; + internal int[,] nDefaultJudgePos = new int[5, 2]; //----------------- diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums判定文字列.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums判定文字列.cs index 60a7aea5..1f397816 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums判定文字列.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums判定文字列.cs @@ -19,11 +19,14 @@ namespace TJAPlayer3 public override void On活性化() { - JudgeAnimes = new JudgeAnime[2, 512]; + JudgeAnimes = new JudgeAnime[5, 512]; for (int i = 0; i < 512; i++) { JudgeAnimes[0, i] = new JudgeAnime(); JudgeAnimes[1, i] = new JudgeAnime(); + JudgeAnimes[2, i] = new JudgeAnime(); + JudgeAnimes[3, i] = new JudgeAnime(); + JudgeAnimes[4, i] = new JudgeAnime(); } base.On活性化(); } @@ -34,7 +37,10 @@ namespace TJAPlayer3 { JudgeAnimes[0, i] = null; JudgeAnimes[1, i] = null; - } + JudgeAnimes[2, i] = null; + JudgeAnimes[3, i] = null; + JudgeAnimes[4, i] = null; + } base.On非活性化(); } @@ -45,7 +51,7 @@ namespace TJAPlayer3 { for (int i = 0; i < 512; i++) { - for(int j = 0; j < 2; j++) + for(int j = 0; j < 5; j++) { if (JudgeAnimes[j, i].counter.b停止中) continue; JudgeAnimes[j, i].counter.t進行(); @@ -54,8 +60,27 @@ namespace TJAPlayer3 { float moveValue = CubicEaseOut(JudgeAnimes[j, i].counter.n現在の値 / 410.0f) - 1.0f; - float x = TJAPlayer3.Skin.Game_Judge_X[j] + (moveValue * TJAPlayer3.Skin.Game_Judge_Move[0]); - float y = TJAPlayer3.Skin.Game_Judge_Y[j] + (moveValue * TJAPlayer3.Skin.Game_Judge_Move[1]); + float x = 0; + float y = 0; + + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + x = TJAPlayer3.Skin.Game_Judge_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * j); + y = TJAPlayer3.Skin.Game_Judge_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * j); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + x = TJAPlayer3.Skin.Game_Judge_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * j); + y = TJAPlayer3.Skin.Game_Judge_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * j); + } + else + { + x = TJAPlayer3.Skin.Game_Judge_X[j]; + y = TJAPlayer3.Skin.Game_Judge_Y[j]; + } + x += (moveValue * TJAPlayer3.Skin.Game_Judge_Move[0]); + y += (moveValue * TJAPlayer3.Skin.Game_Judge_Move[1]); + TJAPlayer3.Tx.Judge.Opacity = (int)(255f - (JudgeAnimes[j, i].counter.n現在の値 >= 360 ? ((JudgeAnimes[j, i].counter.n現在の値 - 360) / 50.0f) * 255f : 0f)); TJAPlayer3.Tx.Judge.t2D描画(TJAPlayer3.app.Device, x, y, JudgeAnimes[j, i].rc); } diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums演奏終了演出.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums演奏終了演出.cs index 3fda2c36..35501e83 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums演奏終了演出.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums演奏終了演出.cs @@ -122,7 +122,7 @@ namespace TJAPlayer3 public override void On活性化() { this.bリザルトボイス再生済み = false; - this.Mode = new EndMode[2]; + this.Mode = new EndMode[5]; base.On活性化(); } @@ -139,7 +139,7 @@ namespace TJAPlayer3 { var origindir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.END}"); - FailedScript = new EndAnimeScript($@"{origindir}ClearFailed\Script.lua"); + FailedScript = new EndAnimeScript($@"{origindir}ClearFailed\Script.lua");//ClearFailed FailedScript.Init(); ClearScript = new EndAnimeScript($@"{origindir}Clear\Script.lua"); @@ -535,10 +535,10 @@ namespace TJAPlayer3 */ CCounter ct進行Loop; - CSound[] soundClear = new CSound[4]; - CSound[] soundFailed = new CSound[4]; - CSound[] soundFullCombo = new CSound[4]; - CSound[] soundDondaFullCombo = new CSound[4]; + CSound[] soundClear = new CSound[5]; + CSound[] soundFailed = new CSound[5]; + CSound[] soundFullCombo = new CSound[5]; + CSound[] soundDondaFullCombo = new CSound[5]; EndMode[] Mode; enum EndMode { diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打.cs index 7c24ffc2..7bbb1dbf 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打.cs @@ -65,25 +65,25 @@ namespace TJAPlayer3 public override void On活性化() { - this.ct連打枠カウンター = new CCounter[ 4 ]; - this.ct連打アニメ = new CCounter[4]; - FadeOut = new Animations.FadeOut[4]; - for ( int i = 0; i < 4; i++ ) + this.ct連打枠カウンター = new CCounter[ 5 ]; + this.ct連打アニメ = new CCounter[5]; + FadeOut = new Animations.FadeOut[5]; + for ( int i = 0; i < 5; i++ ) { this.ct連打枠カウンター[ i ] = new CCounter(); this.ct連打アニメ[i] = new CCounter(); // 後から変えれるようにする。大体10フレーム分。 FadeOut[i] = new Animations.FadeOut(167); } - this.b表示 = new bool[]{ false, false, false, false }; - this.n連打数 = new int[ 4 ]; + this.b表示 = new bool[]{ false, false, false, false, false }; + this.n連打数 = new int[ 5 ]; base.On活性化(); } public override void On非活性化() { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 5; i++) { ct連打枠カウンター[i] = null; ct連打アニメ[i] = null; @@ -109,6 +109,8 @@ namespace TJAPlayer3 public int On進行描画( int n連打数, int player ) { + if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return base.On進行描画(); + this.ct連打枠カウンター[ player ].t進行(); this.ct連打アニメ[player].t進行(); FadeOut[player].Tick(); diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打キャラ.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打キャラ.cs index 5d5df68a..14ed84ca 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打キャラ.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打キャラ.cs @@ -172,6 +172,9 @@ namespace TJAPlayer3 // } //} + + if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return 0; + for (int i = 0; i < 128; i++) { if(RollCharas[i].IsUsing) diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums風船.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums風船.cs index e3011097..2c8b5f44 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums風船.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums風船.cs @@ -67,8 +67,8 @@ namespace TJAPlayer3 { this.ct風船終了 = new CCounter(); this.ct風船ふきだしアニメ = new CCounter(); - this.ct風船アニメ = new CCounter[4]; - for (int i = 0; i < 4; i++) + this.ct風船アニメ = new CCounter[5]; + for (int i = 0; i < 5; i++) { this.ct風船アニメ[i] = new CCounter(); } @@ -146,22 +146,56 @@ namespace TJAPlayer3 if (n連打数 != 0) { + int x; + int y; + int frame_x; + int frame_y; + int num_x; + int num_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + x = TJAPlayer3.Skin.Game_Balloon_Balloon_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player); + y = TJAPlayer3.Skin.Game_Balloon_Balloon_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player); + frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player); + frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player); + num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player); + num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + x = TJAPlayer3.Skin.Game_Balloon_Balloon_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player); + y = TJAPlayer3.Skin.Game_Balloon_Balloon_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player); + frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player); + frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player); + num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_4P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player); + num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_4P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player); + } + else + { + x = TJAPlayer3.Skin.Game_Balloon_Balloon_X[player]; + y = TJAPlayer3.Skin.Game_Balloon_Balloon_Y[player]; + frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_X[player]; + frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_Y[player]; + num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_X[player]; + num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Y[player]; + } //1P:0 2P:245 //if (CDTXMania.Tx.Chara_Balloon_Breaking != null && CDTXMania.ConfigIni.ShowChara) // CDTXMania.Tx.Chara_Balloon_Breaking.t2D描画(CDTXMania.app.Device, CDTXMania.Skin.Game_Chara_Balloon_X[player], CDTXMania.Skin.Game_Chara_Balloon_Y[player]); for (int j = 0; j < 5; j++) { + if (n残り打数[j] < n連打数) { if (TJAPlayer3.Tx.Balloon_Breaking[j] != null) - TJAPlayer3.Tx.Balloon_Breaking[j].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Balloon_Balloon_X[player] + (this.ct風船ふきだしアニメ.n現在の値 == 1 ? 3 : 0), TJAPlayer3.Skin.Game_Balloon_Balloon_Y[player]); + TJAPlayer3.Tx.Balloon_Breaking[j].t2D描画(TJAPlayer3.app.Device, x + (this.ct風船ふきだしアニメ.n現在の値 == 1 ? 3 : 0), y); break; } } //1P:31 2P:329 if (TJAPlayer3.Tx.Balloon_Balloon != null) - TJAPlayer3.Tx.Balloon_Balloon.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_X[player], TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_Y[player]); - this.t文字表示(TJAPlayer3.Skin.Game_Balloon_Balloon_Number_X[player], TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Y[player], n連打数, player); + TJAPlayer3.Tx.Balloon_Balloon.t2D描画(TJAPlayer3.app.Device, frame_x, frame_y); + this.t文字表示(num_x, num_y, n連打数, player); //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, n連打数.ToString() ); } if (n連打数 == 0 && TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player]) diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CStage演奏ドラム画面.cs b/TJAPlayer3/Stages/07.Game/Taiko/CStage演奏ドラム画面.cs index 148ce349..94e3cb87 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/CStage演奏ドラム画面.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/CStage演奏ドラム画面.cs @@ -197,9 +197,9 @@ namespace TJAPlayer3 base.ReSetScore(TJAPlayer3.DTX.nScoreInit[0, TJAPlayer3.stage選曲.n確定された曲の難易度[0]], TJAPlayer3.DTX.nScoreDiff[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]); #region [ branch ] - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { - this.n分岐した回数[0] = 0; + this.n分岐した回数[i] = 0; this.bLEVELHOLD[i] = false; } this.nBranch条件数値A = 0; @@ -211,6 +211,9 @@ namespace TJAPlayer3 ifp[0] = false; ifp[1] = false; + ifp[2] = false; + ifp[3] = false; + ifp[4] = false; this.nStoredHit = new int[TJAPlayer3.ConfigIni.nPlayerCount]; @@ -231,7 +234,7 @@ namespace TJAPlayer3 //dbUnit = Math.Ceiling( dbUnit * 1000.0 ); //dbUnit = dbUnit / 1000.0; - for(int nPlayer = 0; nPlayer < 2; nPlayer++) + for(int nPlayer = 0; nPlayer < 5; nPlayer++) { int p = TJAPlayer3.GetActualPlayer(nPlayer); @@ -312,7 +315,7 @@ namespace TJAPlayer3 Discord.UpdatePresence(TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? TJAPlayer3.stage選曲.r確定された曲.strタイトル + Discord.DiffToString(TJAPlayer3.stage選曲.n確定された曲の難易度[0]) : "", - Properties.Discord.Stage_InGame + (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == true ? " (" + Properties.Discord.Info_IsAuto + ")" : ""), + Properties.Discord.Stage_InGame + (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] == true ? " (" + Properties.Discord.Info_IsAuto + ")" : ""), 0, endTimeStamp, TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? difficultyName.ToLower() : "", @@ -353,23 +356,19 @@ namespace TJAPlayer3 // their drum sound effects with the sounds of the input calibration file. // Instead, we want them focused on the sounds of their keyboard, tatacon, // other controller, etc. and the sounds of the input calibration audio file. - if (!TJAPlayer3.IsPerformingCalibration) - { - int actual1 = TJAPlayer3.GetActualPlayer(0); - int actual2 = TJAPlayer3.GetActualPlayer(1); + if (!TJAPlayer3.IsPerformingCalibration) + { + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + int actual = TJAPlayer3.GetActualPlayer(i); - var hs = TJAPlayer3.Skin.hsHitSoundsInformations; - - this.soundRed = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.don[actual1]), ESoundGroup.SoundEffect); - this.soundBlue = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.ka[actual1]), ESoundGroup.SoundEffect); - this.soundAdlib = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.adlib[actual1]), ESoundGroup.SoundEffect); - this.soundClap = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.clap[actual1]), ESoundGroup.SoundEffect); - - this.soundRed2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.don[actual2]), ESoundGroup.SoundEffect); - this.soundBlue2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.ka[actual2]), ESoundGroup.SoundEffect); - this.soundAdlib2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.adlib[actual2]), ESoundGroup.SoundEffect); - this.soundClap2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.clap[actual2]), ESoundGroup.SoundEffect); + var hs = TJAPlayer3.Skin.hsHitSoundsInformations; + this.soundRed[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.don[actual]), ESoundGroup.SoundEffect); + this.soundBlue[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.ka[actual]), ESoundGroup.SoundEffect); + this.soundAdlib[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.adlib[actual]), ESoundGroup.SoundEffect); + this.soundClap[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.clap[actual]), ESoundGroup.SoundEffect); + } /* this.soundRed = TJAPlayer3.Sound管理.tサウンドを生成する( CSkin.Path( @"Sounds\Taiko\dong.ogg" ), ESoundGroup.SoundEffect ); this.soundBlue = TJAPlayer3.Sound管理.tサウンドを生成する( CSkin.Path( @"Sounds\Taiko\ka.ogg" ), ESoundGroup.SoundEffect ); @@ -381,14 +380,14 @@ namespace TJAPlayer3 */ - if (TJAPlayer3.ConfigIni.nPlayerCount >= 2)//2020.05.06 Mr-Ojii左右に出したかったから、追加。 + if (TJAPlayer3.ConfigIni.nPlayerCount == 2)//2020.05.06 Mr-Ojii左右に出したかったから、追加。 { - this.soundRed.n位置 = -100; - this.soundBlue.n位置 = -100; - this.soundAdlib.n位置 = -100; - this.soundRed2.n位置 = 100; - this.soundBlue2.n位置 = 100; - this.soundAdlib2.n位置 = 100; + this.soundRed[0].n位置 = -100; + this.soundBlue[0].n位置 = -100; + this.soundAdlib[0].n位置 = -100; + this.soundRed[1].n位置 = 100; + this.soundBlue[1].n位置 = 100; + this.soundAdlib[1].n位置 = 100; } } @@ -397,24 +396,19 @@ namespace TJAPlayer3 } public override void OnManagedリソースの解放() { - if( !base.b活性化してない ) - { - if( this.soundRed != null ) - this.soundRed.t解放する(); - if( this.soundBlue != null ) - this.soundBlue.t解放する(); - if( this.soundAdlib != null ) - this.soundAdlib.t解放する(); - if (this.soundClap != null) - this.soundClap.t解放する(); - if (this.soundRed2 != null) - this.soundRed2.t解放する(); - if (this.soundBlue2 != null) - this.soundBlue2.t解放する(); - if (this.soundAdlib2 != null) - this.soundAdlib2.t解放する(); - if (this.soundClap2 != null) - this.soundClap2.t解放する(); + if( !base.b活性化してない ) + { + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (this.soundRed[i] != null) + this.soundRed[i].t解放する(); + if (this.soundBlue[i] != null) + this.soundBlue[i].t解放する(); + if (this.soundAdlib[i] != null) + this.soundAdlib[i].t解放する(); + if (this.soundClap[i] != null) + this.soundClap[i].t解放する(); + } base.OnManagedリソースの解放(); } } @@ -504,8 +498,10 @@ namespace TJAPlayer3 //this.t進行描画_DANGER(); //this.t進行描画_判定ライン(); - if( TJAPlayer3.ConfigIni.ShowChara ) - this.actChara.On進行描画(); + if( TJAPlayer3.ConfigIni.ShowChara && TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + this.actChara.On進行描画(); + } if(!BGA_Hidden && TJAPlayer3.ConfigIni.ShowMob && !TJAPlayer3.ConfigIni.bTokkunMode) this.actMob.On進行描画(); @@ -547,10 +543,14 @@ namespace TJAPlayer3 #endif this.t進行描画_チップ_連打( E楽器パート.DRUMS, i ); + } + + bIsFinishedPlaying = true; + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (!ifp[i]) bIsFinishedPlaying = false; } - bIsFinishedPlaying = (TJAPlayer3.ConfigIni.nPlayerCount > 1 ) ? ifp[0] && ifp[1] : ifp[0]; - this.actDan.On進行描画(); this.actMtaiko.On進行描画(); @@ -568,8 +568,12 @@ namespace TJAPlayer3 if ( !TJAPlayer3.ConfigIni.bNoInfo ) this.t進行描画_コンボ(); if( !TJAPlayer3.ConfigIni.bNoInfo && !TJAPlayer3.ConfigIni.bTokkunMode) - this.t進行描画_スコア(); - + this.t進行描画_スコア(); + + if (TJAPlayer3.ConfigIni.ShowChara && TJAPlayer3.ConfigIni.nPlayerCount > 2) + { + this.actChara.On進行描画(); + } this.Rainbow.On進行描画(); this.FireWorks.On進行描画(); @@ -636,7 +640,7 @@ namespace TJAPlayer3 } else { - for(int i = 0; i < 2; i++) + for(int i = 0; i < 5; i++) { base.eフェーズID = CStage.Eフェーズ.演奏_演奏終了演出; @@ -698,7 +702,7 @@ namespace TJAPlayer3 } public CAct演奏DrumsチップファイアD actChipFireD; - private bool[] ifp = { false, false }; + private bool[] ifp = { false, false, false, false, false }; private CAct演奏Drumsグラフ actGraph; // #24074 2011.01.23 add ikanick private CAct演奏Drumsパッド actPad; @@ -812,6 +816,12 @@ namespace TJAPlayer3 case Eパッド.RRed: case Eパッド.LRed2P: case Eパッド.RRed2P: + case Eパッド.LRed3P: + case Eパッド.RRed3P: + case Eパッド.LRed4P: + case Eパッド.RRed4P: + case Eパッド.LRed5P: + case Eパッド.RRed5P: nInput = 0; if( b両手入力 ) nInput = 2; @@ -820,12 +830,21 @@ namespace TJAPlayer3 case Eパッド.RBlue: case Eパッド.LBlue2P: case Eパッド.RBlue2P: + case Eパッド.LBlue3P: + case Eパッド.RBlue3P: + case Eパッド.LBlue4P: + case Eパッド.RBlue4P: + case Eパッド.LBlue5P: + case Eパッド.RBlue5P: nInput = 1; if( b両手入力 ) nInput = 3; break; case Eパッド.CLAP: - case Eパッド.CLAP2P: + case Eパッド.CLAP2P: + case Eパッド.CLAP3P: + case Eパッド.CLAP4P: + case Eパッド.CLAP5P: nInput = 4; break; } @@ -969,8 +988,11 @@ namespace TJAPlayer3 //2015.03.19 kairera0467 Chipを1つにまとめて1つのレーン扱いにする。 - bool isPad1P = (nPad >= 12 && nPad <= 15) || nPad == 20; - bool isPad2P = (nPad >= 16 && nPad <= 19) || nPad == 21; + bool isPad1P = (nPad >= 12 && nPad <= 15) || nPad == 32; + bool isPad2P = (nPad >= 16 && nPad <= 19) || nPad == 33; + bool isPad3P = (nPad >= 20 && nPad <= 23) || nPad == 34; + bool isPad4P = (nPad >= 24 && nPad <= 27) || nPad == 35; + bool isPad5P = (nPad >= 28 && nPad <= 31) || nPad == 36; int nUsePlayer = 0; if (isPad1P) @@ -983,12 +1005,39 @@ namespace TJAPlayer3 if (TJAPlayer3.ConfigIni.nPlayerCount < 2) //プレイ人数が2人以上でなければ入力をキャンセル break; } + else if (isPad3P) + { + nUsePlayer = 2; + if (TJAPlayer3.ConfigIni.nPlayerCount < 3) //プレイ人数が3人以上でなければ入力をキャンセル + break; + } + else if (isPad4P) + { + nUsePlayer = 3; + if (TJAPlayer3.ConfigIni.nPlayerCount < 4) //プレイ人数が4人以上でなければ入力をキャンセル + break; + } + else if (isPad5P) + { + nUsePlayer = 4; + if (TJAPlayer3.ConfigIni.nPlayerCount < 5) //プレイ人数が5人以上でなければ入力をキャンセル + break; + } - if (!TJAPlayer3.ConfigIni.bTokkunMode && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay && isPad1P)//2020.05.18 Mr-Ojii オート時の入力キャンセル + if (!TJAPlayer3.ConfigIni.bTokkunMode && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] && isPad1P)//2020.05.18 Mr-Ojii オート時の入力キャンセル break; - else if ((TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode) && isPad2P) + else if ((TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] || TJAPlayer3.ConfigIni.bAIBattleMode) && isPad2P) break; - var padTo = nUsePlayer == 0 ? nPad - 12 : nPad - 12 - 4; + else if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[2] && isPad3P) + break; + else if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[3] && isPad4P) + break; + else if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[4] && isPad5P) + break; + //var padTo = nUsePlayer == 0 ? nPad - 12 : nPad - 12 - 4; + var padTo = nPad - 12; + padTo -= 4 * nUsePlayer; + var isDon = padTo < 2 ? true : false; CDTX.CChip chipNoHit = r指定時刻に一番近い未ヒットChipを過去方向優先で検索する(nTime, nUsePlayer); @@ -1003,15 +1052,8 @@ namespace TJAPlayer3 { if (NotesManager.IsADLIB(chipNoHit) && (e判定 == E判定.Perfect || e判定 == E判定.Good)) b太鼓音再生フラグ = false; - if (NotesManager.IsADLIB(chipNoHit) && (e判定 != E判定.Miss && e判定 != E判定.Poor)) - if (chipNoHit.nPlayerSide == 0) - { - this.soundAdlib?.t再生を開始する(); - } - else - { - this.soundAdlib2?.t再生を開始する(); - } + if (NotesManager.IsADLIB(chipNoHit) && (e判定 != E判定.Miss && e判定 != E判定.Poor)) + this.soundAdlib[chipNoHit.nPlayerSide]?.t再生を開始する(); } #endregion @@ -1026,7 +1068,7 @@ namespace TJAPlayer3 nChannel = 0x11; if (b太鼓音再生フラグ) { - this.soundRed?.t再生を開始する(); + this.soundRed[0]?.t再生を開始する(); } break; case 13: @@ -1035,7 +1077,7 @@ namespace TJAPlayer3 nChannel = 0x11; if (b太鼓音再生フラグ) { - this.soundRed?.t再生を開始する(); + this.soundRed[0]?.t再生を開始する(); } break; case 14: @@ -1043,14 +1085,14 @@ namespace TJAPlayer3 nHand = 0; nChannel = 0x12; if (b太鼓音再生フラグ) - this.soundBlue?.t再生を開始する(); + this.soundBlue[0]?.t再生を開始する(); break; case 15: nLane = 1; nHand = 1; nChannel = 0x12; if (b太鼓音再生フラグ) - this.soundBlue?.t再生を開始する(); + this.soundBlue[0]?.t再生を開始する(); break; //以下2P case 16: @@ -1059,7 +1101,7 @@ namespace TJAPlayer3 nChannel = 0x11; if (b太鼓音再生フラグ) { - this.soundRed2?.t再生を開始する(); + this.soundRed[1]?.t再生を開始する(); } break; case 17: @@ -1068,7 +1110,7 @@ namespace TJAPlayer3 nChannel = 0x11; if (b太鼓音再生フラグ) { - this.soundRed2?.t再生を開始する(); + this.soundRed[1]?.t再生を開始する(); } break; case 18: @@ -1076,14 +1118,113 @@ namespace TJAPlayer3 nHand = 0; nChannel = 0x12; if (b太鼓音再生フラグ) - this.soundBlue2?.t再生を開始する(); + this.soundBlue[1]?.t再生を開始する(); break; case 19: nLane = 1; nHand = 1; nChannel = 0x12; if (b太鼓音再生フラグ) - this.soundBlue2?.t再生を開始する(); + this.soundBlue[1]?.t再生を開始する(); + break; + //以下3P + case 20: + nLane = 0; + nHand = 0; + nChannel = 0x11; + if (b太鼓音再生フラグ) + { + this.soundRed[2]?.t再生を開始する(); + } + break; + case 21: + nLane = 0; + nHand = 1; + nChannel = 0x11; + if (b太鼓音再生フラグ) + { + this.soundRed[2]?.t再生を開始する(); + } + break; + case 22: + nLane = 1; + nHand = 0; + nChannel = 0x12; + if (b太鼓音再生フラグ) + this.soundBlue[2]?.t再生を開始する(); + break; + case 23: + nLane = 1; + nHand = 1; + nChannel = 0x12; + if (b太鼓音再生フラグ) + this.soundBlue[2]?.t再生を開始する(); + break; + //以下4P + case 24: + nLane = 0; + nHand = 0; + nChannel = 0x11; + if (b太鼓音再生フラグ) + { + this.soundRed[3]?.t再生を開始する(); + } + break; + case 25: + nLane = 0; + nHand = 1; + nChannel = 0x11; + if (b太鼓音再生フラグ) + { + this.soundRed[3]?.t再生を開始する(); + } + break; + case 26: + nLane = 1; + nHand = 0; + nChannel = 0x12; + if (b太鼓音再生フラグ) + this.soundBlue[3]?.t再生を開始する(); + break; + case 27: + nLane = 1; + nHand = 1; + nChannel = 0x12; + if (b太鼓音再生フラグ) + this.soundBlue[3]?.t再生を開始する(); + break; + //以下5P + case 28: + nLane = 0; + nHand = 0; + nChannel = 0x11; + if (b太鼓音再生フラグ) + { + this.soundRed[4]?.t再生を開始する(); + } + break; + case 29: + nLane = 0; + nHand = 1; + nChannel = 0x11; + if (b太鼓音再生フラグ) + { + this.soundRed[4]?.t再生を開始する(); + } + break; + case 30: + nLane = 1; + nHand = 0; + nChannel = 0x12; + if (b太鼓音再生フラグ) + this.soundBlue[4]?.t再生を開始する(); + break; + case 31: + nLane = 1; + nHand = 1; + nChannel = 0x12; + if (b太鼓音再生フラグ) + this.soundBlue[4]?.t再生を開始する(); break; // Clap case (int)Eパッド.CLAP: @@ -1094,7 +1235,7 @@ namespace TJAPlayer3 nChannel = 0x14; if (b太鼓音再生フラグ) { - this.soundClap?.t再生を開始する(); + this.soundClap[0]?.t再生を開始する(); } } else @@ -1110,7 +1251,55 @@ namespace TJAPlayer3 nChannel = 0x14; if (b太鼓音再生フラグ) { - this.soundClap2?.t再生を開始する(); + this.soundClap[1]?.t再生を開始する(); + } + } + else + { + nLane = (int)PlayerLane.FlashType.Total; + } + break; + case (int)Eパッド.CLAP3P: + if (TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(1)] == EGameType.KONGA) + { + nLane = (int)PlayerLane.FlashType.Clap; + nHand = 0; + nChannel = 0x14; + if (b太鼓音再生フラグ) + { + this.soundClap[2]?.t再生を開始する(); + } + } + else + { + nLane = (int)PlayerLane.FlashType.Total; + } + break; + case (int)Eパッド.CLAP4P: + if (TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(1)] == EGameType.KONGA) + { + nLane = (int)PlayerLane.FlashType.Clap; + nHand = 0; + nChannel = 0x14; + if (b太鼓音再生フラグ) + { + this.soundClap[3]?.t再生を開始する(); + } + } + else + { + nLane = (int)PlayerLane.FlashType.Total; + } + break; + case (int)Eパッド.CLAP5P: + if (TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(1)] == EGameType.KONGA) + { + nLane = (int)PlayerLane.FlashType.Clap; + nHand = 0; + nChannel = 0x14; + if (b太鼓音再生フラグ) + { + this.soundClap[4]?.t再生を開始する(); } } else @@ -1152,13 +1341,25 @@ namespace TJAPlayer3 switch (((Eパッド)nPad)) { case Eパッド.LRed: - case Eパッド.LRed2P: + case Eパッド.LRed2P: + case Eパッド.LRed3P: + case Eパッド.LRed4P: + case Eパッド.LRed5P: case Eパッド.RRed: - case Eパッド.RRed2P: + case Eパッド.RRed2P: + case Eパッド.RRed3P: + case Eパッド.RRed4P: + case Eパッド.RRed5P: case Eパッド.LBlue: - case Eパッド.LBlue2P: + case Eパッド.LBlue2P: + case Eパッド.LBlue3P: + case Eパッド.LBlue4P: + case Eパッド.LBlue5P: case Eパッド.RBlue: - case Eパッド.RBlue2P: + case Eパッド.RBlue2P: + case Eパッド.RBlue3P: + case Eパッド.RBlue4P: + case Eパッド.RBlue5P: { // Regular notes @@ -1172,6 +1373,21 @@ namespace TJAPlayer3 if ((Eパッド)nPad == Eパッド.LBlue2P) _pad = Eパッド.LBlue; if ((Eパッド)nPad == Eパッド.RBlue2P) _pad = Eパッド.RBlue; + if ((Eパッド)nPad == Eパッド.LRed3P) _pad = Eパッド.LRed; + if ((Eパッド)nPad == Eパッド.RRed3P) _pad = Eパッド.RRed; + if ((Eパッド)nPad == Eパッド.LBlue3P) _pad = Eパッド.LBlue; + if ((Eパッド)nPad == Eパッド.RBlue3P) _pad = Eパッド.RBlue; + + if ((Eパッド)nPad == Eパッド.LRed4P) _pad = Eパッド.LRed; + if ((Eパッド)nPad == Eパッド.RRed4P) _pad = Eパッド.RRed; + if ((Eパッド)nPad == Eパッド.LBlue4P) _pad = Eパッド.LBlue; + if ((Eパッド)nPad == Eパッド.RBlue4P) _pad = Eパッド.RBlue; + + if ((Eパッド)nPad == Eパッド.LRed5P) _pad = Eパッド.LRed; + if ((Eパッド)nPad == Eパッド.RRed5P) _pad = Eパッド.RRed; + if ((Eパッド)nPad == Eパッド.LBlue5P) _pad = Eパッド.LBlue; + if ((Eパッド)nPad == Eパッド.RBlue5P) _pad = Eパッド.RBlue; + bool _isLeftPad = _pad == Eパッド.LRed || _pad == Eパッド.LBlue; bool _isBlue = _pad == Eパッド.RBlue || _pad == Eパッド.LBlue; @@ -1285,6 +1501,9 @@ namespace TJAPlayer3 case Eパッド.CLAP: case Eパッド.CLAP2P: + case Eパッド.CLAP3P: + case Eパッド.CLAP4P: + case Eパッド.CLAP5P: { var _pad = (Eパッド)nPad; @@ -1658,18 +1877,11 @@ namespace TJAPlayer3 long nPlayTime = (long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); if ((!pChip.bHit) && (pChip.n発声時刻ms <= nPlayTime)) { - bool bAutoPlay = false; + bool bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer]; switch (nPlayer) { - case 0: - bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; - break; case 1: - bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode; - break; - case 2: - case 3: - bAutoPlay = true; + bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode; break; } @@ -1718,7 +1930,7 @@ namespace TJAPlayer3 } int x = pChip.nバーからの距離dot.Taiko; - int y = TJAPlayer3.Skin.nScrollFieldY[nPlayer];// + ((int)(pChip.nコース) * 100) + int y = NoteOriginY[nPlayer];// + ((int)(pChip.nコース) * 100) int xTemp = 0; int yTemp = 0; @@ -1732,34 +1944,34 @@ namespace TJAPlayer3 switch ( pChip.nスクロール方向 ) { case 0: - x += ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ); + x += ( NoteOriginX[ nPlayer ] ); break; case 1: - x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ); - y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] - xTemp; + x = (NoteOriginX[ nPlayer ] ); + y = NoteOriginY[ nPlayer ] - xTemp; break; case 2: - x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] + 3 ); - y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] + xTemp; + x = (NoteOriginX[ nPlayer ] + 3 ); + y = NoteOriginY[ nPlayer ] + xTemp; break; case 3: - x += ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ); - y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] - xTemp; + x += (NoteOriginX[ nPlayer ] ); + y = NoteOriginY[ nPlayer ] - xTemp; break; case 4: - x += ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ); - y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] + xTemp; + x += (NoteOriginX[ nPlayer ] ); + y = NoteOriginY[ nPlayer ] + xTemp; break; case 5: - x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] + 10 ) - xTemp; + x = (NoteOriginX[ nPlayer ] + 10 ) - xTemp; break; case 6: - x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ) - xTemp; - y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] - xTemp; + x = (NoteOriginX[ nPlayer ] ) - xTemp; + y = NoteOriginY[ nPlayer ] - xTemp; break; case 7: - x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ) - xTemp; - y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] + xTemp; + x = (NoteOriginX[ nPlayer ] ) - xTemp; + y = NoteOriginY[ nPlayer ] + xTemp; break; } #endregion @@ -1767,7 +1979,7 @@ namespace TJAPlayer3 #region[ 両手待ち時 ] if( pChip.eNoteState == ENoteState.wait ) { - x = ( TJAPlayer3.Skin.nScrollFieldX[0] ); + x = (NoteOriginX[nPlayer]); } #endregion @@ -1782,7 +1994,7 @@ namespace TJAPlayer3 { var dbSCROLL = configIni.eScrollMode == EScrollMode.BMSCROLL ? 1.0 : pChip.dbSCROLL; - y = TJAPlayer3.Skin.nScrollFieldY[nPlayer]; + y = NoteOriginY[nPlayer]; double _scrollSpeed = pChip.dbSCROLL_Y * (this.act譜面スクロール速度.db現在の譜面スクロール速度[nPlayer] + 1.0) / 10.0; @@ -1798,7 +2010,7 @@ namespace TJAPlayer3 this.actGame.st叩ききりまショー.b最初のチップが叩かれた = true; } - if((TJAPlayer3.Skin.Resolution[0] + TJAPlayer3.Skin.Game_Notes_Size[nPlayer] > x )) + if((TJAPlayer3.Skin.Resolution[0] + TJAPlayer3.Skin.Game_Notes_Size[0] > x )) { if( TJAPlayer3.Tx.Notes[(int)_gt] != null ) { @@ -1867,8 +2079,28 @@ namespace TJAPlayer3 - int nSenotesX = TJAPlayer3.Skin.nSENotesX[nPlayer]; - int nSenotesY = TJAPlayer3.Skin.nSENotesY[nPlayer]; + int nSenotesX = 0; + int nSenotesY = 0; + + switch (TJAPlayer3.ConfigIni.nPlayerCount) + { + case 0: + case 1: + nSenotesX = TJAPlayer3.Skin.nSENotesX[nPlayer]; + nSenotesY = TJAPlayer3.Skin.nSENotesY[nPlayer]; + break; + case 2: + case 3: + case 4: + nSenotesX = TJAPlayer3.Skin.nSENotes_4P[0]; + nSenotesY = TJAPlayer3.Skin.nSENotes_4P[1]; + break; + case 5: + nSenotesX = TJAPlayer3.Skin.nSENotes_5P[0]; + nSenotesY = TJAPlayer3.Skin.nSENotes_5P[1]; + break; + } + this.ct手つなぎ.t進行Loop(); int nHand = this.ct手つなぎ.n現在の値 < 30 ? this.ct手つなぎ.n現在の値 : 60 - this.ct手つなぎ.n現在の値; @@ -1938,8 +2170,28 @@ namespace TJAPlayer3 } protected override void t進行描画_チップ_Taiko連打( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer ) { - int nSenotesX = TJAPlayer3.Skin.nSENotesX[nPlayer]; - int nSenotesY = TJAPlayer3.Skin.nSENotesY[ nPlayer ]; + int nSenotesX = 0; + int nSenotesY = 0; + + switch (TJAPlayer3.ConfigIni.nPlayerCount) + { + case 0: + case 1: + nSenotesX = TJAPlayer3.Skin.nSENotesX[nPlayer]; + nSenotesY = TJAPlayer3.Skin.nSENotesY[nPlayer]; + break; + case 2: + case 3: + case 4: + nSenotesX = TJAPlayer3.Skin.nSENotes_4P[0]; + nSenotesY = TJAPlayer3.Skin.nSENotes_4P[1]; + break; + case 5: + nSenotesX = TJAPlayer3.Skin.nSENotes_5P[0]; + nSenotesY = TJAPlayer3.Skin.nSENotes_5P[1]; + break; + } + int nノート座標 = pChip.nバーからの距離dot.Taiko; int nノート末端座標 = pChip.nバーからのノーツ末端距離dot; int n先頭発声位置 = 0; @@ -2005,9 +2257,9 @@ namespace TJAPlayer3 */ } - int x = TJAPlayer3.Skin.nScrollFieldX[nPlayer] + nノート座標; - int x末端 = TJAPlayer3.Skin.nScrollFieldX[nPlayer] + nノート末端座標; - int y = TJAPlayer3.Skin.nScrollFieldY[nPlayer];// + ((int)(pChip.nコース) * 100) + int x = NoteOriginX[nPlayer] + nノート座標; + int x末端 = NoteOriginX[nPlayer] + nノート末端座標; + int y = NoteOriginY[nPlayer];// + ((int)(pChip.nコース) * 100) #region[ HIDSUD & STEALTH ] @@ -2021,7 +2273,7 @@ namespace TJAPlayer3 //if( CDTXMania.ConfigIni.eScrollMode != EScrollMode.Normal ) //x -= 10; - if ((TJAPlayer3.Skin.Resolution[0] + TJAPlayer3.Skin.Game_Notes_Size[nPlayer] > x)) + if ((TJAPlayer3.Skin.Resolution[0] + TJAPlayer3.Skin.Game_Notes_Size[0] > x)) { if (TJAPlayer3.Tx.Notes[(int)_gt] != null) { @@ -2149,9 +2401,9 @@ namespace TJAPlayer3 if (pChip.bShow) { if ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) >= pChip.n発声時刻ms && (long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < pChip.nノーツ終了時刻ms) - x = TJAPlayer3.Skin.nScrollFieldX[nPlayer]; + x = NoteOriginX[nPlayer]; else if ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) >= pChip.nノーツ終了時刻ms) - x = (TJAPlayer3.Skin.nScrollFieldX[nPlayer] + pChip.nバーからのノーツ末端距離dot); + x = (NoteOriginX[nPlayer] + pChip.nバーからのノーツ末端距離dot); NotesManager.DisplayNote(nPlayer, x, y, pChip, num9, TJAPlayer3.Skin.Game_Notes_Size[0] * 2); NotesManager.DisplaySENotes(nPlayer, x + nSenotesX, y + nSenotesY, pChip); @@ -2195,7 +2447,7 @@ namespace TJAPlayer3 if (pChip.n発声時刻ms < (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) && pChip.nノーツ終了時刻ms > (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) { //時間内でかつ0x9Aじゃないならならヒット処理 - if (!NotesManager.IsRollEnd(pChip) && (nPlayer == 0 ? TJAPlayer3.ConfigIni.b太鼓パートAutoPlay : (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode))) + if (!NotesManager.IsRollEnd(pChip) && (nPlayer != 1 ? TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer] : (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode))) this.tチップのヒット処理(pChip.n発声時刻ms, pChip, E楽器パート.TAIKO, false, 0, nPlayer); } } @@ -2218,9 +2470,9 @@ namespace TJAPlayer3 return; //int n小節番号plus1 = pChip.n発声位置 / 384; - int n小節番号plus1 = this.actPlayInfo.NowMeasure[nPlayer]; - int x = TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] + pChip.nバーからの距離dot.Taiko; - int y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ]; + //int n小節番号plus1 = this.actPlayInfo.NowMeasure[nPlayer]; + int x = NoteOriginX[ nPlayer ] + pChip.nバーからの距離dot.Taiko; + int y = NoteOriginY[ nPlayer ]; if( pChip.dbSCROLL_Y != 0.0 ) { @@ -2365,7 +2617,7 @@ namespace TJAPlayer3 { var showJudgeInfo = false; - if (TJAPlayer3.ConfigIni.nPlayerCount == 1 ? (TJAPlayer3.ConfigIni.bJudgeCountDisplay && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) : false) showJudgeInfo = true; + if (TJAPlayer3.ConfigIni.nPlayerCount == 1 ? (TJAPlayer3.ConfigIni.bJudgeCountDisplay && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]) : false) showJudgeInfo = true; if (TJAPlayer3.ConfigIni.bTokkunMode) showJudgeInfo = true; if (showJudgeInfo) diff --git a/TJAPlayer3/Stages/07.Game/Taiko/FlyingNotes.cs b/TJAPlayer3/Stages/07.Game/Taiko/FlyingNotes.cs index 300b02d9..99ebf507 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/FlyingNotes.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/FlyingNotes.cs @@ -20,7 +20,7 @@ namespace TJAPlayer3 // メソッド public virtual void Start(int nLane, int nPlayer, bool isRoll = false) { - + if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return; EGameType _gt = TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)]; if (TJAPlayer3.Tx.Notes[(int)_gt] != null) diff --git a/TJAPlayer3/Stages/07.Game/Taiko/LaneFlash.cs b/TJAPlayer3/Stages/07.Game/Taiko/LaneFlash.cs index 858c5784..d0bfefa2 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/LaneFlash.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/LaneFlash.cs @@ -42,11 +42,30 @@ namespace TJAPlayer3 if (Texture == null || Counter == null) return base.On進行描画(); if (!Counter.b停止中) { + int x; + int y; + + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + x = TJAPlayer3.Skin.Game_Lane_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * Player); + y = TJAPlayer3.Skin.Game_Lane_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * Player); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + x = TJAPlayer3.Skin.Game_Lane_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * Player); + y = TJAPlayer3.Skin.Game_Lane_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * Player); + } + else + { + x = TJAPlayer3.Skin.Game_Lane_X[Player]; + y = TJAPlayer3.Skin.Game_Lane_Y[Player]; + } + Counter.t進行(); if (Counter.b終了値に達した) Counter.t停止(); int opacity = (((150 - Counter.n現在の値) * 255) / 100); Texture.Opacity = opacity; - Texture.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[Player], TJAPlayer3.Skin.Game_Lane_Y[Player]); + Texture.t2D描画(TJAPlayer3.app.Device, x, y); } return base.On進行描画(); } diff --git a/TJAPlayer3/Stages/07.Game/Taiko/ModIcons.cs b/TJAPlayer3/Stages/07.Game/Taiko/ModIcons.cs index c86c63ef..e1f58293 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/ModIcons.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/ModIcons.cs @@ -71,9 +71,7 @@ namespace TJAPlayer3 { bool _displayed = false; - if (player == 0 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) - _displayed = true; - else if (player == 1 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P) + if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player]) _displayed = true; if (_displayed == true) diff --git a/TJAPlayer3/Stages/07.Game/Taiko/Rainbow.cs b/TJAPlayer3/Stages/07.Game/Taiko/Rainbow.cs index 54009897..4ea33e59 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/Rainbow.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/Rainbow.cs @@ -79,6 +79,7 @@ namespace TJAPlayer3 { if( !base.b活性化してない ) { + if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return base.On進行描画(); for (int f = 0; f < 2; f++) { if (this.Rainbow1P[f].IsUsing) diff --git a/TJAPlayer3/Stages/08.Result/CActResultParameterPanel.cs b/TJAPlayer3/Stages/08.Result/CActResultParameterPanel.cs index 90626635..19593799 100644 --- a/TJAPlayer3/Stages/08.Result/CActResultParameterPanel.cs +++ b/TJAPlayer3/Stages/08.Result/CActResultParameterPanel.cs @@ -175,7 +175,7 @@ namespace TJAPlayer3 b音声再生[i] = true; } - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { if (!ctゲージアニメ[i].b進行中) ctゲージアニメ[i].t開始(0, gaugeValues[i] / 2, 59, TJAPlayer3.Timer); @@ -218,8 +218,8 @@ namespace TJAPlayer3 { ct全体進行 = new CCounter(0, 50000, 1, TJAPlayer3.Timer); - ctゲージアニメ = new CCounter[2]; - for (int i = 0; i < 2; i++) + ctゲージアニメ = new CCounter[5]; + for (int i = 0; i < 5; i++) ctゲージアニメ[i] = new CCounter(); ct虹ゲージアニメ = new CCounter(); @@ -249,7 +249,7 @@ namespace TJAPlayer3 } - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { CResultCharacter.tMenuResetTimer(CResultCharacter.ECharacterResult.NORMAL); CResultCharacter.tDisableCounter(CResultCharacter.ECharacterResult.CLEAR); @@ -258,14 +258,14 @@ namespace TJAPlayer3 } - gaugeValues = new int[2]; + gaugeValues = new int[5]; for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { gaugeValues[i] = (int)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i]; } // Replace by max between 2 gauges if 2p - GaugeFactor = Math.Max(gaugeValues[0], gaugeValues[1]) / 2; + GaugeFactor = Math.Max(Math.Max(Math.Max(Math.Max(gaugeValues[0], gaugeValues[1]), gaugeValues[2]), gaugeValues[3]), gaugeValues[4]) / 2; MountainAppearValue = 10275 + (66 * GaugeFactor); @@ -298,7 +298,7 @@ namespace TJAPlayer3 ct全体進行.t進行(); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) ctゲージアニメ[i].t進行(); ctEndAnime.t進行(); @@ -314,9 +314,31 @@ namespace TJAPlayer3 // this.PuchiChara.IdleAnimation(); if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) - { + { + int[] namePlate_x = new int[5]; + int[] namePlate_y = new int[5]; + + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + namePlate_x[i] = TJAPlayer3.Skin.Result_NamePlate_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * i); + namePlate_y[i] = TJAPlayer3.Skin.Result_NamePlate_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * i); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + namePlate_x[i] = TJAPlayer3.Skin.Result_NamePlate_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * i); + namePlate_y[i] = TJAPlayer3.Skin.Result_NamePlate_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * i); + } + else + { + namePlate_x[i] = TJAPlayer3.Skin.Result_NamePlate_X[i]; + namePlate_y[i] = TJAPlayer3.Skin.Result_NamePlate_Y[i]; + } + } + #region [ Ensou result contents ] - + int AnimeCount = 3000 + GaugeFactor * 59; int ScoreApparitionTimeStamp = AnimeCount + 420 * 4 + 840; @@ -330,7 +352,7 @@ namespace TJAPlayer3 if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break; // 1 if right, 0 if left - int shiftPos = (i == 1 || is2PSide) ? 1 : 0; + int shiftPos = (i == 1 || is2PSide) ? 1 : i; int pos = i; if (is2PSide) pos = 1; @@ -338,15 +360,62 @@ namespace TJAPlayer3 #region [General plate animations] - if (shiftPos == 0) - TJAPlayer3.Tx.Result_Panel.t2D描画(TJAPlayer3.app.Device, 0, 0); - else - TJAPlayer3.Tx.Result_Panel_2P.t2D描画(TJAPlayer3.app.Device, 0, 0); + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + if (shiftPos == 0) + TJAPlayer3.Tx.Result_Panel.t2D描画(TJAPlayer3.app.Device, 0, 0); + else + TJAPlayer3.Tx.Result_Panel_2P.t2D描画(TJAPlayer3.app.Device, 0, 0); + } + else + { + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + TJAPlayer3.Tx.Result_Panel_5P[i].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_UIMove_5P[0] * i, 0); + } + else + { + TJAPlayer3.Tx.Result_Panel_4P[i].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_UIMove_4P[0] * i, 0); + } + } - TJAPlayer3.Tx.Result_Diff_Bar.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_DifficultyBar_X[pos], TJAPlayer3.Skin.Result_DifficultyBar_Y[pos], + //if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + int bar_x; + int bar_y; + int gauge_base_x; + int gauge_base_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].vc拡大縮小倍率.X = 0.5f; + bar_x = TJAPlayer3.Skin.Result_DifficultyBar_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + bar_y = TJAPlayer3.Skin.Result_DifficultyBar_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + gauge_base_x = TJAPlayer3.Skin.Result_Gauge_Base_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + gauge_base_y = TJAPlayer3.Skin.Result_Gauge_Base_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].vc拡大縮小倍率.X = 0.5f; + bar_x = TJAPlayer3.Skin.Result_DifficultyBar_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + bar_y = TJAPlayer3.Skin.Result_DifficultyBar_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + gauge_base_x = TJAPlayer3.Skin.Result_Gauge_Base_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + gauge_base_y = TJAPlayer3.Skin.Result_Gauge_Base_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + } + else + { + TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].vc拡大縮小倍率.X = 1.0f; + bar_x = TJAPlayer3.Skin.Result_DifficultyBar_X[pos]; + bar_y = TJAPlayer3.Skin.Result_DifficultyBar_Y[pos]; + gauge_base_x = TJAPlayer3.Skin.Result_Gauge_Base_X[pos]; + gauge_base_y = TJAPlayer3.Skin.Result_Gauge_Base_Y[pos]; + } + + TJAPlayer3.Tx.Result_Diff_Bar.t2D描画(TJAPlayer3.app.Device, bar_x, bar_y, new RectangleF(0, TJAPlayer3.stage選曲.n確定された曲の難易度[i] * TJAPlayer3.Skin.Result_DifficultyBar_Size[1], TJAPlayer3.Skin.Result_DifficultyBar_Size[0], TJAPlayer3.Skin.Result_DifficultyBar_Size[1])); - TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Gauge_Base_X[pos], TJAPlayer3.Skin.Result_Gauge_Base_Y[pos]); + TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].t2D描画(TJAPlayer3.app.Device, gauge_base_x, gauge_base_y); + TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].vc拡大縮小倍率.X = 1.0f; + } if (ct全体進行.n現在の値 >= 2000) { @@ -366,15 +435,66 @@ namespace TJAPlayer3 ctゲージアニメ[i].n現在の値 = (int)ctゲージアニメ[i].n終了値; } - TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Gauge_X[pos], TJAPlayer3.Skin.Result_Gauge_Y[pos], - new RectangleF(TJAPlayer3.Skin.Result_Gauge_Rect[0], TJAPlayer3.Skin.Result_Gauge_Rect[1], (TJAPlayer3.Skin.Result_Gauge_Rect[2] / 50.0f) * ctゲージアニメ[i].n現在の値, TJAPlayer3.Skin.Result_Gauge_Rect[3])); + { + int gauge_x; + int gauge_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 0.5f; + gauge_x = TJAPlayer3.Skin.Result_Gauge_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + gauge_y = TJAPlayer3.Skin.Result_Gauge_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 0.5f; + gauge_x = TJAPlayer3.Skin.Result_Gauge_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + gauge_y = TJAPlayer3.Skin.Result_Gauge_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + } + else + { + TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 1.0f; + gauge_x = TJAPlayer3.Skin.Result_Gauge_X[pos]; + gauge_y = TJAPlayer3.Skin.Result_Gauge_Y[pos]; + } + TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, gauge_x, gauge_y, + new RectangleF(TJAPlayer3.Skin.Result_Gauge_Rect[0], TJAPlayer3.Skin.Result_Gauge_Rect[1], (TJAPlayer3.Skin.Result_Gauge_Rect[2] / 50.0f) * ctゲージアニメ[i].n現在の値, TJAPlayer3.Skin.Result_Gauge_Rect[3])); + TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 1.0f; + } // Modify to array for each players using i int soultext_width = TJAPlayer3.Tx.Result_Soul_Text.szテクスチャサイズ.Width / 3; int soultext_height = TJAPlayer3.Tx.Result_Soul_Text.szテクスチャサイズ.Height; + int soulText_x; + int soulText_y; + int soulFire_x; + int soulFire_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + soulText_x = TJAPlayer3.Skin.Result_Soul_Text_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + soulText_y = TJAPlayer3.Skin.Result_Soul_Text_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + soulFire_x = TJAPlayer3.Skin.Result_Soul_Fire_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + soulFire_y = TJAPlayer3.Skin.Result_Soul_Fire_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 0.5f; + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + soulText_x = TJAPlayer3.Skin.Result_Soul_Text_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + soulText_y = TJAPlayer3.Skin.Result_Soul_Text_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + soulFire_x = TJAPlayer3.Skin.Result_Soul_Fire_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + soulFire_y = TJAPlayer3.Skin.Result_Soul_Fire_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 0.5f; + } + else + { + soulText_x = TJAPlayer3.Skin.Result_Soul_Text_X[pos]; + soulText_y = TJAPlayer3.Skin.Result_Soul_Text_Y[pos]; + soulFire_x = TJAPlayer3.Skin.Result_Soul_Fire_X[pos]; + soulFire_y = TJAPlayer3.Skin.Result_Soul_Fire_Y[pos]; + TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 1.0f; + } if (ctゲージアニメ[i].b終了値に達した) { @@ -402,34 +522,78 @@ namespace TJAPlayer3 ct虹ゲージアニメ.t進行Loop(); ctSoul.t進行Loop(); - TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Gauge_Rainbow_X[pos], TJAPlayer3.Skin.Result_Gauge_Rainbow_Y[pos]); + int rainbow_x; + int rainbow_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + rainbow_x = TJAPlayer3.Skin.Result_Gauge_Rainbow_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + rainbow_y = TJAPlayer3.Skin.Result_Gauge_Rainbow_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 0.5f; + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + rainbow_x = TJAPlayer3.Skin.Result_Gauge_Rainbow_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + rainbow_y = TJAPlayer3.Skin.Result_Gauge_Rainbow_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 0.5f; + } + else + { + rainbow_x = TJAPlayer3.Skin.Result_Gauge_Rainbow_X[pos]; + rainbow_y = TJAPlayer3.Skin.Result_Gauge_Rainbow_Y[pos]; + TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 1.0f; + } + TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, rainbow_x, rainbow_y); - int soulfire_width = TJAPlayer3.Tx.Result_Soul_Fire.szテクスチャサイズ.Width / 8; - int soulfire_height = TJAPlayer3.Tx.Result_Soul_Fire.szテクスチャサイズ.Height; + { + int soulfire_width = TJAPlayer3.Tx.Result_Soul_Fire.szテクスチャサイズ.Width / 8; + int soulfire_height = TJAPlayer3.Tx.Result_Soul_Fire.szテクスチャサイズ.Height; - TJAPlayer3.Tx.Result_Soul_Fire.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Soul_Fire_X[pos], TJAPlayer3.Skin.Result_Soul_Fire_Y[pos], new Rectangle(soulfire_width * ctSoul.n現在の値, 0, soulfire_width, soulfire_height)); + TJAPlayer3.Tx.Result_Soul_Fire.t2D中心基準描画(TJAPlayer3.app.Device, soulFire_x, soulFire_y, new Rectangle(soulfire_width * ctSoul.n現在の値, 0, soulfire_width, soulfire_height)); - TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Soul_Text_X[pos], TJAPlayer3.Skin.Result_Soul_Text_Y[pos], new Rectangle(soultext_width * 1, 0, soultext_width, soultext_height)); + TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, soulText_x, soulText_y, new Rectangle(soultext_width * 1, 0, soultext_width, soultext_height)); - if (ctSoul.n現在の値 % 2 == 0) - TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Soul_Text_X[pos], TJAPlayer3.Skin.Result_Soul_Text_Y[pos], new Rectangle(soultext_width * 2, 0, soultext_width, soultext_height)); + if (ctSoul.n現在の値 % 2 == 0) + TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, soulText_x, soulText_y, new Rectangle(soultext_width * 2, 0, soultext_width, soultext_height)); + } } } if (ctゲージアニメ[i].n現在の値 != 50) { - if (ctゲージアニメ[i].n現在の値 < 40) - { - TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Gauge_ClearText_X[pos], TJAPlayer3.Skin.Result_Gauge_ClearText_Y[pos], - new RectangleF(TJAPlayer3.Skin.Result_Gauge_ClearText_Rect[0], TJAPlayer3.Skin.Result_Gauge_ClearText_Rect[1], TJAPlayer3.Skin.Result_Gauge_ClearText_Rect[2], TJAPlayer3.Skin.Result_Gauge_ClearText_Rect[3])); - } - else - { - TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Gauge_ClearText_X[pos], TJAPlayer3.Skin.Result_Gauge_ClearText_Y[pos], - new RectangleF(TJAPlayer3.Skin.Result_Gauge_ClearText_Clear_Rect[0], TJAPlayer3.Skin.Result_Gauge_ClearText_Clear_Rect[1], TJAPlayer3.Skin.Result_Gauge_ClearText_Clear_Rect[2], TJAPlayer3.Skin.Result_Gauge_ClearText_Clear_Rect[3])); - } + { + int clearText_x; + int clearText_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + clearText_x = TJAPlayer3.Skin.Result_Gauge_ClearText_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + clearText_y = TJAPlayer3.Skin.Result_Gauge_ClearText_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 0.5f; + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + clearText_x = TJAPlayer3.Skin.Result_Gauge_ClearText_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + clearText_y = TJAPlayer3.Skin.Result_Gauge_ClearText_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 0.5f; + } + else + { + clearText_x = TJAPlayer3.Skin.Result_Gauge_ClearText_X[pos]; + clearText_y = TJAPlayer3.Skin.Result_Gauge_ClearText_Y[pos]; + TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 1.0f; + } + if (ctゲージアニメ[i].n現在の値 < 40) + { + TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, clearText_x, clearText_y, + new RectangleF(TJAPlayer3.Skin.Result_Gauge_ClearText_Rect[0], TJAPlayer3.Skin.Result_Gauge_ClearText_Rect[1], TJAPlayer3.Skin.Result_Gauge_ClearText_Rect[2], TJAPlayer3.Skin.Result_Gauge_ClearText_Rect[3])); + } + else + { + TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, clearText_x, clearText_y, + new RectangleF(TJAPlayer3.Skin.Result_Gauge_ClearText_Clear_Rect[0], TJAPlayer3.Skin.Result_Gauge_ClearText_Clear_Rect[1], TJAPlayer3.Skin.Result_Gauge_ClearText_Clear_Rect[2], TJAPlayer3.Skin.Result_Gauge_ClearText_Clear_Rect[3])); + } - TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Soul_Text_X[pos], TJAPlayer3.Skin.Result_Soul_Text_Y[pos], - new Rectangle(soultext_width * (ctゲージアニメ[i].n現在の値 <= 30 ? 0 : 1), 0, soultext_width, soultext_height)); + TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, soulText_x, soulText_y, + new Rectangle(soultext_width * (ctゲージアニメ[i].n現在の値 <= 30 ? 0 : 1), 0, soultext_width, soultext_height)); + } } #endregion @@ -438,14 +602,15 @@ namespace TJAPlayer3 if (ct全体進行.n現在の値 >= 2000) { // Change score kiroku to total scores to have the contents for both players, unbloat it - #region [ Separate results display (excluding score) ] - - int Interval = 420; - - float AddCount = 135; - - int[] scoresArr = { + #region [ Separate results display (excluding score) ] + + int Interval = 420; + + float AddCount = 135; + + int[] scoresArr = + { TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGreat, TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGood, TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss, @@ -454,173 +619,132 @@ namespace TJAPlayer3 TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.最高値[i] }; - int[][] num_x = { - TJAPlayer3.Skin.Result_Perfect_X, - TJAPlayer3.Skin.Result_Good_X, - TJAPlayer3.Skin.Result_Miss_X, - TJAPlayer3.Skin.Result_Roll_X, - TJAPlayer3.Skin.Result_MaxCombo_X - }; + int[][] num_x; - int[][] num_y = { - TJAPlayer3.Skin.Result_Perfect_Y, - TJAPlayer3.Skin.Result_Good_Y, - TJAPlayer3.Skin.Result_Miss_Y, - TJAPlayer3.Skin.Result_Roll_Y, - TJAPlayer3.Skin.Result_MaxCombo_Y - }; - - for (int k = 0; k < 5; k++) - { - if (ct全体進行.n現在の値 >= AnimeCount + (Interval * k)) + int[][] num_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) { - TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.X = ct全体進行.n現在の値 <= AnimeCount + (Interval * k) + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - (AnimeCount + (Interval * k))) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; - TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.Y = ct全体進行.n現在の値 <= AnimeCount + (Interval * k) + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - (AnimeCount + (Interval * k))) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + num_x = new int[][] { new int[5], new int[5], new int[5], new int[5], new int[5] }; + num_y = new int[][] { new int[5], new int[5], new int[5], new int[5], new int[5] }; - this.t小文字表示(num_x[k][pos], num_y[k][pos], scoresArr[k]); + num_x[0][pos] = TJAPlayer3.Skin.Result_Perfect_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + num_y[0][pos] = TJAPlayer3.Skin.Result_Perfect_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); - TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.X = 1f; - TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.Y = 1f; + num_x[1][pos] = TJAPlayer3.Skin.Result_Good_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + num_y[1][pos] = TJAPlayer3.Skin.Result_Good_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); - if (!this.b音声再生[1 + k]) + num_x[2][pos] = TJAPlayer3.Skin.Result_Miss_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + num_y[2][pos] = TJAPlayer3.Skin.Result_Miss_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + + num_x[3][pos] = TJAPlayer3.Skin.Result_Roll_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + num_y[3][pos] = TJAPlayer3.Skin.Result_Roll_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + + num_x[4][pos] = TJAPlayer3.Skin.Result_MaxCombo_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + num_y[4][pos] = TJAPlayer3.Skin.Result_MaxCombo_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount > 2) + { + num_x = new int[][] { new int[5], new int[5], new int[5], new int[5], new int[5] }; + num_y = new int[][] { new int[5], new int[5], new int[5], new int[5], new int[5] }; + + num_x[0][pos] = TJAPlayer3.Skin.Result_Perfect_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + num_y[0][pos] = TJAPlayer3.Skin.Result_Perfect_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + + num_x[1][pos] = TJAPlayer3.Skin.Result_Good_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + num_y[1][pos] = TJAPlayer3.Skin.Result_Good_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + + num_x[2][pos] = TJAPlayer3.Skin.Result_Miss_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + num_y[2][pos] = TJAPlayer3.Skin.Result_Miss_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + + num_x[3][pos] = TJAPlayer3.Skin.Result_Roll_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + num_y[3][pos] = TJAPlayer3.Skin.Result_Roll_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + + num_x[4][pos] = TJAPlayer3.Skin.Result_MaxCombo_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + num_y[4][pos] = TJAPlayer3.Skin.Result_MaxCombo_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + } + else + { + num_x = new int[][] { + TJAPlayer3.Skin.Result_Perfect_X, + TJAPlayer3.Skin.Result_Good_X, + TJAPlayer3.Skin.Result_Miss_X, + TJAPlayer3.Skin.Result_Roll_X, + TJAPlayer3.Skin.Result_MaxCombo_X + }; + + num_y = new int[][] { + TJAPlayer3.Skin.Result_Perfect_Y, + TJAPlayer3.Skin.Result_Good_Y, + TJAPlayer3.Skin.Result_Miss_Y, + TJAPlayer3.Skin.Result_Roll_Y, + TJAPlayer3.Skin.Result_MaxCombo_Y + }; + } + + for (int k = 0; k < 5; k++) + { + if (ct全体進行.n現在の値 >= AnimeCount + (Interval * k)) { - TJAPlayer3.Skin.soundPon.t再生する(); - this.b音声再生[1 + k] = true; + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.X = ct全体進行.n現在の値 <= AnimeCount + (Interval * k) + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - (AnimeCount + (Interval * k))) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.Y = ct全体進行.n現在の値 <= AnimeCount + (Interval * k) + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - (AnimeCount + (Interval * k))) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + + this.t小文字表示(num_x[k][pos], num_y[k][pos], scoresArr[k]); + + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.X = 1f; + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.Y = 1f; + + if (!this.b音声再生[1 + k]) + { + TJAPlayer3.Skin.soundPon.t再生する(); + this.b音声再生[1 + k] = true; + } + } + else + break; + } + + #endregion + + #region [ Score display ] + + if (ct全体進行.n現在の値 >= AnimeCount + Interval * 4 + 840) + { + int score_x; + int score_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + score_x = TJAPlayer3.Skin.Result_Score_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + score_y = TJAPlayer3.Skin.Result_Score_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + score_x = TJAPlayer3.Skin.Result_Score_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + score_y = TJAPlayer3.Skin.Result_Score_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + } + else + { + score_x = TJAPlayer3.Skin.Result_Score_X[pos]; + score_y = TJAPlayer3.Skin.Result_Score_Y[pos]; + } + + int AnimeCount1 = AnimeCount + Interval * 4 + 840; + + TJAPlayer3.Tx.Result_Score_Number.vc拡大縮小倍率.X = ct全体進行.n現在の値 <= AnimeCount1 + 270 ? 1.0f + (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1) / 1.5f * (Math.PI / 180)) * 0.65f : + ct全体進行.n現在の値 <= AnimeCount1 + 360 ? 1.0f - (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1 - 270) * (Math.PI / 180)) * 0.1f : 1.0f; + TJAPlayer3.Tx.Result_Score_Number.vc拡大縮小倍率.Y = ct全体進行.n現在の値 <= AnimeCount1 + 270 ? 1.0f + (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1) / 1.5f * (Math.PI / 180)) * 0.65f : + ct全体進行.n現在の値 <= AnimeCount1 + 360 ? 1.0f - (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1 - 270) * (Math.PI / 180)) * 0.1f : 1.0f; + + this.tスコア文字表示(score_x, score_y, (int)TJAPlayer3.stage演奏ドラム画面.actScore.Get(E楽器パート.DRUMS, i));// TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nScore.ToString())); + + if (!b音声再生[6]) + { + TJAPlayer3.Skin.soundScoreDon.t再生する(); + b音声再生[6] = true; } } - else - break; - } - #endregion - - #region [ Score display ] - - if (ct全体進行.n現在の値 >= AnimeCount + Interval * 4 + 840) - { - int AnimeCount1 = AnimeCount + Interval * 4 + 840; - - TJAPlayer3.Tx.Result_Score_Number.vc拡大縮小倍率.X = ct全体進行.n現在の値 <= AnimeCount1 + 270 ? 1.0f + (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1) / 1.5f * (Math.PI / 180)) * 0.65f : - ct全体進行.n現在の値 <= AnimeCount1 + 360 ? 1.0f - (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1 - 270) * (Math.PI / 180)) * 0.1f : 1.0f; - TJAPlayer3.Tx.Result_Score_Number.vc拡大縮小倍率.Y = ct全体進行.n現在の値 <= AnimeCount1 + 270 ? 1.0f + (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1) / 1.5f * (Math.PI / 180)) * 0.65f : - ct全体進行.n現在の値 <= AnimeCount1 + 360 ? 1.0f - (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1 - 270) * (Math.PI / 180)) * 0.1f : 1.0f; - - this.tスコア文字表示(TJAPlayer3.Skin.Result_Score_X[pos], TJAPlayer3.Skin.Result_Score_Y[pos], (int)TJAPlayer3.stage演奏ドラム画面.actScore.Get(E楽器パート.DRUMS, i));// TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nScore.ToString())); - - if (!b音声再生[6]) - { - TJAPlayer3.Skin.soundScoreDon.t再生する(); - b音声再生[6] = true; - } - } - - #endregion - } - - - - if (ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 1000) - { - #region [Score rank apparition] - - int scoreRank_width = TJAPlayer3.Tx.Result_ScoreRankEffect.szテクスチャサイズ.Width / 7; - int scoreRank_height = TJAPlayer3.Tx.Result_ScoreRankEffect.szテクスチャサイズ.Height / 4; - - if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 1180) - { - TJAPlayer3.Tx.Result_ScoreRankEffect.Opacity = (int)((ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1000)) / 180.0f * 255.0f); - TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 910)) / 1.5f * (Math.PI / 180)) * 1.4f; - TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 910)) / 1.5f * (Math.PI / 180)) * 1.4f; - } - else if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 1270) - { - TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1180)) * (Math.PI / 180)) * 0.5f; - TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1180)) * (Math.PI / 180)) * 0.5f; - } - else - { - TJAPlayer3.Tx.Result_ScoreRankEffect.Opacity = 255; - TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 1f; - TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 1f; - } - - if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage結果.nスコアランク[i] > 0) - { - int CurrentFlash = 0; - int[] FlashTimes = { 1500, 1540, 1580, 1620, 1660, 1700, 1740, 1780 }; - - if (ctFlash_Icon.n現在の値 >= FlashTimes[0] && ctFlash_Icon.n現在の値 <= FlashTimes[1] || ctFlash_Icon.n現在の値 >= FlashTimes[4] && ctFlash_Icon.n現在の値 <= FlashTimes[5]) - CurrentFlash = 1; - else if (ctFlash_Icon.n現在の値 >= FlashTimes[1] && ctFlash_Icon.n現在の値 <= FlashTimes[2] || ctFlash_Icon.n現在の値 >= FlashTimes[5] && ctFlash_Icon.n現在の値 <= FlashTimes[6]) - CurrentFlash = 2; - else if (ctFlash_Icon.n現在の値 >= FlashTimes[2] && ctFlash_Icon.n現在の値 <= FlashTimes[3] || ctFlash_Icon.n現在の値 >= FlashTimes[6] && ctFlash_Icon.n現在の値 <= FlashTimes[7]) - CurrentFlash = 3; - - - TJAPlayer3.Tx.Result_ScoreRankEffect.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_ScoreRankEffect_X[pos], TJAPlayer3.Skin.Result_ScoreRankEffect_Y[pos], - new Rectangle((TJAPlayer3.stage結果.nスコアランク[i] - 1) * scoreRank_width, CurrentFlash * scoreRank_height, scoreRank_width, scoreRank_height)); - - if (!b音声再生[7] && ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 1180) - { - TJAPlayer3.Skin.soundRankIn.t再生する(); - b音声再生[7] = true; - } - } - - #endregion - } - - - if (ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 2500) - { - #region [Crown apparition] - - int crownEffect_width = TJAPlayer3.Tx.Result_CrownEffect.szテクスチャサイズ.Width / 3; - int crownEffect_height = TJAPlayer3.Tx.Result_CrownEffect.szテクスチャサイズ.Height / 4; - - if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 2680) - { - TJAPlayer3.Tx.Result_CrownEffect.Opacity = (int)((ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2500)) / 180.0f * 255.0f); - TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2410)) / 1.5f * (Math.PI / 180)) * 1.4f; - TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2410)) / 1.5f * (Math.PI / 180)) * 1.4f; - } - else if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 2770) - { - TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2680)) * (Math.PI / 180)) * 0.5f; - TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2680)) * (Math.PI / 180)) * 0.5f; - } - else - { - TJAPlayer3.Tx.Result_CrownEffect.Opacity = 255; - TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 1f; - TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 1f; - } - - int ClearType = TJAPlayer3.stage結果.nクリア[i] - 1; - - if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)(Difficulty.Dan) && ClearType >= 0) - { - int CurrentFlash = 0; - int[] FlashTimes = { 2000, 2040, 2080, 2120, 2160, 2200, 2240, 2280 }; - - if (ctFlash_Icon.n現在の値 >= FlashTimes[0] && ctFlash_Icon.n現在の値 <= FlashTimes[1] || ctFlash_Icon.n現在の値 >= FlashTimes[4] && ctFlash_Icon.n現在の値 <= FlashTimes[5]) - CurrentFlash = 1; - else if (ctFlash_Icon.n現在の値 >= FlashTimes[1] && ctFlash_Icon.n現在の値 <= FlashTimes[2] || ctFlash_Icon.n現在の値 >= FlashTimes[5] && ctFlash_Icon.n現在の値 <= FlashTimes[6]) - CurrentFlash = 2; - else if (ctFlash_Icon.n現在の値 >= FlashTimes[2] && ctFlash_Icon.n現在の値 <= FlashTimes[3] || ctFlash_Icon.n現在の値 >= FlashTimes[6] && ctFlash_Icon.n現在の値 <= FlashTimes[7]) - CurrentFlash = 3; - - TJAPlayer3.Tx.Result_CrownEffect.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_CrownEffect_X[pos], TJAPlayer3.Skin.Result_CrownEffect_Y[pos], - new Rectangle(ClearType * crownEffect_width, CurrentFlash * crownEffect_height, crownEffect_width, crownEffect_height)); - - if (!b音声再生[8] && ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 2680) - { - TJAPlayer3.Skin.soundCrownIn.t再生する(); - b音声再生[8] = true; - } - } - - #endregion + #endregion + } } #endregion @@ -761,8 +885,8 @@ namespace TJAPlayer3 //int chara_x = TJAPlayer3.Skin.Characters_Result_X[_charaId][pos]; //int chara_y = TJAPlayer3.Skin.Characters_Result_Y[_charaId][pos]; - int chara_x = TJAPlayer3.Skin.Result_NamePlate_X[pos] + TJAPlayer3.Tx.NamePlateBase.szテクスチャサイズ.Width / 2; - int chara_y = TJAPlayer3.Skin.Result_NamePlate_Y[pos]; + int chara_x = namePlate_x[pos] + TJAPlayer3.Tx.NamePlateBase.szテクスチャサイズ.Width / 2; + int chara_y = namePlate_y[pos]; if (CResultCharacter.tIsCounterProcessing(p, CResultCharacter.ECharacterResult.CLEAR)) @@ -779,8 +903,8 @@ namespace TJAPlayer3 #region [PuchiChara] - int puchi_x = chara_x + TJAPlayer3.Skin.Adjustments_MenuPuchichara_X[pos]; - int puchi_y = chara_y + TJAPlayer3.Skin.Adjustments_MenuPuchichara_Y[pos]; + int puchi_x = chara_x + TJAPlayer3.Skin.Adjustments_MenuPuchichara_X[TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? pos : 0]; + int puchi_y = chara_y + TJAPlayer3.Skin.Adjustments_MenuPuchichara_Y[TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? pos : 0]; //int ttdiff = 640 - 152; //int ttps = 640 + ((pos == 1) ? ttdiff + 60 : -ttdiff); @@ -800,7 +924,7 @@ namespace TJAPlayer3 #region [Cherry blossom animation] - if (gaugeValues[p] >= 80.0f) + if (gaugeValues[p] >= 80.0f && TJAPlayer3.ConfigIni.nPlayerCount <= 2) { TJAPlayer3.Tx.Result_Flower.vc拡大縮小倍率.X = 0.6f * (ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f); TJAPlayer3.Tx.Result_Flower.vc拡大縮小倍率.Y = 0.6f * (ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f); @@ -816,7 +940,7 @@ namespace TJAPlayer3 #region [Cherry blossom Rotating flowers] - if (gaugeValues[p] >= 80.0f) + if (gaugeValues[p] >= 80.0f && TJAPlayer3.ConfigIni.nPlayerCount <= 2) { float FlowerTime = ctRotate_Flowers.n現在の値; @@ -852,7 +976,7 @@ namespace TJAPlayer3 #region [Panel shines] - if (gaugeValues[p] >= 80.0f) + if (gaugeValues[p] >= 80.0f && TJAPlayer3.ConfigIni.nPlayerCount <= 2) { int ShineTime = (int)ctShine_Plate.n現在の値; int Quadrant500 = ShineTime % 500; @@ -889,14 +1013,16 @@ namespace TJAPlayer3 else if (gaugeValues[p] >= 40.0f) Mood = 1; - int speechBuddle_width = TJAPlayer3.Tx.Result_Speech_Bubble[pos].szテクスチャサイズ.Width / 4; - int speechBuddle_height = TJAPlayer3.Tx.Result_Speech_Bubble[pos].szテクスチャサイズ.Height / 3; - - TJAPlayer3.Tx.Result_Speech_Bubble[pos].vc拡大縮小倍率.X = 0.9f * (ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f); - TJAPlayer3.Tx.Result_Speech_Bubble[pos].vc拡大縮小倍率.Y = 0.9f * (ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f); - TJAPlayer3.Tx.Result_Speech_Bubble[pos].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Speech_Bubble_X[pos], TJAPlayer3.Skin.Result_Speech_Bubble_Y[pos], - new Rectangle(Mood * speechBuddle_width, RandomText * speechBuddle_height, speechBuddle_width, speechBuddle_height)); + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + int speechBuddle_width = TJAPlayer3.Tx.Result_Speech_Bubble[pos].szテクスチャサイズ.Width / 4; + int speechBuddle_height = TJAPlayer3.Tx.Result_Speech_Bubble[pos].szテクスチャサイズ.Height / 3; + TJAPlayer3.Tx.Result_Speech_Bubble[pos].vc拡大縮小倍率.X = 0.9f * (ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f); + TJAPlayer3.Tx.Result_Speech_Bubble[pos].vc拡大縮小倍率.Y = 0.9f * (ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f); + TJAPlayer3.Tx.Result_Speech_Bubble[pos].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Speech_Bubble_X[pos], TJAPlayer3.Skin.Result_Speech_Bubble_Y[pos], + new Rectangle(Mood * speechBuddle_width, RandomText * speechBuddle_height, speechBuddle_width, speechBuddle_height)); + } if (!b音声再生[9]) { if (gaugeValues[p] >= 80.0f) @@ -917,6 +1043,157 @@ namespace TJAPlayer3 #endregion } + + + + + + if (ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 1000) + { + //if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + #region [Score rank apparition] + + int scoreRank_width = TJAPlayer3.Tx.Result_ScoreRankEffect.szテクスチャサイズ.Width / 7; + int scoreRank_height = TJAPlayer3.Tx.Result_ScoreRankEffect.szテクスチャサイズ.Height / 4; + + if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 1180) + { + TJAPlayer3.Tx.Result_ScoreRankEffect.Opacity = (int)((ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1000)) / 180.0f * 255.0f); + TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 910)) / 1.5f * (Math.PI / 180)) * 1.4f; + TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 910)) / 1.5f * (Math.PI / 180)) * 1.4f; + } + else if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 1270) + { + TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1180)) * (Math.PI / 180)) * 0.5f; + TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1180)) * (Math.PI / 180)) * 0.5f; + } + else + { + TJAPlayer3.Tx.Result_ScoreRankEffect.Opacity = 255; + TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 1f; + TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 1f; + } + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage結果.nスコアランク[p] > 0) + { + int CurrentFlash = 0; + int[] FlashTimes = { 1500, 1540, 1580, 1620, 1660, 1700, 1740, 1780 }; + + if (ctFlash_Icon.n現在の値 >= FlashTimes[0] && ctFlash_Icon.n現在の値 <= FlashTimes[1] || ctFlash_Icon.n現在の値 >= FlashTimes[4] && ctFlash_Icon.n現在の値 <= FlashTimes[5]) + CurrentFlash = 1; + else if (ctFlash_Icon.n現在の値 >= FlashTimes[1] && ctFlash_Icon.n現在の値 <= FlashTimes[2] || ctFlash_Icon.n現在の値 >= FlashTimes[5] && ctFlash_Icon.n現在の値 <= FlashTimes[6]) + CurrentFlash = 2; + else if (ctFlash_Icon.n現在の値 >= FlashTimes[2] && ctFlash_Icon.n現在の値 <= FlashTimes[3] || ctFlash_Icon.n現在の値 >= FlashTimes[6] && ctFlash_Icon.n現在の値 <= FlashTimes[7]) + CurrentFlash = 3; + + + int scoreRankEffect_x; + int scoreRankEffect_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + scoreRankEffect_x = TJAPlayer3.Skin.Result_ScoreRankEffect_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + scoreRankEffect_y = TJAPlayer3.Skin.Result_ScoreRankEffect_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + scoreRankEffect_x = TJAPlayer3.Skin.Result_ScoreRankEffect_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + scoreRankEffect_y = TJAPlayer3.Skin.Result_ScoreRankEffect_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + } + else + { + scoreRankEffect_x = TJAPlayer3.Skin.Result_ScoreRankEffect_X[pos]; + scoreRankEffect_y = TJAPlayer3.Skin.Result_ScoreRankEffect_Y[pos]; + } + + TJAPlayer3.Tx.Result_ScoreRankEffect.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, scoreRankEffect_x, scoreRankEffect_y, + new Rectangle((TJAPlayer3.stage結果.nスコアランク[p] - 1) * scoreRank_width, CurrentFlash * scoreRank_height, scoreRank_width, scoreRank_height)); + + if (!b音声再生[7] && ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 1180) + { + TJAPlayer3.Skin.soundRankIn.t再生する(); + b音声再生[7] = true; + } + } + + #endregion + } + } + + + if (ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 2500) + { + //if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + #region [Crown apparition] + + int crownEffect_width = TJAPlayer3.Tx.Result_CrownEffect.szテクスチャサイズ.Width / 3; + int crownEffect_height = TJAPlayer3.Tx.Result_CrownEffect.szテクスチャサイズ.Height / 4; + + if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 2680) + { + TJAPlayer3.Tx.Result_CrownEffect.Opacity = (int)((ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2500)) / 180.0f * 255.0f); + TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2410)) / 1.5f * (Math.PI / 180)) * 1.4f; + TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2410)) / 1.5f * (Math.PI / 180)) * 1.4f; + } + else if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 2770) + { + TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2680)) * (Math.PI / 180)) * 0.5f; + TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2680)) * (Math.PI / 180)) * 0.5f; + } + else + { + TJAPlayer3.Tx.Result_CrownEffect.Opacity = 255; + TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 1f; + TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 1f; + } + + int ClearType = TJAPlayer3.stage結果.nクリア[p] - 1; + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)(Difficulty.Dan) && ClearType >= 0) + { + int CurrentFlash = 0; + int[] FlashTimes = { 2000, 2040, 2080, 2120, 2160, 2200, 2240, 2280 }; + + if (ctFlash_Icon.n現在の値 >= FlashTimes[0] && ctFlash_Icon.n現在の値 <= FlashTimes[1] || ctFlash_Icon.n現在の値 >= FlashTimes[4] && ctFlash_Icon.n現在の値 <= FlashTimes[5]) + CurrentFlash = 1; + else if (ctFlash_Icon.n現在の値 >= FlashTimes[1] && ctFlash_Icon.n現在の値 <= FlashTimes[2] || ctFlash_Icon.n現在の値 >= FlashTimes[5] && ctFlash_Icon.n現在の値 <= FlashTimes[6]) + CurrentFlash = 2; + else if (ctFlash_Icon.n現在の値 >= FlashTimes[2] && ctFlash_Icon.n現在の値 <= FlashTimes[3] || ctFlash_Icon.n現在の値 >= FlashTimes[6] && ctFlash_Icon.n現在の値 <= FlashTimes[7]) + CurrentFlash = 3; + + + int crownEffect_x; + int crownEffect_y; + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + crownEffect_x = TJAPlayer3.Skin.Result_CrownEffect_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + crownEffect_y = TJAPlayer3.Skin.Result_CrownEffect_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + crownEffect_x = TJAPlayer3.Skin.Result_CrownEffect_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + crownEffect_y = TJAPlayer3.Skin.Result_CrownEffect_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + } + else + { + crownEffect_x = TJAPlayer3.Skin.Result_CrownEffect_X[pos]; + crownEffect_y = TJAPlayer3.Skin.Result_CrownEffect_Y[pos]; + } + + TJAPlayer3.Tx.Result_CrownEffect.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, crownEffect_x, crownEffect_y, + new Rectangle(ClearType * crownEffect_width, CurrentFlash * crownEffect_height, crownEffect_width, crownEffect_height)); + + if (!b音声再生[8] && ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 2680) + { + TJAPlayer3.Skin.soundCrownIn.t再生する(); + b音声再生[8] = true; + } + } + + #endregion + } + } } #endregion diff --git a/TJAPlayer3/Stages/08.Result/CStage結果.cs b/TJAPlayer3/Stages/08.Result/CStage結果.cs index 399aadf9..bb4a2deb 100644 --- a/TJAPlayer3/Stages/08.Result/CStage結果.cs +++ b/TJAPlayer3/Stages/08.Result/CStage結果.cs @@ -29,9 +29,9 @@ namespace TJAPlayer3 public STDGBVALUE nScoreRank; public int n総合ランク値; - public int[] nクリア = { 0, 0 }; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ - public int[] nスコアランク = { 0, 0 }; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極 - public int[] nHighScore = { 0, 0 }; + public int[] nクリア = { 0, 0, 0, 0, 0 }; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ + public int[] nスコアランク = { 0, 0, 0, 0, 0 }; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極 + public int[] nHighScore = { 0, 0, 0, 0, 0 }; public CDTX.CChip[] r空うちドラムチップ; public STDGBVALUE st演奏記録; @@ -61,8 +61,8 @@ namespace TJAPlayer3 public bool isAutoDisabled(int player) { - return ((player == 0 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) - || (player == 1 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P && !TJAPlayer3.ConfigIni.bAIBattleMode)); + return ((player != 1 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player]) + || (player == 1 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player] && !TJAPlayer3.ConfigIni.bAIBattleMode)); } @@ -146,15 +146,15 @@ namespace TJAPlayer3 switch (i) { case 0: - bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]; break; case 1: - bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]; break; case 2: - bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]; break; } this.fPerfect率[i] = bIsAutoPlay ? 0f : ((100f * part.nPerfect数) / ((float)part.n全チップ数)); @@ -190,7 +190,7 @@ namespace TJAPlayer3 } else { - var sr = (p == 0) ? TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank : TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank2P; + var sr = TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank[p]; for (int i = 0; i < 7; i++) { @@ -218,7 +218,10 @@ namespace TJAPlayer3 string[] str = { TJAPlayer3.DTX.strファイル名の絶対パス + currentSaveFile.ToString() + "P.score.ini", - TJAPlayer3.DTX.strファイル名の絶対パス + secondSaveFile.ToString() + "P.score.ini" + TJAPlayer3.DTX.strファイル名の絶対パス + secondSaveFile.ToString() + "P.score.ini", + TJAPlayer3.DTX.strファイル名の絶対パス + 3.ToString() + "P.score.ini", + TJAPlayer3.DTX.strファイル名の絶対パス + 4.ToString() + "P.score.ini", + TJAPlayer3.DTX.strファイル名の絶対パス + 5.ToString() + "P.score.ini" }; #region [Transfer legacy file format to new file format (P1)] @@ -238,7 +241,10 @@ namespace TJAPlayer3 CScoreIni[] ini = { new CScoreIni(str[0]), - new CScoreIni(str[1]) + new CScoreIni(str[1]), + new CScoreIni(str[2]), + new CScoreIni(str[3]), + new CScoreIni(str[4]) }; bool[] b今までにフルコンボしたことがある = new bool[] { false, false, false }; @@ -386,7 +392,7 @@ namespace TJAPlayer3 // this.st演奏記録[0].nクリア[0] = Math.Max(ini[0].stセクション[0].nクリア[0], clearValue); // Unlock dan grade - if (clearValue > 0 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) + if (clearValue > 0 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]) { this.newGradeGranted = TJAPlayer3.NamePlateConfig.tUpdateDanTitle(TJAPlayer3.stage選曲.r確定された曲.strタイトル.Substring(0, 2), clearValue % 2 == 0, @@ -441,14 +447,17 @@ namespace TJAPlayer3 Discord.UpdatePresence(TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? TJAPlayer3.stage選曲.r確定された曲.strタイトル + Discord.DiffToString(TJAPlayer3.stage選曲.n確定された曲の難易度[0]) : "", - Properties.Discord.Stage_Result + (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == true ? " (" + Properties.Discord.Info_IsAuto + ")" : ""), + Properties.Discord.Stage_Result + (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] == true ? " (" + Properties.Discord.Info_IsAuto + ")" : ""), TJAPlayer3.StartupTime); #region [Earned medals] this.nEarnedMedalsCount[0] = 0; - this.nEarnedMedalsCount[1] = 0; + this.nEarnedMedalsCount[1] = 0; + this.nEarnedMedalsCount[2] = 0; + this.nEarnedMedalsCount[3] = 0; + this.nEarnedMedalsCount[4] = 0; // Medals @@ -463,7 +472,10 @@ namespace TJAPlayer3 float[] modMultipliers = { TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 0), - TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 1) + TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 1), + TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 2), + TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 3), + TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 4) }; if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower) @@ -593,13 +605,9 @@ namespace TJAPlayer3 int scoreRankModifier = srModifiers[0] * diffModifier; for (int j = 1; j < 8; j++) - { - if (i == 0) - if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(i) >= TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank[j - 1]) - scoreRankModifier = srModifiers[j] * diffModifier; - else - if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(i) >= TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank2P[j - 1]) - scoreRankModifier = srModifiers[j] * diffModifier; + { + if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(i) >= TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank[i][j - 1]) + scoreRankModifier = srModifiers[j] * diffModifier; } #endregion @@ -622,20 +630,36 @@ namespace TJAPlayer3 for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { this.nEarnedMedalsCount[i] += Math.Min(10, TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nADLIB); - } - if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) - this.nEarnedMedalsCount[0] = 0; - if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode) - this.nEarnedMedalsCount[1] = 0; + if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[i]) + this.nEarnedMedalsCount[i] = 0; + if ((TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[i] || TJAPlayer3.ConfigIni.bAIBattleMode) && i == 1) + this.nEarnedMedalsCount[i] = 0; + } + TJAPlayer3.NamePlateConfig.tEarnCoins(this.nEarnedMedalsCount); - #endregion + #endregion - #region [Modals preprocessing] + #region [Modals preprocessing] - mqModals = new ModalQueue((TJAPlayer3.ConfigIni.nPlayerCount > 1) ? Modal.EModalFormat.Half : Modal.EModalFormat.Full); + if (TJAPlayer3.ConfigIni.nPlayerCount == 1) + { + mqModals = new ModalQueue(Modal.EModalFormat.Full); + } + else if(TJAPlayer3.ConfigIni.nPlayerCount == 2) + { + mqModals = new ModalQueue(Modal.EModalFormat.Half); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 3 || TJAPlayer3.ConfigIni.nPlayerCount == 4) + { + mqModals = new ModalQueue(Modal.EModalFormat.Half_4P); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + mqModals = new ModalQueue(Modal.EModalFormat.Half_5P); + } for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { @@ -648,7 +672,7 @@ namespace TJAPlayer3 i); } - displayedModals = new Modal[] { null, null }; + displayedModals = new Modal[] { null, null, null, null, null }; #endregion @@ -892,23 +916,50 @@ namespace TJAPlayer3 } else { - gaugeAnimFactors = (this.actParameterPanel.ct全体進行.n現在の値 - (int)MountainAppearValue) * 3; + if (TJAPlayer3.ConfigIni.nPlayerCount <= 2) + { + gaugeAnimFactors = (this.actParameterPanel.ct全体進行.n現在の値 - (int)MountainAppearValue) * 3; - int width1 = TJAPlayer3.Tx.Result_Background[1].szテクスチャサイズ.Width / 2; - int height1 = TJAPlayer3.Tx.Result_Background[1].szテクスチャサイズ.Height; + int width1 = TJAPlayer3.Tx.Result_Background[1].szテクスチャサイズ.Width / 2; + int height1 = TJAPlayer3.Tx.Result_Background[1].szテクスチャサイズ.Height; - for (int i = 0; i < 2; i++) - { - int width2 = TJAPlayer3.Tx.Result_Background[2 * i].szテクスチャサイズ.Width / 2; - int height2 = TJAPlayer3.Tx.Result_Background[2 * i].szテクスチャサイズ.Height; - TJAPlayer3.Tx.Result_Background[2 * i].t2D描画(TJAPlayer3.app.Device, width2 * i, 0, new Rectangle(width2 * i, 0, width2, height2)); + for (int i = 0; i < 2; i++) + { + int width2 = TJAPlayer3.Tx.Result_Background[2 * i].szテクスチャサイズ.Width / 2; + int height2 = TJAPlayer3.Tx.Result_Background[2 * i].szテクスチャサイズ.Height; + TJAPlayer3.Tx.Result_Background[2 * i].t2D描画(TJAPlayer3.app.Device, width2 * i, 0, new Rectangle(width2 * i, 0, width2, height2)); - if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 80.0f) - { - TJAPlayer3.Tx.Result_Background[1].Opacity = gaugeAnimFactors; - TJAPlayer3.Tx.Result_Background[1].t2D描画(TJAPlayer3.app.Device, width1 * i, 0, new Rectangle(width1 * i, 0, width1, height1)); + if (bClear[i]) + { + TJAPlayer3.Tx.Result_Background[1].Opacity = gaugeAnimFactors; + TJAPlayer3.Tx.Result_Background[1].t2D描画(TJAPlayer3.app.Device, width1 * i, 0, new Rectangle(width1 * i, 0, width1, height1)); + } } } + else + { + CTexture[] texs = new CTexture[5] { + TJAPlayer3.Tx.Result_Background[0], + TJAPlayer3.Tx.Result_Background[2], + TJAPlayer3.Tx.Result_Background[3], + TJAPlayer3.Tx.Result_Background[4], + TJAPlayer3.Tx.Result_Background[5] + }; + int count = Math.Max(TJAPlayer3.ConfigIni.nPlayerCount, 4); + for (int i = 0; i < count; i++) + { + if (bClear[i]) + { + gaugeAnimFactors = (this.actParameterPanel.ct全体進行.n現在の値 - (int)MountainAppearValue) * 3; + TJAPlayer3.Tx.Result_Background[1].Opacity = gaugeAnimFactors; + } + int width = texs[i].szテクスチャサイズ.Width / count; + texs[i].t2D描画(TJAPlayer3.app.Device, width * i, 0, new RectangleF(width * i, 0, width, texs[i].szテクスチャサイズ.Height)); + if (bClear[i]) + TJAPlayer3.Tx.Result_Background[1].t2D描画(TJAPlayer3.app.Device, width * i, 0, new RectangleF(width * i, 0, width, texs[i].szテクスチャサイズ.Height)); + } + } + } #endregion @@ -1382,13 +1433,40 @@ namespace TJAPlayer3 { int pos = i; if (TJAPlayer3.P1IsBlue() && TJAPlayer3.stage選曲.n確定された曲の難易度[0] < (int)Difficulty.Tower) - pos = 1; + pos = 1; + + int namePlate_x; + int namePlate_y; + int modIcons_x; + int modIcons_y; + + if (TJAPlayer3.ConfigIni.nPlayerCount == 5) + { + namePlate_x = TJAPlayer3.Skin.Result_NamePlate_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + namePlate_y = TJAPlayer3.Skin.Result_NamePlate_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + modIcons_x = TJAPlayer3.Skin.Result_ModIcons_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos); + modIcons_y = TJAPlayer3.Skin.Result_ModIcons_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos); + } + else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3) + { + namePlate_x = TJAPlayer3.Skin.Result_NamePlate_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + namePlate_y = TJAPlayer3.Skin.Result_NamePlate_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + modIcons_x = TJAPlayer3.Skin.Result_ModIcons_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos); + modIcons_y = TJAPlayer3.Skin.Result_ModIcons_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos); + } + else + { + namePlate_x = TJAPlayer3.Skin.Result_NamePlate_X[pos]; + namePlate_y = TJAPlayer3.Skin.Result_NamePlate_Y[pos]; + modIcons_x = TJAPlayer3.Skin.Result_ModIcons_X[pos]; + modIcons_y = TJAPlayer3.Skin.Result_ModIcons_Y[pos]; + } - TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.Result_NamePlate_X[pos], TJAPlayer3.Skin.Result_NamePlate_Y[pos], i); + TJAPlayer3.NamePlate.tNamePlateDraw(namePlate_x, namePlate_y, i); #region Mods - ModIcons.tDisplayModsMenu(TJAPlayer3.Skin.Result_ModIcons_X[pos], TJAPlayer3.Skin.Result_ModIcons_Y[pos], i); + ModIcons.tDisplayModsMenu(modIcons_x, modIcons_y, i); #endregion } @@ -1492,7 +1570,7 @@ namespace TJAPlayer3 displayedModals[0] = mqModals.tPopModal(0); displayedModals[0]?.tPlayModalSfx(); } - else if (TJAPlayer3.ConfigIni.nPlayerCount == 1 || mqModals.tIsQueueEmpty(1)) + else if (TJAPlayer3.ConfigIni.nPlayerCount == 1 || mqModals.tAreBothQueuesEmpty()) { #region [ Return to song select screen ] @@ -1528,6 +1606,45 @@ namespace TJAPlayer3 displayedModals[1]?.tPlayModalSfx(); } } + else if ((TJAPlayer3.ConfigIni.nPlayerCount > 2 && ( + TJAPlayer3.Pad.b押されたDGB(Eパッド.LRed3P) + || TJAPlayer3.Pad.b押されたDGB(Eパッド.RRed3P) + ))) + { + if (!mqModals.tIsQueueEmpty(2) && this.actParameterPanel.ct全体進行.n現在の値 >= this.actParameterPanel.MountainAppearValue) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + + displayedModals[2] = mqModals.tPopModal(2); + displayedModals[2]?.tPlayModalSfx(); + } + } + else if ((TJAPlayer3.ConfigIni.nPlayerCount > 3 && ( + TJAPlayer3.Pad.b押されたDGB(Eパッド.LRed4P) + || TJAPlayer3.Pad.b押されたDGB(Eパッド.RRed4P) + ))) + { + if (!mqModals.tIsQueueEmpty(3) && this.actParameterPanel.ct全体進行.n現在の値 >= this.actParameterPanel.MountainAppearValue) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + + displayedModals[3] = mqModals.tPopModal(3); + displayedModals[3]?.tPlayModalSfx(); + } + } + else if ((TJAPlayer3.ConfigIni.nPlayerCount > 4 && ( + TJAPlayer3.Pad.b押されたDGB(Eパッド.LRed5P) + || TJAPlayer3.Pad.b押されたDGB(Eパッド.RRed5P) + ))) + { + if (!mqModals.tIsQueueEmpty(4) && this.actParameterPanel.ct全体進行.n現在の値 >= this.actParameterPanel.MountainAppearValue) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + + displayedModals[4] = mqModals.tPopModal(4); + displayedModals[4]?.tPlayModalSfx(); + } + } if (TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftArrow) || @@ -1707,8 +1824,8 @@ namespace TJAPlayer3 for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) { - if ((i == 0 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) - || (i == 1 && (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode))) + if ((i != 1 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[i]) + || (i == 1 && (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[i] || TJAPlayer3.ConfigIni.bAIBattleMode))) continue; int actualPlayer = TJAPlayer3.GetActualPlayer(i); @@ -1758,7 +1875,7 @@ namespace TJAPlayer3 int actualPlayer = TJAPlayer3.SaveFile; - if (!TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) + if (!TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]) { cスコア.GPInfo[actualPlayer].nClear[0] = Math.Max(cスコア.GPInfo[actualPlayer].nClear[0], clearValue); @@ -1779,7 +1896,7 @@ namespace TJAPlayer3 int tmpClear = GetTowerScoreRank(); - if (!TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) + if (!TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]) { cスコア.GPInfo[actualPlayer].nClear[0] = Math.Max(cスコア.GPInfo[actualPlayer].nClear[0], tmpClear); cスコア.GPInfo[actualPlayer].nScoreRank[0] = Math.Max(cスコア.GPInfo[actualPlayer].nScoreRank[0], CFloorManagement.LastRegisteredFloor); @@ -1851,7 +1968,7 @@ namespace TJAPlayer3 } else { - return new bool[] { actParameterPanel.gaugeValues[0] >= 80, actParameterPanel.gaugeValues[1] >= 80 }; + return new bool[] { actParameterPanel.gaugeValues[0] >= 80, actParameterPanel.gaugeValues[1] >= 80, actParameterPanel.gaugeValues[2] >= 80, actParameterPanel.gaugeValues[3] >= 80, actParameterPanel.gaugeValues[4] >= 80 }; } } } @@ -1929,7 +2046,7 @@ namespace TJAPlayer3 private Modal[] displayedModals; // Coins information - private int[] nEarnedMedalsCount = { 0, 0 }; + private int[] nEarnedMedalsCount = { 0, 0, 0, 0, 0 }; #region [ #24609 リザルト画像をpngで保存する ] // #24609 2011.3.14 yyagi; to save result screen in case BestRank or HiSkill. /// diff --git a/TJAPlayer3/Stages/CNamePlate.cs b/TJAPlayer3/Stages/CNamePlate.cs index 1a02bc3b..9696a4fa 100644 --- a/TJAPlayer3/Stages/CNamePlate.cs +++ b/TJAPlayer3/Stages/CNamePlate.cs @@ -13,7 +13,7 @@ namespace TJAPlayer3 { public void RefleshSkin() { - for (int player = 0; player < 2; player++) + for (int player = 0; player < 5; player++) { this.pfName[player]?.Dispose(); @@ -52,7 +52,7 @@ namespace TJAPlayer3 { RefleshSkin(); - for (int player = 0; player < 2; player++) + for (int player = 0; player < 5; player++) { if (TJAPlayer3.NamePlateConfig.data.DanType[player] < 0) TJAPlayer3.NamePlateConfig.data.DanType[player] = 0; else if (TJAPlayer3.NamePlateConfig.data.DanType[player] > 2) TJAPlayer3.NamePlateConfig.data.DanType[player] = 2; @@ -75,6 +75,15 @@ namespace TJAPlayer3 } + public void tNamePlateDisplayNamePlate_Extension(int x, int y, int item) + { + int namePlateBaseX = TJAPlayer3.Tx.NamePlate_Extension.szテクスチャサイズ.Width; + int namePlateBaseY = TJAPlayer3.Tx.NamePlate_Extension.szテクスチャサイズ.Height / 12; + + TJAPlayer3.Tx.NamePlate_Extension?.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, item * namePlateBaseY, namePlateBaseX, namePlateBaseY)); + + } + public void tNamePlateRefreshTitles(int player) { int actualPlayer = TJAPlayer3.GetActualPlayer(player); @@ -149,7 +158,16 @@ namespace TJAPlayer3 // Player number if (TJAPlayer3.PlayerSide == 0 || TJAPlayer3.ConfigIni.nPlayerCount > 1) - tNamePlateDisplayNamePlateBase(x, y, basePlayer == 1 ? 2 : 0); + { + if (basePlayer < 2) + { + tNamePlateDisplayNamePlateBase(x, y, basePlayer == 1 ? 2 : 0); + } + else + { + tNamePlateDisplayNamePlate_Extension(x, y, basePlayer - 2); + } + } else tNamePlateDisplayNamePlateBase(x, y, 1); @@ -376,15 +394,15 @@ namespace TJAPlayer3 } - private CPrivateFastFont[] pfName = new CPrivateFastFont[2]; + private CPrivateFastFont[] pfName = new CPrivateFastFont[5]; private CPrivateFastFont pfTitle; private CPrivateFastFont pfdan; private CCounter ctNamePlateEffect; public CCounter ctAnimatedNamePlateTitle; - private CTexture[] txName = new CTexture[2]; - private CTexture[] txTitle = new CTexture[2]; - private CTexture[] txdan = new CTexture[2]; + private CTexture[] txName = new CTexture[5]; + private CTexture[] txTitle = new CTexture[5]; + private CTexture[] txdan = new CTexture[5]; } } diff --git a/Test/BGScriptAPI.lua b/Test/BGScriptAPI.lua index f411d519..ffa31960 100644 --- a/Test/BGScriptAPI.lua +++ b/Test/BGScriptAPI.lua @@ -3,7 +3,7 @@ local p1IsBlue = false local fps = 0 local deltaTime = 0 -local isClear = { false, false } +local isClear = { false, false, false, false, false } local towerNightNum = 0 local battleState = 0 diff --git a/Test/Global/Characters/Template/CharaConfig.txt b/Test/Global/Characters/Template/CharaConfig.txt index 1da13c78..a9a1066d 100644 --- a/Test/Global/Characters/Template/CharaConfig.txt +++ b/Test/Global/Characters/Template/CharaConfig.txt @@ -7,6 +7,12 @@ Game_Chara_X=0,0 ;キャラのY座標。(1P,2P) Game_Chara_Y=0,537 + +Game_Chara_4P=165,68 + + +Game_Chara_5P=165,40 + ;キャラのX座標。(1P,2P) Game_Chara_X_AI=472,602 @@ -37,6 +43,12 @@ Game_Chara_Balloon_X=0,0 ;ふうせん連打時のキャラ画像X座標。(1P,2P) Game_Chara_Balloon_Y=0,297 + +Game_Chara_Balloon_4P=0,-176 + + +Game_Chara_Balloon_5P=0,-168 + ;ふうせん連打アクション時に使用するタイマーの更新間隔。(ms) Game_Chara_Balloon_Timer=16 diff --git a/Test/System/SimpleStyle/Game4PConfig.ini b/Test/System/SimpleStyle/Game4PConfig.ini new file mode 100644 index 00000000..ce5ab43a --- /dev/null +++ b/Test/System/SimpleStyle/Game4PConfig.ini @@ -0,0 +1,102 @@ +;Included file +;Ƃ͒ʏʂݒł܂ +; TJAPlayer3-Develop-ReWriteŒljSkinConfig + +Game_ScrollField_4P=349,46 +Game_ScrollField_5P=349,27 + + +Game_SENotes_Offset_4P=-2,100 +Game_SENotes_Offset_5P=-2,94 + + +Game_Judge_4P=364,32 +Game_Judge_5P=364,24 + + +Game_UIMove_4P=0,176 +Game_UIMove_5P=0,144 + + +Game_ScoreRank_4P=87,88 +Game_ScoreRank_5P=87,80 + + +Game_CourseSymbol_4P=-4,56 +Game_CourseSymbol_5P=-4,48 + + +Game_Score_4P=20,54 +Game_Score_5P=20,46 + +Game_Score_Add_4P=20,94 +Game_Score_Add_5P=20,86 + +Game_Score_AddBonus_4P=20,134 +Game_Score_AddBonus_5P=20,126 + + +Game_Taiko_Background_4P=0,8 +Game_Taiko_Background_5P=0,0 + +Game_Taiko_ModIcons_4P=80,60 +Game_Taiko_ModIcons_5P=80,50 + +Game_Taiko_NamePlate_4P=-55,121 +Game_Taiko_NamePlate_5P=-55,97 + +Game_Taiko_PlayerNumber_4P=4,57 +Game_Taiko_PlayerNumber_5P=4,49 + +Game_Taiko_4P=205,7 +Game_Taiko_5P=205,-1 + +Game_Taiko_Combo_4P=267,73 +Game_Taiko_Combo_5P=267,65 + +Game_Taiko_Combo_Ex_4P=267,75 +Game_Taiko_Combo_Ex_5P=267,67 + +Game_Taiko_Combo_Ex4_4P=267,70 +Game_Taiko_Combo_Ex4_5P=267,62 + +Game_Taiko_Combo_Text_4P=268,99 +Game_Taiko_Combo_Text_5P=268,91 + +Game_Taiko_Frame_4P=333,8 +Game_Taiko_Frame_5P=333,0 + + +Game_Gauge_4P=492,-4 +Game_Gauge_5P=492,-12 + +Gauge_Soul_4P=1184,-12 +Gauge_Soul_5P=1184,-20 + +Gauge_Soul_Fire_4P=1112,-85 +Gauge_Soul_Fire_5P=1112,-93 + + +Game_Balloon_Balloon_4P=382,-61 +Game_Balloon_Balloon_5P=382,-53 + +Game_Balloon_Balloon_Frame_4P=382,-12 +Game_Balloon_Balloon_Frame_5P=382,-4 + +Game_Balloon_Balloon_Number_4P=423,95 +Game_Balloon_Balloon_Number_5P=423,87 + + +Game_Effects_Hit_Explosion_4P=284,-20 +Game_Effects_Hit_Explosion_5P=284,-39 + +Game_Effect_Fire_4P=240,-75 +Game_Effect_Fire_5P=240,-94 + + +Game_Lane_4P=333,46 +Game_Lane_5P=333,39 + + +Game_PuchiChara_4P=230,162 +Game_PuchiChara_5P=230,150 \ No newline at end of file diff --git a/Test/System/SimpleStyle/Graphics/11_Modals/Coin_half_4P.png b/Test/System/SimpleStyle/Graphics/11_Modals/Coin_half_4P.png new file mode 100644 index 00000000..699ebc3d Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/11_Modals/Coin_half_4P.png differ diff --git a/Test/System/SimpleStyle/Graphics/11_Modals/Coin_half_5P.png b/Test/System/SimpleStyle/Graphics/11_Modals/Coin_half_5P.png new file mode 100644 index 00000000..0b02730a Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/11_Modals/Coin_half_5P.png differ diff --git a/Test/System/SimpleStyle/Graphics/3_SongSelect/Coin_Slot_3P.png b/Test/System/SimpleStyle/Graphics/3_SongSelect/Coin_Slot_3P.png new file mode 100644 index 00000000..90a34f51 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/3_SongSelect/Coin_Slot_3P.png differ diff --git a/Test/System/SimpleStyle/Graphics/3_SongSelect/Coin_Slot_4P.png b/Test/System/SimpleStyle/Graphics/3_SongSelect/Coin_Slot_4P.png new file mode 100644 index 00000000..18d1c226 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/3_SongSelect/Coin_Slot_4P.png differ diff --git a/Test/System/SimpleStyle/Graphics/3_SongSelect/Coin_Slot_5P.png b/Test/System/SimpleStyle/Graphics/3_SongSelect/Coin_Slot_5P.png new file mode 100644 index 00000000..34404845 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/3_SongSelect/Coin_Slot_5P.png differ diff --git a/Test/System/SimpleStyle/Graphics/3_SongSelect/Difficulty_Select/Difficulty_Select_Bar5.png b/Test/System/SimpleStyle/Graphics/3_SongSelect/Difficulty_Select/Difficulty_Select_Bar5.png new file mode 100644 index 00000000..a35bab8d Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/3_SongSelect/Difficulty_Select/Difficulty_Select_Bar5.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/5_Background/Normal/Up/0/4PBG.png b/Test/System/SimpleStyle/Graphics/5_Game/5_Background/Normal/Up/0/4PBG.png new file mode 100644 index 00000000..f6184783 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/5_Game/5_Background/Normal/Up/0/4PBG.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/5_Background/Normal/Up/0/Script.lua b/Test/System/SimpleStyle/Graphics/5_Game/5_Background/Normal/Up/0/Script.lua index 5a7a7b69..0fdb13fb 100644 --- a/Test/System/SimpleStyle/Graphics/5_Game/5_Background/Normal/Up/0/Script.lua +++ b/Test/System/SimpleStyle/Graphics/5_Game/5_Background/Normal/Up/0/Script.lua @@ -49,80 +49,90 @@ function clearOut(player) end function init() - func:AddGraph("1P_Up_1st.png") - func:AddGraph("2P_Up_1st.png") - func:AddGraph("1P_Up_2nd.png") - func:AddGraph("2P_Up_2nd.png") - func:AddGraph("1P_Up_3rd.png") - func:AddGraph("2P_Up_3rd.png") + if playerCount <= 2 then + func:AddGraph("1P_Up_1st.png") + func:AddGraph("2P_Up_1st.png") + func:AddGraph("1P_Up_2nd.png") + func:AddGraph("2P_Up_2nd.png") + func:AddGraph("1P_Up_3rd.png") + func:AddGraph("2P_Up_3rd.png") - func:AddGraph("Clear_Up_1st.png") - func:AddGraph("Clear_Up_2nd.png") - func:AddGraph("Clear_Up_3rd.png") + func:AddGraph("Clear_Up_1st.png") + func:AddGraph("Clear_Up_2nd.png") + func:AddGraph("Clear_Up_3rd.png") + else + func:AddGraph("4PBG.png") + end end function update() - bgScrollX = bgScrollX - (59 * deltaTime) - bgScrollY = bgScrollY + (14 * deltaTime) - bg3rdAnime = bg3rdAnime + (300 * deltaTime) + if playerCount <= 2 then + bgScrollX = bgScrollX - (59 * deltaTime) + bgScrollY = bgScrollY + (14 * deltaTime) + bg3rdAnime = bg3rdAnime + (300 * deltaTime) - for player = 0, playerCount - 1 do - if isClear[player] then - bgClearFade[player + 1] = bgClearFade[player + 1] + (2000 * deltaTime) - else - bgClearFade[player + 1] = bgClearFade[player + 1] - (2000 * deltaTime) - end + for player = 0, playerCount - 1 do + if isClear[player] then + bgClearFade[player + 1] = bgClearFade[player + 1] + (2000 * deltaTime) + else + bgClearFade[player + 1] = bgClearFade[player + 1] - (2000 * deltaTime) + end - if bgClearFade[player + 1] > 255 then - bgClearFade[player + 1] = 255 + if bgClearFade[player + 1] > 255 then + bgClearFade[player + 1] = 255 + end + if bgClearFade[player + 1] < 0 then + bgClearFade[player + 1] = 0 + end end - if bgClearFade[player + 1] < 0 then - bgClearFade[player + 1] = 0 + + if bgScrollX < -loopWidth then + bgScrollX = 0 + end + if bgScrollY > loopHeight then + bgScrollY = 0 + end + if bg3rdAnime > 600 then + bg3rdAnime = 0 end - end - if bgScrollX < -loopWidth then - bgScrollX = 0 - end - if bgScrollY > loopHeight then - bgScrollY = 0 - end - if bg3rdAnime > 600 then - bg3rdAnime = 0 - end - - if bg3rdAnime < 270 then - --speed - bgScrollX_3rd = bg3rdAnime * 0.9258 - bgScrollY_3rd = math.sin(bg3rdAnime * (math.pi / 270.0)) * 40.0 - else - bgScrollX_3rd = 250 + (bg3rdAnime - 270) * 0.24; - if bg3rdAnime < 490 then - bgScrollY_3rd = -math.sin((bg3rdAnime - 270) * (math.pi / 170.0)) * 15.0 + if bg3rdAnime < 270 then + --speed + bgScrollX_3rd = bg3rdAnime * 0.9258 + bgScrollY_3rd = math.sin(bg3rdAnime * (math.pi / 270.0)) * 40.0 else - bgScrollY_3rd = -(math.sin(220 * (math.pi / 170.0)) * 15.0) + (((bg3rdAnime - 490) / 110) * (math.sin(220 * (math.pi / 170)) * 15.0)) + bgScrollX_3rd = 250 + (bg3rdAnime - 270) * 0.24; + if bg3rdAnime < 490 then + bgScrollY_3rd = -math.sin((bg3rdAnime - 270) * (math.pi / 170.0)) * 15.0 + else + bgScrollY_3rd = -(math.sin(220 * (math.pi / 170.0)) * 15.0) + (((bg3rdAnime - 490) / 110) * (math.sin(220 * (math.pi / 170)) * 15.0)) + end end end end function draw() - for player = 0, playerCount - 1 do + if playerCount <= 2 then + for player = 0, playerCount - 1 do - func:SetOpacity(bgClearFade[player + 1], "Clear_Up_1st.png") - func:SetOpacity(bgClearFade[player + 1], "Clear_Up_2nd.png") - func:SetOpacity(bgClearFade[player + 1], "Clear_Up_3rd.png") + func:SetOpacity(bgClearFade[player + 1], "Clear_Up_1st.png") + func:SetOpacity(bgClearFade[player + 1], "Clear_Up_2nd.png") + func:SetOpacity(bgClearFade[player + 1], "Clear_Up_3rd.png") - y = 0 - if player == 1 then - y = 536 - end - for i = 0, 5 do - drawUp1st(bgScrollX + (loopWidth * i), y, player) - drawUp2nd(bgScrollX + (loopWidth * i), y, player) - end - for i = 0, 5 do - drawUp3rd(bgScrollX + (loopWidth * i), y, player) + y = 0 + if player == 1 then + y = 536 + end + for i = 0, 5 do + drawUp1st(bgScrollX + (loopWidth * i), y, player) + drawUp2nd(bgScrollX + (loopWidth * i), y, player) + end + for i = 0, 5 do + drawUp3rd(bgScrollX + (loopWidth * i), y, player) + end end + else + func:DrawGraph(0, 0, "4PBG.png"); end end diff --git a/Test/System/SimpleStyle/Graphics/5_Game/6_Taiko/4PPlay_Frame.png b/Test/System/SimpleStyle/Graphics/5_Game/6_Taiko/4PPlay_Frame.png new file mode 100644 index 00000000..6ec7968c Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/5_Game/6_Taiko/4PPlay_Frame.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/6_Taiko/5P_Background.png b/Test/System/SimpleStyle/Graphics/5_Game/6_Taiko/5P_Background.png new file mode 100644 index 00000000..3168e666 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/5_Game/6_Taiko/5P_Background.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/6_Taiko/Score_5P.png b/Test/System/SimpleStyle/Graphics/5_Game/6_Taiko/Score_5P.png new file mode 100644 index 00000000..efbc4acf Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/5_Game/6_Taiko/Score_5P.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/1P_4PGauge.png b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/1P_4PGauge.png index da9a3620..1ebfa38b 100644 Binary files a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/1P_4PGauge.png and b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/1P_4PGauge.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/1P_Base_4PGauge.png b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/1P_Base_4PGauge.png new file mode 100644 index 00000000..8062d5b3 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/1P_Base_4PGauge.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/2P_4PGauge.png b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/2P_4PGauge.png index 83b6fb12..2e3c1ed6 100644 Binary files a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/2P_4PGauge.png and b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/2P_4PGauge.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/2P_Base_4PGauge.png b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/2P_Base_4PGauge.png new file mode 100644 index 00000000..68a4da14 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/2P_Base_4PGauge.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/3P_4PGauge.png b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/3P_4PGauge.png index abbb6c5c..d7d7a7f8 100644 Binary files a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/3P_4PGauge.png and b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/3P_4PGauge.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/3P_Base_4PGauge.png b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/3P_Base_4PGauge.png new file mode 100644 index 00000000..c8cce9f9 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/3P_Base_4PGauge.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/4P_4PGauge.png b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/4P_4PGauge.png index cb150e97..f6f04b11 100644 Binary files a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/4P_4PGauge.png and b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/4P_4PGauge.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/4P_Base_4PGauge.png b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/4P_Base_4PGauge.png new file mode 100644 index 00000000..213ccf09 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/4P_Base_4PGauge.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/5P_4PGauge.png b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/5P_4PGauge.png new file mode 100644 index 00000000..739f7b99 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/5P_4PGauge.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/5P_Base_4PGauge.png b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/5P_Base_4PGauge.png new file mode 100644 index 00000000..f2fecc98 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/5P_Base_4PGauge.png differ diff --git a/Test/System/SimpleStyle/Graphics/5_Game/9_End/Clear/Script.lua b/Test/System/SimpleStyle/Graphics/5_Game/9_End/Clear/Script.lua index c5d57f7d..e2feff9f 100644 --- a/Test/System/SimpleStyle/Graphics/5_Game/9_End/Clear/Script.lua +++ b/Test/System/SimpleStyle/Graphics/5_Game/9_End/Clear/Script.lua @@ -11,12 +11,12 @@ --func:SetColor(r, g, b, "filename") -local y = { 210, 386 } +local y = { 210, 386, 0, 0, 0 } local sideTextureCount = 4 -local animeCounter = { 0, 0 } -local nowFrame = { 0, 0 } +local animeCounter = { 0, 0, 0, 0, 0 } +local nowFrame = { 0, 0, 0, 0, 0 } @@ -32,10 +32,18 @@ function clearOut(player) end function playEndAnime(player) - animeCounter = { 0, 0 } + animeCounter = { 0, 0, 0, 0, 0 } end function init() + + if playerCount <= 2 then + y = { 210, 386, 0, 0, 0 } + elseif playerCount == 5 then + y = { 36, 170, 314, 458, 602 } + else + y = { 64, 240, 416, 592, 0 } + end func:AddGraph("Clear_Text.png") func:AddGraph("Clear_Text_Effect.png") diff --git a/Test/System/SimpleStyle/Graphics/5_Game/9_End/ClearFailed/Script.lua b/Test/System/SimpleStyle/Graphics/5_Game/9_End/ClearFailed/Script.lua index 7270288f..be128011 100644 --- a/Test/System/SimpleStyle/Graphics/5_Game/9_End/ClearFailed/Script.lua +++ b/Test/System/SimpleStyle/Graphics/5_Game/9_End/ClearFailed/Script.lua @@ -10,11 +10,11 @@ --func:SetScale(xscale, yscale, "filename") --func:SetColor(r, g, b, "filename") -local x = { 505, 505 } -local y = { 145, 321 } +local x = { 505, 505, 505, 505, 505 } +local y = { 145, 321, 0, 0, 0 } -local animeCounter = { 0, 0 } -local nowFrame = { 0, 0 } +local animeCounter = { 0, 0, 0, 0, 0 } +local nowFrame = { 0, 0, 0, 0, 0 } local textureCount = 25 @@ -27,11 +27,20 @@ function clearOut(player) end function playEndAnime(player) - animeCounter = { 0, 0 } - nowFrame = { 0, 0 } + animeCounter = { 0, 0, 0, 0, 0 } + nowFrame = { 0, 0, 0, 0, 0 } end function init() + + if playerCount <= 2 then + y = { 145, 321, 0, 0, 0 } + elseif playerCount == 5 then + y = { -23, 121, 265, 409, 553 } + else + y = { -1, 175, 351, 527, 0 } + end + for i = 0 , textureCount do func:AddGraph(tostring(i)..".png") end diff --git a/Test/System/SimpleStyle/Graphics/5_Game/9_End/DondaFullCombo/Script.lua b/Test/System/SimpleStyle/Graphics/5_Game/9_End/DondaFullCombo/Script.lua index 8f524c91..4aa49c6d 100644 --- a/Test/System/SimpleStyle/Graphics/5_Game/9_End/DondaFullCombo/Script.lua +++ b/Test/System/SimpleStyle/Graphics/5_Game/9_End/DondaFullCombo/Script.lua @@ -10,11 +10,11 @@ --func:SetScale(xscale, yscale, "filename") --func:SetColor(r, g, b, "filename") -local x = { 332, 332 } -local y = { 192, 368 } +local x = { 332, 332, 332, 332, 332 } +local y = { 192, 368, 0, 0, 0 } -local animeCounter = { 0, 0 } -local nowFrame = { 0, 0 } +local animeCounter = { 0, 0, 0, 0, 0 } +local nowFrame = { 0, 0, 0, 0, 0 } local textureCount = 61 @@ -25,11 +25,19 @@ function clearOut(player) end function playEndAnime(player) - animeCounter = { 0, 0 } - nowFrame = { 0, 0 } + animeCounter = { 0, 0, 0, 0, 0 } + nowFrame = { 0, 0, 0, 0, 0 } end function init() + if playerCount <= 2 then + y = { 192, 368, 0, 0, 0 } + elseif playerCount == 5 then + y = { 24, 168, 312, 456, 600 } + else + y = { 46, 222, 398, 574, 0 } + end + func:AddGraph("bg.png") for i = 0 , textureCount do func:AddGraph(tostring(i)..".png") diff --git a/Test/System/SimpleStyle/Graphics/5_Game/9_End/FullCombo/Script.lua b/Test/System/SimpleStyle/Graphics/5_Game/9_End/FullCombo/Script.lua index 20599f70..b5312ade 100644 --- a/Test/System/SimpleStyle/Graphics/5_Game/9_End/FullCombo/Script.lua +++ b/Test/System/SimpleStyle/Graphics/5_Game/9_End/FullCombo/Script.lua @@ -10,11 +10,11 @@ --func:SetScale(xscale, yscale, "filename") --func:SetColor(r, g, b, "filename") -local x = { 330, 330 } -local y = { 50, 226 } +local x = { 330, 330, 330, 330, 330 } +local y = { 50, 226, 0, 0, 0 } -local animeCounter = { 0, 0 } -local nowFrame = { 0, 0 } +local animeCounter = { 0, 0, 0, 0, 0 } +local nowFrame = { 0, 0, 0, 0, 0 } local textureCount = 66 @@ -25,11 +25,20 @@ function clearOut(player) end function playEndAnime(player) - animeCounter = { 0, 0 } - nowFrame = { 0, 0 } + animeCounter = { 0, 0, 0, 0, 0 } + nowFrame = { 0, 0, 0, 0, 0 } end function init() + + if playerCount <= 2 then + y = { 50, 226, 0, 0, 0 } + elseif playerCount == 5 then + y = { -118, 26, 170, 314, 458 } + else + y = { -96, 80, 256, 432, 0 } + end + for i = 0 , textureCount do func:AddGraph(tostring(i)..".png") end diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Background_3.png b/Test/System/SimpleStyle/Graphics/6_Result/Background_3.png new file mode 100644 index 00000000..0c397d69 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Background_3.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Background_4.png b/Test/System/SimpleStyle/Graphics/6_Result/Background_4.png new file mode 100644 index 00000000..08f68533 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Background_4.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Background_5.png b/Test/System/SimpleStyle/Graphics/6_Result/Background_5.png new file mode 100644 index 00000000..dad7fcc2 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Background_5.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Gauge_3.png b/Test/System/SimpleStyle/Graphics/6_Result/Gauge_3.png new file mode 100644 index 00000000..228984bd Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Gauge_3.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Gauge_4.png b/Test/System/SimpleStyle/Graphics/6_Result/Gauge_4.png new file mode 100644 index 00000000..bc1b6723 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Gauge_4.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Gauge_5.png b/Test/System/SimpleStyle/Graphics/6_Result/Gauge_5.png new file mode 100644 index 00000000..24a0a708 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Gauge_5.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Gauge_Base_3.png b/Test/System/SimpleStyle/Graphics/6_Result/Gauge_Base_3.png new file mode 100644 index 00000000..aa0ccf7b Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Gauge_Base_3.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Gauge_Base_4.png b/Test/System/SimpleStyle/Graphics/6_Result/Gauge_Base_4.png new file mode 100644 index 00000000..aed3c0e4 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Gauge_Base_4.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Gauge_Base_5.png b/Test/System/SimpleStyle/Graphics/6_Result/Gauge_Base_5.png new file mode 100644 index 00000000..281a8b6e Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Gauge_Base_5.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_1.png b/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_1.png new file mode 100644 index 00000000..22682044 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_1.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_2.png b/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_2.png new file mode 100644 index 00000000..66c20ba0 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_2.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_3.png b/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_3.png new file mode 100644 index 00000000..ee23050d Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_3.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_4.png b/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_4.png new file mode 100644 index 00000000..2a85cf68 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_4.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_5_Unused.png b/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_5_Unused.png new file mode 100644 index 00000000..cd1db702 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_5_Unused.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_1.png b/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_1.png new file mode 100644 index 00000000..d14cc900 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_1.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_2.png b/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_2.png new file mode 100644 index 00000000..ba662b6f Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_2.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_3.png b/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_3.png new file mode 100644 index 00000000..e7701215 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_3.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_4.png b/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_4.png new file mode 100644 index 00000000..bb466ed8 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_4.png differ diff --git a/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_5.png b/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_5.png new file mode 100644 index 00000000..880f8657 Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_5.png differ diff --git a/Test/System/SimpleStyle/Graphics/NamePlate_Extension.png b/Test/System/SimpleStyle/Graphics/NamePlate_Extension.png new file mode 100644 index 00000000..18eb19ca Binary files /dev/null and b/Test/System/SimpleStyle/Graphics/NamePlate_Extension.png differ diff --git a/Test/System/SimpleStyle/Modal4PConfig.ini b/Test/System/SimpleStyle/Modal4PConfig.ini new file mode 100644 index 00000000..babe0400 --- /dev/null +++ b/Test/System/SimpleStyle/Modal4PConfig.ini @@ -0,0 +1,17 @@ +;Included file +;Ƃ͒ʏʂݒł܂ + +Modal_Title_Half_X_4P=320,960,320,960 +Modal_Title_Half_X_5P=320,960,320,960,320 + +Modal_Title_Half_Y_4P=66,66,426,426 +Modal_Title_Half_Y_5P=50,50,290,290,530 + +Modal_Text_Half_X_4P=320,960,320,960 +Modal_Text_Half_X_5P=320,960,320,960,320 + +Modal_Text_Half_Y_4P=159,159,519,519 +Modal_Text_Half_Y_5P=107,107,347,347,587 + +Modal_Text_Half_Move_4P=0,59 +Modal_Text_Half_Move_5P=0,40 \ No newline at end of file diff --git a/Test/System/SimpleStyle/Result4PConfig.ini b/Test/System/SimpleStyle/Result4PConfig.ini new file mode 100644 index 00000000..eadb4c3a --- /dev/null +++ b/Test/System/SimpleStyle/Result4PConfig.ini @@ -0,0 +1,57 @@ +;Included file +;Ƃ͒ʏʂݒł܂ + + +Result_UIMove_4P=320,0 +Result_UIMove_5P=256,0 + +Result_DifficultyBar_4P=6,101 +Result_DifficultyBar_5P=-9,101 + +Result_Gauge_Base_4P=25,140 +Result_Gauge_Base_5P=4,140 + +Result_Gauge_4P=27,140 +Result_Gauge_5P=6,140 + +Result_Gauge_ClearText_4P=218,142 +Result_Gauge_ClearText_5P=197,142 + +Result_Gauge_Rainbow_4P=26,144 +Result_Gauge_Rainbow_5P=5,144 + +Result_Soul_Fire_4P=284,160 +Result_Soul_Fire_5P=232,120 + +Result_Soul_Text_4P=283,159 +Result_Soul_Text_5P=231,119 + +Result_Perfect_4P=183,251 +Result_Perfect_5P=151,251 + +Result_Good_4P=183,293 +Result_Good_5P=151,293 + +Result_Miss_4P=183,335 +Result_Miss_5P=151,335 + +Result_Roll_4P=183,377 +Result_Roll_5P=151,377 + +Result_MaxCombo_4P=183,419 +Result_MaxCombo_5P=151,419 + +Result_Score_4P=253,180 +Result_Score_5P=221,180 + +Result_ScoreRankEffect_4P=100,545 +Result_ScoreRankEffect_5P=68,545 + +Result_CrownEffect_4P=220,545 +Result_CrownEffect_5P=188,545 + +Result_NamePlate_4P=80,621 +Result_NamePlate_5P=31,621 + +Result_ModIcons_4P=15,678 +Result_ModIcons_5P=-17,678 \ No newline at end of file diff --git a/Test/System/SimpleStyle/SkinConfig.ini b/Test/System/SimpleStyle/SkinConfig.ini index 8da3cf18..dc6c7ced 100644 --- a/Test/System/SimpleStyle/SkinConfig.ini +++ b/Test/System/SimpleStyle/SkinConfig.ini @@ -15,7 +15,9 @@ Resolution=1280,720 #include DaniSelectConfig.ini #include SongLoadingConfig.ini #include GameConfig.ini +#include Game4PConfig.ini #include ResultConfig.ini +#include Result4PConfig.ini #include AIResultConfig.ini #include DanResultConfig.ini #include TowerResultConfig.ini @@ -23,4 +25,5 @@ Resolution=1280,720 #include OnlineLoungeConfig.ini #include OpenEncyclopediaConfig.ini #include NamePlateConfig.ini -#include ModalConfig.ini \ No newline at end of file +#include ModalConfig.ini +#include Modal4PConfig.ini \ No newline at end of file diff --git a/Test/System/SimpleStyle/SongSelectConfig.ini b/Test/System/SimpleStyle/SongSelectConfig.ini index a7bac270..177caece 100644 --- a/Test/System/SimpleStyle/SongSelectConfig.ini +++ b/Test/System/SimpleStyle/SongSelectConfig.ini @@ -101,9 +101,9 @@ SongSelect_BoxExplanation_Y=360 SongSelect_BoxExplanation_Interval=30 -SongSelect_NamePlate_X=36,1020 +SongSelect_NamePlate_X=36,1020,216,840,396 -SongSelect_NamePlate_Y=615,615 +SongSelect_NamePlate_Y=615,615,561,561,615 SongSelect_Auto_X=60,950 @@ -111,9 +111,9 @@ SongSelect_Auto_X=60,950 SongSelect_Auto_Y=650,650 -SongSelect_ModIcons_X=40,1020 +SongSelect_ModIcons_X=40,1020,220,840,400 -SongSelect_ModIcons_Y=672,672 +SongSelect_ModIcons_Y=672,672,618,618,672 @@ -122,19 +122,19 @@ SongSelect_Timer=1148,57 SongSelect_Timer_Interval=46,0 -SongSelect_Table_X=0,1034 +SongSelect_Table_X=0,1034,180,854,360 -SongSelect_Table_Y=0,0 +SongSelect_Table_Y=0,0,-204,-204,0 -SongSelect_High_Score_X=124,1158 +SongSelect_High_Score_X=124,1158,304,978,484 -SongSelect_High_Score_Y=416,416 +SongSelect_High_Score_Y=416,416,212,212,416 -SongSelect_High_Score_Difficulty_Cymbol_X=46,1080 +SongSelect_High_Score_Difficulty_Cymbol_X=46,1080,226,900,406 -SongSelect_High_Score_Difficulty_Cymbol_Y=418,418 +SongSelect_High_Score_Difficulty_Cymbol_Y=418,418,214,214,418 SongSelect_BoardNumber_1P_X=62,125,190,62,125,190,190,62,125,190,74,114 @@ -145,6 +145,18 @@ SongSelect_BoardNumber_2P_X=1096,1159,1224,1096,1159,1224,1224,1096,1159,1224,12 SongSelect_BoardNumber_2P_Y=276,276,276,251,251,251,226,304,304,304,353,415 +SongSelect_BoardNumber_3P_X=242,305,370,242,305,370,370,242,305,370,254,294 + +SongSelect_BoardNumber_3P_Y=72,72,72,47,47,47,22,100,100,100,149,211 + +SongSelect_BoardNumber_4P_X=916,979,1044,916,979,1044,1044,916,979,1044,1034,968 + +SongSelect_BoardNumber_4P_Y=72,72,72,47,47,47,22,100,100,100,149,211 + +SongSelect_BoardNumber_5P_X=422,485,550,422,485,550,550,422,485,550,434,474 + +SongSelect_BoardNumber_5P_Y=276,276,276,251,251,251,226,304,304,304,353,415 + SongSelect_BoardNumber_Interval=9,0