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