From dbf8dc9471781d4215642beeccd670904cdab9f5 Mon Sep 17 00:00:00 2001
From: Takkkom <76614532+Takkkom@users.noreply.github.com>
Date: Wed, 15 Feb 2023 09:27:05 +0900
Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E4=BA=BA=E6=95=B0=E3=83=97=E3=83=AC?=
=?UTF-8?q?=E3=82=A4=E3=81=AB=E5=AF=BE=E5=BF=9C=20(#378)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* 多人数プレイに対応
* 不具合の修正
---
TJAPlayer3/Character/CMenuCharacter.cs | 22 +-
TJAPlayer3/Character/CResultCharacter.cs | 18 +-
TJAPlayer3/Character/PuchiChara.cs | 4 +-
TJAPlayer3/Common/CConfigIni.cs | 555 +++++++-
TJAPlayer3/Common/CHitSounds.cs | 10 +-
TJAPlayer3/Common/CSkin.cs | 1177 ++++++++++++++++-
TJAPlayer3/Common/CSongDict.cs | 9 +-
TJAPlayer3/Common/C定数.cs | 58 +-
TJAPlayer3/Common/Modal.cs | 83 +-
TJAPlayer3/Common/ModalQueue.cs | 21 +-
TJAPlayer3/Common/NamePlateConfig.cs | 31 +-
TJAPlayer3/Common/TJAPlayer3.cs | 76 +-
TJAPlayer3/I18N/CLang_jp.cs | 34 +
TJAPlayer3/Songs/CDTXStyleExtractor.cs | 2 +-
TJAPlayer3/Songs/CScoreIni.cs | 2 +-
TJAPlayer3/Songs/Cスコア.cs | 4 +-
TJAPlayer3/Stages/01.StartUp/TextureLoader.cs | 134 +-
TJAPlayer3/Stages/02.Title/CStageタイトル.cs | 6 +-
TJAPlayer3/Stages/04.Config/CActConfigList.cs | 142 +-
.../Stages/05.SongSelect/CActPlayOption.cs | 78 +-
.../05.SongSelect/CActSelectQuickConfig.cs | 2 +-
.../05.SongSelect/CActSelect曲リスト.cs | 12 +
.../05.SongSelect/CActSelect難易度選択画面.cs | 112 +-
TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs | 47 +-
.../Stages/06.SongLoading/CStage曲読み込み.cs | 18 +-
.../Stages/07.Game/CAct演奏Combo共通.cs | 142 +-
.../Stages/07.Game/CAct演奏Combo音声.cs | 12 +-
.../Stages/07.Game/CAct演奏ゲージ共通.cs | 13 +-
.../Stages/07.Game/CAct演奏スクロール速度.cs | 10 +-
.../Stages/07.Game/CAct演奏スコア共通.cs | 61 +-
.../Stages/07.Game/CAct演奏パネル文字列.cs | 2 +-
TJAPlayer3/Stages/07.Game/CAct演奏演奏情報.cs | 4 +-
TJAPlayer3/Stages/07.Game/CInvisibleChip.cs | 8 +-
.../Stages/07.Game/CStage演奏画面共通.cs | 377 +++---
.../07.Game/Taiko/CAct演奏DrumsMtaiko.cs | 293 +++-
.../Taiko/CAct演奏Drumsキャラクター.cs | 197 ++-
.../07.Game/Taiko/CAct演奏Drumsゲージ.cs | 342 +++--
.../Taiko/CAct演奏Drumsコンボ吹き出し.cs | 7 +-
.../07.Game/Taiko/CAct演奏Drumsスコア.cs | 52 +-
.../Taiko/CAct演奏Drumsスコアランク.cs | 120 +-
.../Taiko/CAct演奏DrumsチップファイアD.cs | 44 +-
.../07.Game/Taiko/CAct演奏Drumsレーン.cs | 77 +-
.../07.Game/Taiko/CAct演奏Drumsレーン太鼓.cs | 303 +++--
.../07.Game/Taiko/CAct演奏Drums判定文字列.cs | 35 +-
.../Taiko/CAct演奏Drums演奏終了演出.cs | 12 +-
.../Stages/07.Game/Taiko/CAct演奏Drums連打.cs | 16 +-
.../07.Game/Taiko/CAct演奏Drums連打キャラ.cs | 3 +
.../Stages/07.Game/Taiko/CAct演奏Drums風船.cs | 44 +-
.../07.Game/Taiko/CStage演奏ドラム画面.cs | 498 +++++--
.../Stages/07.Game/Taiko/FlyingNotes.cs | 2 +-
TJAPlayer3/Stages/07.Game/Taiko/LaneFlash.cs | 21 +-
TJAPlayer3/Stages/07.Game/Taiko/ModIcons.cs | 4 +-
TJAPlayer3/Stages/07.Game/Taiko/Rainbow.cs | 1 +
.../08.Result/CActResultParameterPanel.cs | 709 +++++++---
TJAPlayer3/Stages/08.Result/CStage結果.cs | 223 +++-
TJAPlayer3/Stages/CNamePlate.cs | 32 +-
Test/BGScriptAPI.lua | 2 +-
.../Characters/Template/CharaConfig.txt | 12 +
Test/System/SimpleStyle/Game4PConfig.ini | 102 ++
.../Graphics/11_Modals/Coin_half_4P.png | Bin 0 -> 204436 bytes
.../Graphics/11_Modals/Coin_half_5P.png | Bin 0 -> 229090 bytes
.../Graphics/3_SongSelect/Coin_Slot_3P.png | Bin 0 -> 30794 bytes
.../Graphics/3_SongSelect/Coin_Slot_4P.png | Bin 0 -> 31557 bytes
.../Graphics/3_SongSelect/Coin_Slot_5P.png | Bin 0 -> 32051 bytes
.../Difficulty_Select_Bar5.png | Bin 0 -> 10877 bytes
.../5_Game/5_Background/Normal/Up/0/4PBG.png | Bin 0 -> 7326 bytes
.../5_Background/Normal/Up/0/Script.lua | 122 +-
.../Graphics/5_Game/6_Taiko/4PPlay_Frame.png | Bin 0 -> 7424 bytes
.../Graphics/5_Game/6_Taiko/5P_Background.png | Bin 0 -> 37524 bytes
.../Graphics/5_Game/6_Taiko/Score_5P.png | Bin 0 -> 10650 bytes
.../Graphics/5_Game/7_Gauge/1P_4PGauge.png | Bin 622 -> 5446 bytes
.../5_Game/7_Gauge/1P_Base_4PGauge.png | Bin 0 -> 5546 bytes
.../Graphics/5_Game/7_Gauge/2P_4PGauge.png | Bin 5167 -> 5744 bytes
.../5_Game/7_Gauge/2P_Base_4PGauge.png | Bin 0 -> 5967 bytes
.../Graphics/5_Game/7_Gauge/3P_4PGauge.png | Bin 1082 -> 5922 bytes
.../5_Game/7_Gauge/3P_Base_4PGauge.png | Bin 0 -> 5576 bytes
.../Graphics/5_Game/7_Gauge/4P_4PGauge.png | Bin 1081 -> 5517 bytes
.../5_Game/7_Gauge/4P_Base_4PGauge.png | Bin 0 -> 5561 bytes
.../Graphics/5_Game/7_Gauge/5P_4PGauge.png | Bin 0 -> 5876 bytes
.../5_Game/7_Gauge/5P_Base_4PGauge.png | Bin 0 -> 5818 bytes
.../Graphics/5_Game/9_End/Clear/Script.lua | 16 +-
.../5_Game/9_End/ClearFailed/Script.lua | 21 +-
.../5_Game/9_End/DondaFullCombo/Script.lua | 20 +-
.../5_Game/9_End/FullCombo/Script.lua | 21 +-
.../Graphics/6_Result/Background_3.png | Bin 0 -> 398496 bytes
.../Graphics/6_Result/Background_4.png | Bin 0 -> 391107 bytes
.../Graphics/6_Result/Background_5.png | Bin 0 -> 451666 bytes
.../SimpleStyle/Graphics/6_Result/Gauge_3.png | Bin 0 -> 9242 bytes
.../SimpleStyle/Graphics/6_Result/Gauge_4.png | Bin 0 -> 9441 bytes
.../SimpleStyle/Graphics/6_Result/Gauge_5.png | Bin 0 -> 9340 bytes
.../Graphics/6_Result/Gauge_Base_3.png | Bin 0 -> 6047 bytes
.../Graphics/6_Result/Gauge_Base_4.png | Bin 0 -> 5939 bytes
.../Graphics/6_Result/Gauge_Base_5.png | Bin 0 -> 5965 bytes
.../Graphics/6_Result/Panel_4P_1.png | Bin 0 -> 77776 bytes
.../Graphics/6_Result/Panel_4P_2.png | Bin 0 -> 62229 bytes
.../Graphics/6_Result/Panel_4P_3.png | Bin 0 -> 69765 bytes
.../Graphics/6_Result/Panel_4P_4.png | Bin 0 -> 76499 bytes
.../Graphics/6_Result/Panel_4P_5_Unused.png | Bin 0 -> 74418 bytes
.../Graphics/6_Result/Panel_5P_1.png | Bin 0 -> 68462 bytes
.../Graphics/6_Result/Panel_5P_2.png | Bin 0 -> 55340 bytes
.../Graphics/6_Result/Panel_5P_3.png | Bin 0 -> 60577 bytes
.../Graphics/6_Result/Panel_5P_4.png | Bin 0 -> 65826 bytes
.../Graphics/6_Result/Panel_5P_5.png | Bin 0 -> 65137 bytes
.../Graphics/NamePlate_Extension.png | Bin 0 -> 16880 bytes
Test/System/SimpleStyle/Modal4PConfig.ini | 17 +
Test/System/SimpleStyle/Result4PConfig.ini | 57 +
Test/System/SimpleStyle/SkinConfig.ini | 5 +-
Test/System/SimpleStyle/SongSelectConfig.ini | 32 +-
108 files changed, 5293 insertions(+), 1455 deletions(-)
create mode 100644 Test/System/SimpleStyle/Game4PConfig.ini
create mode 100644 Test/System/SimpleStyle/Graphics/11_Modals/Coin_half_4P.png
create mode 100644 Test/System/SimpleStyle/Graphics/11_Modals/Coin_half_5P.png
create mode 100644 Test/System/SimpleStyle/Graphics/3_SongSelect/Coin_Slot_3P.png
create mode 100644 Test/System/SimpleStyle/Graphics/3_SongSelect/Coin_Slot_4P.png
create mode 100644 Test/System/SimpleStyle/Graphics/3_SongSelect/Coin_Slot_5P.png
create mode 100644 Test/System/SimpleStyle/Graphics/3_SongSelect/Difficulty_Select/Difficulty_Select_Bar5.png
create mode 100644 Test/System/SimpleStyle/Graphics/5_Game/5_Background/Normal/Up/0/4PBG.png
create mode 100644 Test/System/SimpleStyle/Graphics/5_Game/6_Taiko/4PPlay_Frame.png
create mode 100644 Test/System/SimpleStyle/Graphics/5_Game/6_Taiko/5P_Background.png
create mode 100644 Test/System/SimpleStyle/Graphics/5_Game/6_Taiko/Score_5P.png
create mode 100644 Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/1P_Base_4PGauge.png
create mode 100644 Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/2P_Base_4PGauge.png
create mode 100644 Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/3P_Base_4PGauge.png
create mode 100644 Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/4P_Base_4PGauge.png
create mode 100644 Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/5P_4PGauge.png
create mode 100644 Test/System/SimpleStyle/Graphics/5_Game/7_Gauge/5P_Base_4PGauge.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Background_3.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Background_4.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Background_5.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Gauge_3.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Gauge_4.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Gauge_5.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Gauge_Base_3.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Gauge_Base_4.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Gauge_Base_5.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_1.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_2.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_3.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_4.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Panel_4P_5_Unused.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_1.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_2.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_3.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_4.png
create mode 100644 Test/System/SimpleStyle/Graphics/6_Result/Panel_5P_5.png
create mode 100644 Test/System/SimpleStyle/Graphics/NamePlate_Extension.png
create mode 100644 Test/System/SimpleStyle/Modal4PConfig.ini
create mode 100644 Test/System/SimpleStyle/Result4PConfig.ini
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 0000000000000000000000000000000000000000..699ebc3d81bd7bcaadc3e2bcffed6acb7c8125f6
GIT binary patch
literal 204436
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