1
0
mirror of synced 2025-02-17 19:09:25 +01:00

多人数プレイに対応 (#378)

* 多人数プレイに対応

* 不具合の修正
This commit is contained in:
Takkkom 2023-02-15 09:27:05 +09:00 committed by GitHub
parent d27d46aa57
commit dbf8dc9471
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
108 changed files with 5293 additions and 1455 deletions

View File

@ -9,11 +9,11 @@ namespace TJAPlayer3
{ {
class CMenuCharacter class CMenuCharacter
{ {
private static CCounter[] ctCharacterNormal = 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[4] { 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[4] { 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[4] { 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[4] { 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 public enum ECharacterAnimation
{ {
@ -162,31 +162,31 @@ namespace TJAPlayer3
{ {
case (ECharacterAnimation.NORMAL): case (ECharacterAnimation.NORMAL):
{ {
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
ctCharacterNormal[i] = new CCounter(); ctCharacterNormal[i] = new CCounter();
break; break;
} }
case (ECharacterAnimation.START): case (ECharacterAnimation.START):
{ {
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
ctCharacterStart[i] = new CCounter(); ctCharacterStart[i] = new CCounter();
break; break;
} }
case (ECharacterAnimation.SELECT): case (ECharacterAnimation.SELECT):
{ {
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
ctCharacterSelect[i] = new CCounter(); ctCharacterSelect[i] = new CCounter();
break; break;
} }
case (ECharacterAnimation.ENTRY): case (ECharacterAnimation.ENTRY):
{ {
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
ctCharacterEntry[i] = new CCounter(); ctCharacterEntry[i] = new CCounter();
break; break;
} }
case (ECharacterAnimation.ENTRY_NORMAL): case (ECharacterAnimation.ENTRY_NORMAL):
{ {
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
ctCharacterEntryNormal[i] = new CCounter(); ctCharacterEntryNormal[i] = new CCounter();
break; break;
} }
@ -208,7 +208,7 @@ namespace TJAPlayer3
public static void tMenuResetTimer(ECharacterAnimation eca) public static void tMenuResetTimer(ECharacterAnimation eca)
{ {
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
tMenuResetTimer(i, eca); tMenuResetTimer(i, eca);
} }

View File

@ -9,10 +9,10 @@ namespace TJAPlayer3
{ {
class CResultCharacter class CResultCharacter
{ {
private static CCounter[] ctCharacterNormal = 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[4] { 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[4] { 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[4] { 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 public enum ECharacterResult
@ -157,25 +157,25 @@ namespace TJAPlayer3
{ {
case (ECharacterResult.NORMAL): case (ECharacterResult.NORMAL):
{ {
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
ctCharacterNormal[i] = new CCounter(); ctCharacterNormal[i] = new CCounter();
break; break;
} }
case (ECharacterResult.CLEAR): case (ECharacterResult.CLEAR):
{ {
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
ctCharacterClear[i] = new CCounter(); ctCharacterClear[i] = new CCounter();
break; break;
} }
case (ECharacterResult.FAILED): case (ECharacterResult.FAILED):
{ {
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
ctCharacterFailed[i] = new CCounter(); ctCharacterFailed[i] = new CCounter();
break; break;
} }
case (ECharacterResult.FAILED_IN): case (ECharacterResult.FAILED_IN):
{ {
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
ctCharacterFailedIn[i] = new CCounter(); ctCharacterFailedIn[i] = new CCounter();
break; break;
} }
@ -241,7 +241,7 @@ namespace TJAPlayer3
_tex.vc拡大縮小倍率.X *= resolutionRatioX; _tex.vc拡大縮小倍率.X *= resolutionRatioX;
_tex.vc拡大縮小倍率.Y *= resolutionRatioY; _tex.vc拡大縮小倍率.Y *= resolutionRatioY;
if (pos % 2 == 0) if (pos % 2 == 0 || TJAPlayer3.ConfigIni.nPlayerCount > 2)
{ {
_tex.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, _tex.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device,
_x, _x,

View File

@ -64,7 +64,7 @@ namespace TJAPlayer3
/// <param name="y">Y座標(中央)</param> /// <param name="y">Y座標(中央)</param>
/// <param name="alpha">不透明度</param> /// <param name="alpha">不透明度</param>
/// <returns></returns> /// <returns></returns>
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 (!TJAPlayer3.ConfigIni.ShowPuchiChara) return base.On進行描画();
if (Counter == null || SineCounter == null || TJAPlayer3.Tx.Puchichara == null) 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; 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拡大縮小倍率 = 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; chara.Opacity = alpha;
// (isGrowing ? TJAPlayer3.Skin.Game_PuchiChara[1] : 0) => Height // (isGrowing ? TJAPlayer3.Skin.Game_PuchiChara[1] : 0) => Height

View File

@ -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 public CConfigIni.CKeyAssign.STKEYASSIGN[] Clap
{ {
get 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 public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftChange
{ {
get get
@ -446,12 +617,57 @@ namespace TJAPlayer3
case (int) EKeyConfigPad.RBlue2P: case (int) EKeyConfigPad.RBlue2P:
return this.padRBlue2P; 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: case (int)EKeyConfigPad.Clap:
return this.padClap; return this.padClap;
case (int)EKeyConfigPad.Clap2P: case (int)EKeyConfigPad.Clap2P:
return this.padClap2P; 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: case (int)EKeyConfigPad.LeftChange:
return this.padLeftChange; return this.padLeftChange;
@ -547,6 +763,54 @@ namespace TJAPlayer3
this.padRBlue2P = value; this.padRBlue2P = value;
return; 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: case (int)EKeyConfigPad.Clap:
this.padClap = value; this.padClap = value;
return; return;
@ -555,6 +819,18 @@ namespace TJAPlayer3
this.padClap2P = value; this.padClap2P = value;
return; 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: case (int)EKeyConfigPad.LeftChange:
this.padLeftChange = value; this.padLeftChange = value;
return; return;
@ -585,16 +861,37 @@ namespace TJAPlayer3
private CConfigIni.CKeyAssign.STKEYASSIGN[] padSD_G; private CConfigIni.CKeyAssign.STKEYASSIGN[] padSD_G;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLP; private CConfigIni.CKeyAssign.STKEYASSIGN[] padLP;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBD; private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBD;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed; private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue; private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed; private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue; private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed2P; private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed2P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue2P; private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue2P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed2P; private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed2P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue2P; 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[] padClap;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padClap2P; 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[] padLeftChange;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRightChange; private CConfigIni.CKeyAssign.STKEYASSIGN[] padRightChange;
@ -762,7 +1059,7 @@ namespace TJAPlayer3
public int nウインドウheight; // #23510 2010.10.31 yyagi add public int nウインドウheight; // #23510 2010.10.31 yyagi add
public Dictionary<int, string> dicJoystick; public Dictionary<int, string> dicJoystick;
public Eダークモード eDark; public Eダークモード eDark;
public STDGBVALUE<Eランダムモード> eRandom; public Eランダムモード[] eRandom;
public Eダメージレベル eダメージレベル; public Eダメージレベル eダメージレベル;
public CKeyAssign KeyAssign; public CKeyAssign KeyAssign;
public int n非フォーカス時スリープms; // #23568 2010.11.04 ikanick add public int n非フォーカス時スリープms; // #23568 2010.11.04 ikanick add
@ -852,11 +1149,27 @@ namespace TJAPlayer3
public int nScoreMode; public int nScoreMode;
public int nDefaultCourse; //2017.01.30 DD デフォルトでカーソルをあわせる難易度 public int nDefaultCourse; //2017.01.30 DD デフォルトでカーソルをあわせる難易度
private int _nPlayerCount;
public int nPlayerCount; //2017.08.18 kairera0467 マルチプレイ対応 public int nPlayerCount
{
get
{
if (bAIBattleMode)
{
return 2;
}
else
{
return _nPlayerCount;
}
}
set
{
_nPlayerCount = value;
}
}
public bool b太鼓パートAutoPlay; public bool[] b太鼓パートAutoPlay = new bool[5];
public bool b太鼓パートAutoPlay2P; //2017.08.16 kairera0467 マルチプレイ対応
public bool bAuto先生の連打; public bool bAuto先生の連打;
public int nRollsPerSec; public int nRollsPerSec;
@ -925,9 +1238,9 @@ namespace TJAPlayer3
public int TokkunMashInterval; public int TokkunMashInterval;
public bool bSuperHard = false; public bool bSuperHard = false;
public bool bTokkunMode = 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 「また遊んでね」画面の有効/無効オプション追加 public bool bEndingAnime = false; // 2017.01.27 DD 「また遊んでね」画面の有効/無効オプション追加
@ -1490,15 +1803,15 @@ namespace TJAPlayer3
this.bSudden = new STDGBVALUE<bool>(); this.bSudden = new STDGBVALUE<bool>();
this.bHidden = new STDGBVALUE<bool>(); this.bHidden = new STDGBVALUE<bool>();
this.bReverse = new STDGBVALUE<bool>(); this.bReverse = new STDGBVALUE<bool>();
this.eRandom = new STDGBVALUE<Eランダムモード>(); this.eRandom = new Eランダムモード[5];
this.bLight = new STDGBVALUE<bool>(); this.bLight = new STDGBVALUE<bool>();
this.bLeft = new STDGBVALUE<bool>(); this.bLeft = new STDGBVALUE<bool>();
this.e判定位置 = new STDGBVALUE<E判定位置>(); // #33891 2014.6.26 yyagi this.e判定位置 = new STDGBVALUE<E判定位置>(); // #33891 2014.6.26 yyagi
this. = new STDGBVALUE<E判定文字表示位置>(); this. = new STDGBVALUE<E判定文字表示位置>();
this.nScrollSpeed = new int[4] { 9, 9, 9, 9 }; this.nScrollSpeed = new int[5] { 9, 9, 9, 9, 9 };
this.nTimingZones = new int[4] { 2, 2, 2, 2 }; this.nTimingZones = new int[5] { 2, 2, 2, 2, 2 };
this.nGameType = new EGameType[4] { EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO }; this.nGameType = new EGameType[5] { EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO };
this.nFunMods = new EFunMods[4] { EFunMods.NONE, EFunMods.NONE, EFunMods.NONE, EFunMods.NONE }; this.nFunMods = new EFunMods[5] { EFunMods.NONE, EFunMods.NONE, EFunMods.NONE, EFunMods.NONE, EFunMods.NONE };
this.nInputAdjustTimeMs = 0; this.nInputAdjustTimeMs = 0;
this.nGlobalOffsetMs = 0; this.nGlobalOffsetMs = 0;
this.nJudgeLinePosOffset = new STDGBVALUE<int>(); // #31602 2013.6.23 yyagi this.nJudgeLinePosOffset = new STDGBVALUE<int>(); // #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.eRandom[i] = Eランダムモード.OFF;
this.nScrollSpeed[i] = 9; this.nScrollSpeed[i] = 9;
@ -1531,8 +1844,10 @@ namespace TJAPlayer3
#region [ AutoPlay ] #region [ AutoPlay ]
this.bAutoPlay = new STAUTOPLAY(); this.bAutoPlay = new STAUTOPLAY();
this.b太鼓パートAutoPlay = false; for (int i = 0; i < 5; i++)
this.b太鼓パートAutoPlay2P = false; {
this.b太鼓パートAutoPlay[i] = false;
}
this.bAuto先生の連打 = true; this.bAuto先生の連打 = true;
#endregion #endregion
this.nヒット範囲ms = new STRANGE(); this.nヒット範囲ms = new STRANGE();
@ -1605,9 +1920,9 @@ namespace TJAPlayer3
ShowMob = true; ShowMob = true;
ShowPuchiChara = 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.eSTEALTH[i] = Eステルスモード.OFF;
this.bNoInfo = false; this.bNoInfo = false;
@ -2008,9 +2323,12 @@ namespace TJAPlayer3
sw.WriteLine("[AutoPlay]"); sw.WriteLine("[AutoPlay]");
sw.WriteLine(); sw.WriteLine();
sw.WriteLine("; 自動演奏(0:OFF, 1:ON)"); sw.WriteLine("; 自動演奏(0:OFF, 1:ON)");
sw.WriteLine("Taiko={0}", this.b太鼓パートAutoPlay ? 1 : 0); sw.WriteLine("Taiko={0}", this.b太鼓パートAutoPlay[0] ? 1 : 0);
sw.WriteLine("Taiko2P={0}", this.b太鼓パートAutoPlay2P ? 1 : 0); sw.WriteLine("Taiko2P={0}", this.b太鼓パートAutoPlay[1] ? 1 : 0);
sw.WriteLine("TaikoAutoRoll={0}", this.bAuto先生の連打 ? 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("RollsPerSec={0}", this.nRollsPerSec);
sw.WriteLine("AILevel={0}", this.nAILevel); sw.WriteLine("AILevel={0}", this.nAILevel);
sw.WriteLine("AIBattleMode={0}", bAIBattleMode ? 1 : 0); sw.WriteLine("AIBattleMode={0}", bAIBattleMode ? 1 : 0);
@ -2112,24 +2430,28 @@ namespace TJAPlayer3
sw.WriteLine("DrumsScrollSpeed2P={0}", this.nScrollSpeed[1]); sw.WriteLine("DrumsScrollSpeed2P={0}", this.nScrollSpeed[1]);
sw.WriteLine("DrumsScrollSpeed3P={0}", this.nScrollSpeed[2]); sw.WriteLine("DrumsScrollSpeed3P={0}", this.nScrollSpeed[2]);
sw.WriteLine("DrumsScrollSpeed4P={0}", this.nScrollSpeed[3]); sw.WriteLine("DrumsScrollSpeed4P={0}", this.nScrollSpeed[3]);
sw.WriteLine("DrumsScrollSpeed5P={0}", this.nScrollSpeed[4]);
sw.WriteLine(); sw.WriteLine();
sw.WriteLine("; Timing Zones (0-1 : Lenient, 2 : Regular, 3-4 : Strict)"); sw.WriteLine("; Timing Zones (0-1 : Lenient, 2 : Regular, 3-4 : Strict)");
sw.WriteLine("TimingZones1P={0}", this.nTimingZones[0]); sw.WriteLine("TimingZones1P={0}", this.nTimingZones[0]);
sw.WriteLine("TimingZones2P={0}", this.nTimingZones[1]); sw.WriteLine("TimingZones2P={0}", this.nTimingZones[1]);
sw.WriteLine("TimingZones3P={0}", this.nTimingZones[2]); sw.WriteLine("TimingZones3P={0}", this.nTimingZones[2]);
sw.WriteLine("TimingZones4P={0}", this.nTimingZones[3]); sw.WriteLine("TimingZones4P={0}", this.nTimingZones[3]);
sw.WriteLine("TimingZones5P={0}", this.nTimingZones[4]);
sw.WriteLine(); sw.WriteLine();
sw.WriteLine("; Gametype (0 : Taiko, 1 : Konga)"); sw.WriteLine("; Gametype (0 : Taiko, 1 : Konga)");
sw.WriteLine("Gametype1P={0}", (int)this.nGameType[0]); sw.WriteLine("Gametype1P={0}", (int)this.nGameType[0]);
sw.WriteLine("Gametype2P={0}", (int)this.nGameType[1]); sw.WriteLine("Gametype2P={0}", (int)this.nGameType[1]);
sw.WriteLine("Gametype3P={0}", (int)this.nGameType[2]); sw.WriteLine("Gametype3P={0}", (int)this.nGameType[2]);
sw.WriteLine("Gametype4P={0}", (int)this.nGameType[3]); sw.WriteLine("Gametype4P={0}", (int)this.nGameType[3]);
sw.WriteLine("Gametype5P={0}", (int)this.nGameType[4]);
sw.WriteLine(); 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("; 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("FunMods1P={0}", (int)this.nFunMods[0]);
sw.WriteLine("FunMods2P={0}", (int)this.nFunMods[1]); sw.WriteLine("FunMods2P={0}", (int)this.nFunMods[1]);
sw.WriteLine("FunMods3P={0}", (int)this.nFunMods[2]); sw.WriteLine("FunMods3P={0}", (int)this.nFunMods[2]);
sw.WriteLine("FunMods4P={0}", (int)this.nFunMods[3]); sw.WriteLine("FunMods4P={0}", (int)this.nFunMods[3]);
sw.WriteLine("FunMods5P={0}", (int)this.nFunMods[4]);
sw.WriteLine(); sw.WriteLine();
sw.WriteLine( "; 演奏速度(540)(→x5/20x40/20)" ); sw.WriteLine( "; 演奏速度(540)(→x5/20x40/20)" );
sw.WriteLine( "PlaySpeed={0}", this.n演奏速度 ); sw.WriteLine( "PlaySpeed={0}", this.n演奏速度 );
@ -2175,12 +2497,14 @@ namespace TJAPlayer3
sw.WriteLine("TaikoRandom2P={0}", (int)this.eRandom[1]); sw.WriteLine("TaikoRandom2P={0}", (int)this.eRandom[1]);
sw.WriteLine("TaikoRandom3P={0}", (int)this.eRandom[2]); sw.WriteLine("TaikoRandom3P={0}", (int)this.eRandom[2]);
sw.WriteLine("TaikoRandom4P={0}", (int)this.eRandom[3]); sw.WriteLine("TaikoRandom4P={0}", (int)this.eRandom[3]);
sw.WriteLine("TaikoRandom5P={0}", (int)this.eRandom[4]);
sw.WriteLine(); sw.WriteLine();
sw.WriteLine( "; STEALTHモード(0:OFF, 1:ドロン, 2:ステルス)" ); sw.WriteLine( "; STEALTHモード(0:OFF, 1:ドロン, 2:ステルス)" );
sw.WriteLine( "TaikoStealth1P={0}", (int) this.eSTEALTH[0] ); sw.WriteLine( "TaikoStealth1P={0}", (int) this.eSTEALTH[0] );
sw.WriteLine("TaikoStealth2P={0}", (int)this.eSTEALTH[1]); sw.WriteLine("TaikoStealth2P={0}", (int)this.eSTEALTH[1]);
sw.WriteLine("TaikoStealth3P={0}", (int)this.eSTEALTH[2]); sw.WriteLine("TaikoStealth3P={0}", (int)this.eSTEALTH[2]);
sw.WriteLine("TaikoStealth4P={0}", (int)this.eSTEALTH[3]); sw.WriteLine("TaikoStealth4P={0}", (int)this.eSTEALTH[3]);
sw.WriteLine("TaikoStealth5P={0}", (int)this.eSTEALTH[4]);
sw.WriteLine(); sw.WriteLine();
sw.WriteLine( "; ゲーム(0:OFF, 1:完走!叩ききりまショー!, 2:完走!叩ききりまショー!(激辛) )" ); sw.WriteLine( "; ゲーム(0:OFF, 1:完走!叩ききりまショー!, 2:完走!叩ききりまショー!(激辛) )" );
sw.WriteLine( "GameMode={0}", (int) this.eGameMode ); sw.WriteLine( "GameMode={0}", (int) this.eGameMode );
@ -2249,6 +2573,7 @@ namespace TJAPlayer3
sw.WriteLine(); sw.WriteLine();
sw.WriteLine( "[DrumsKeyAssign]" ); sw.WriteLine( "[DrumsKeyAssign]" );
sw.WriteLine(); sw.WriteLine();
sw.Write( "LeftRed=" ); sw.Write( "LeftRed=" );
this.tキーの書き出し( sw, this.KeyAssign.Drums.LeftRed ); this.tキーの書き出し( sw, this.KeyAssign.Drums.LeftRed );
sw.WriteLine(); sw.WriteLine();
@ -2261,6 +2586,7 @@ namespace TJAPlayer3
sw.Write( "RightBlue=" ); // #27029 2012.1.4 from sw.Write( "RightBlue=" ); // #27029 2012.1.4 from
this.tキーの書き出し( sw, this.KeyAssign.Drums.RightBlue ); // this.tキーの書き出し( sw, this.KeyAssign.Drums.RightBlue ); //
sw.WriteLine(); sw.WriteLine();
sw.Write( "LeftRed2P=" ); sw.Write( "LeftRed2P=" );
this.tキーの書き出し( sw, this.KeyAssign.Drums.LeftRed2P ); this.tキーの書き出し( sw, this.KeyAssign.Drums.LeftRed2P );
sw.WriteLine(); sw.WriteLine();
@ -2273,12 +2599,62 @@ namespace TJAPlayer3
sw.Write( "RightBlue2P=" ); // #27029 2012.1.4 from sw.Write( "RightBlue2P=" ); // #27029 2012.1.4 from
this.tキーの書き出し( sw, this.KeyAssign.Drums.RightBlue2P ); // this.tキーの書き出し( sw, this.KeyAssign.Drums.RightBlue2P ); //
sw.WriteLine(); 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="); sw.Write("Clap=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap); this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap);
sw.WriteLine(); sw.WriteLine();
sw.Write("Clap2P="); sw.Write("Clap2P=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap2P); this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap2P);
sw.WriteLine(); 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="); sw.Write("Decide=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.Decide); this.tキーの書き出し(sw, this.KeyAssign.Drums.Decide);
sw.WriteLine(); sw.WriteLine();
@ -2291,6 +2667,7 @@ namespace TJAPlayer3
sw.Write("RightChange="); sw.Write("RightChange=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.RightChange); this.tキーの書き出し(sw, this.KeyAssign.Drums.RightChange);
sw.WriteLine(); sw.WriteLine();
sw.WriteLine(); sw.WriteLine();
#endregion #endregion
#region [ SystemkeyAssign ] #region [ SystemkeyAssign ]
@ -2817,13 +3194,25 @@ namespace TJAPlayer3
case Eセクション種別.AutoPlay: case Eセクション種別.AutoPlay:
if (str3.Equals("Taiko")) if (str3.Equals("Taiko"))
{ {
this.b太鼓パートAutoPlay = C変換.bONorOFF(str4[0]); this.b太鼓パートAutoPlay[0] = C変換.bONorOFF(str4[0]);
} }
else if (str3.Equals("Taiko2P")) else if (str3.Equals("Taiko2P"))
{ {
this.b太鼓パートAutoPlay2P = C変換.bONorOFF(str4[0]); this.b太鼓パートAutoPlay[1] = C変換.bONorOFF(str4[0]);
} }
else if (str3.Equals("TaikoAutoRoll")) 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]); this.bAuto先生の連打 = C変換.bONorOFF(str4[0]);
} }
@ -2989,6 +3378,10 @@ namespace TJAPlayer3
{ {
this.nScrollSpeed[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x7cf, this.nScrollSpeed[3]); 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 #endregion
@ -3010,6 +3403,10 @@ namespace TJAPlayer3
{ {
this.nTimingZones[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, this.nTimingZones[3]); 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 #endregion
@ -3032,6 +3429,10 @@ namespace TJAPlayer3
{ {
this.bJust[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, this.bJust[3]); 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 #endregion
@ -3053,6 +3454,10 @@ namespace TJAPlayer3
{ {
this.nHitSounds[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 9999999, this.nHitSounds[3]); 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 #endregion
@ -3074,6 +3479,10 @@ namespace TJAPlayer3
{ {
this.nGameType[3] = (EGameType)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1, (int)this.nGameType[3]); 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 #endregion
@ -3095,6 +3504,10 @@ namespace TJAPlayer3
{ {
this.nFunMods[3] = (EFunMods)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, (int)EFunMods.TOTAL - 1, (int)this.nFunMods[3]); 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 #endregion
@ -3116,6 +3529,10 @@ namespace TJAPlayer3
{ {
this.eSTEALTH[3] = (Eステルスモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.eSTEALTH[3]); 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 #endregion
@ -3137,6 +3554,10 @@ namespace TJAPlayer3
{ {
this.eRandom[3] = (Eランダムモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, (int)this.eRandom[3]); 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 #endregion
@ -3234,7 +3655,7 @@ namespace TJAPlayer3
else if ( str3.Equals( "PlayerCount" ) ) 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))) else if(str3.Equals(nameof(ShinuchiMode)))
{ {
@ -3337,6 +3758,57 @@ namespace TJAPlayer3
this.tキーの読み出しと設定( str4, this.KeyAssign.Drums.RightBlue2P ); // 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")) else if (str3.Equals("Clap"))
{ {
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap); this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap);
@ -3345,6 +3817,18 @@ namespace TJAPlayer3
{ {
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap2P); 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")) else if (str3.Equals("Decide"))
{ {
@ -3564,8 +4048,23 @@ LeftRed2P=K011
RightRed2P=K023 RightRed2P=K023
LeftBlue2P=K012 LeftBlue2P=K012
RightBlue2P=K047 RightBlue2P=K047
LeftRed3P=
RightRed3P=
LeftBlue3P=
RightBlue3P=
LeftRed4P=
RightRed4P=
LeftBlue4P=
RightBlue4P=
LeftRed5P=
RightRed5P=
LeftBlue5P=
RightBlue5P=
Clap=K017 Clap=K017
Clap2P= Clap2P=
Clap3P=
Clap4P=
Clap5P=
Decide=K015,K019 Decide=K015,K019
Cancel= Cancel=
LeftChange=K013 LeftChange=K013

View File

@ -11,7 +11,7 @@ namespace TJAPlayer3
public CHitSounds(string path) public CHitSounds(string path)
{ {
tLoadFile(path); tLoadFile(path);
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
{ {
tReloadHitSounds(TJAPlayer3.ConfigIni.nHitSounds[i], i); tReloadHitSounds(TJAPlayer3.ConfigIni.nHitSounds[i], i);
} }
@ -39,10 +39,10 @@ namespace TJAPlayer3
public string[] names; public string[] names;
public string[] don = new string[4]; public string[] don = new string[5];
public string[] ka = new string[4]; public string[] ka = new string[5];
public string[] adlib = new string[4]; public string[] adlib = new string[5];
public string[] clap = new string[4]; public string[] clap = new string[5];
#region [private] #region [private]

File diff suppressed because it is too large Load Diff

View File

@ -12,8 +12,11 @@ namespace TJAPlayer3
private static Dictionary<string, C曲リストード> nodes = new Dictionary<string, C曲リストード>(); private static Dictionary<string, C曲リストード> nodes = new Dictionary<string, C曲リストード>();
private static HashSet<string> urls = new HashSet<string>(); private static HashSet<string> urls = new HashSet<string>();
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() },
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] #region [Reset nodes]
for (int pl = 0; pl < 2; pl++) for (int pl = 0; pl < 5; pl++)
{ {
CActSelect曲リスト.CScorePad[] SPArrRef = ScorePads[pl]; CActSelect曲リスト.CScorePad[] SPArrRef = ScorePads[pl];
@ -296,7 +299,7 @@ namespace TJAPlayer3
foreach (C曲リストード song in nodes.Values) 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]; CActSelect曲リスト.CScorePad[] SPArrRef = ScorePads[pl];

View File

@ -90,18 +90,40 @@ namespace TJAPlayer3
LC = 9, LC = 9,
LP = 10, // #27029 2012.1.4 from LP = 10, // #27029 2012.1.4 from
LBD = 11, LBD = 11,
LRed = 12, LRed = 12,
RRed = 13, RRed = 13,
LBlue = 14, LBlue = 14,
RBlue = 15, RBlue = 15,
LRed2P = 16, LRed2P = 16,
RRed2P = 17, RRed2P = 17,
LBlue2P = 18, LBlue2P = 18,
RBlue2P = 19, RBlue2P = 19,
CLAP = 20,
CLAP2P = 21, LRed3P = 20,
LeftChange = 22, RRed3P = 21,
RightChange = 23, 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, // 門番用として定義 MAX, // 門番用として定義
UNKNOWN = 99 UNKNOWN = 99
} }
@ -126,18 +148,40 @@ namespace TJAPlayer3
LC = Eパッド.LC, LC = Eパッド.LC,
LP = Eパッド.LP, // #27029 2012.1.4 from LP = Eパッド.LP, // #27029 2012.1.4 from
LBD = Eパッド.LBD, LBD = Eパッド.LBD,
LRed = Eパッド.LRed, LRed = Eパッド.LRed,
RRed = Eパッド.RRed, RRed = Eパッド.RRed,
LBlue = Eパッド.LBlue, LBlue = Eパッド.LBlue,
RBlue = Eパッド.RBlue, RBlue = Eパッド.RBlue,
LRed2P = Eパッド.LRed2P, LRed2P = Eパッド.LRed2P,
RRed2P = Eパッド.RRed2P, RRed2P = Eパッド.RRed2P,
LBlue2P = Eパッド.LBlue2P, 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, Clap = Eパッド.CLAP,
Clap2P = Eパッド.CLAP2P, Clap2P = Eパッド.CLAP2P,
Clap3P = Eパッド.CLAP3P,
Clap4P = Eパッド.CLAP4P,
Clap5P = Eパッド.CLAP5P,
LeftChange = Eパッド.LeftChange, LeftChange = Eパッド.LeftChange,
RightChange = Eパッド.RightChange, RightChange = Eパッド.RightChange,
Capture, Capture,
UNKNOWN = Eパッド.UNKNOWN UNKNOWN = Eパッド.UNKNOWN
} }

View File

@ -25,6 +25,10 @@ namespace TJAPlayer3
if (modalFormat == EModalFormat.Half) if (modalFormat == EModalFormat.Half)
arrRef = TJAPlayer3.Tx.Modal_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 else
arrRef = TJAPlayer3.Tx.Modal_Full; arrRef = TJAPlayer3.Tx.Modal_Full;
@ -36,6 +40,7 @@ namespace TJAPlayer3
_box = arrRef[usedTex]; _box = arrRef[usedTex];
} }
/*
_boxRect = new Rectangle( _boxRect = new Rectangle(
(modalFormat == EModalFormat.Full || player == 0) (modalFormat == EModalFormat.Full || player == 0)
? 0 ? 0
@ -45,6 +50,13 @@ namespace TJAPlayer3
? _box.szテクスチャサイズ.Width ? _box.szテクスチャサイズ.Width
: _box.szテクスチャサイズ.Width / 2, : _box.szテクスチャサイズ.Width / 2,
_box.szテクスチャサイズ.Height); _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(); tGenerateTextures();
@ -55,18 +67,79 @@ namespace TJAPlayer3
{ {
if (_isSet == true) 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[] 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_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) ? (modalFormat == EModalFormat.Full) ?
new Point(TJAPlayer3.Skin.Modal_Text_Full[0] +(tTextCentered () ? TJAPlayer3.Skin.Modal_Text_Full_Move[0] : 0), 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)) : 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), 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 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); _ModalTitle?.t2D中心基準描画(TJAPlayer3.app.Device, Pos[0].X, Pos[0].Y);
_ModalText?.t2D中心基準描画(TJAPlayer3.app.Device, Pos[1].X, Pos[1].Y); _ModalText?.t2D中心基準描画(TJAPlayer3.app.Device, Pos[1].X, Pos[1].Y);
@ -124,6 +197,8 @@ namespace TJAPlayer3
{ {
Full, Full,
Half, Half,
Half_4P,
Half_5P,
} }
#endregion #endregion

View File

@ -10,24 +10,39 @@ namespace TJAPlayer3
{ {
public ModalQueue(Modal.EModalFormat mf) public ModalQueue(Modal.EModalFormat mf)
{ {
_modalQueues = new Queue<Modal>[] { new Queue<Modal>(), new Queue<Modal>() }; _modalQueues = new Queue<Modal>[] { new Queue<Modal>(), new Queue<Modal>(), new Queue<Modal>(), new Queue<Modal>(), new Queue<Modal>() };
_modalFormat = mf; _modalFormat = mf;
} }
// Add two modals (one per player) at the same time // 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; mp1.modalFormat = _modalFormat;
mp2.modalFormat = _modalFormat; mp2.modalFormat = _modalFormat;
mp3.modalFormat = _modalFormat;
mp4.modalFormat = _modalFormat;
mp5.modalFormat = _modalFormat;
mp1.player = 0; mp1.player = 0;
mp2.player = 1; mp2.player = 1;
mp3.player = 2;
mp4.player = 3;
mp5.player = 4;
mp1.tSetupModal(); mp1.tSetupModal();
mp2.tSetupModal(); mp2.tSetupModal();
mp3.tSetupModal();
mp4.tSetupModal();
mp5.tSetupModal();
if (mp1 != null) if (mp1 != null)
_modalQueues[0].Enqueue(mp1); _modalQueues[0].Enqueue(mp1);
if (mp2 != null) if (mp2 != null)
_modalQueues[1].Enqueue(mp2); _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 // Add a single modal
@ -58,7 +73,7 @@ namespace TJAPlayer3
public bool tAreBothQueuesEmpty() public bool tAreBothQueuesEmpty()
{ {
return tIsQueueEmpty(0) && tIsQueueEmpty(1); return tIsQueueEmpty(0) && tIsQueueEmpty(1) && tIsQueueEmpty(2) && tIsQueueEmpty(3) && tIsQueueEmpty(4);
} }
private Modal.EModalFormat _modalFormat; private Modal.EModalFormat _modalFormat;

View File

@ -26,7 +26,7 @@ namespace TJAPlayer3
if (amounts.Length < 2) if (amounts.Length < 2)
return; return;
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
int p = TJAPlayer3.GetActualPlayer(i); int p = TJAPlayer3.GetActualPlayer(i);
@ -154,44 +154,47 @@ namespace TJAPlayer3
public class Data public class Data
{ {
[JsonProperty("name")] [JsonProperty("name")]
public string[] Name = { "プレイヤー1", "プレイヤー2" }; public string[] Name = { "プレイヤー1", "プレイヤー2", "プレイヤー3", "プレイヤー4", "プレイヤー5" };
[JsonProperty("title")] [JsonProperty("title")]
public string[] Title = { "初心者", "初心者" }; public string[] Title = { "初心者", "初心者", "初心者", "初心者", "初心者" };
[JsonProperty("dan")] [JsonProperty("dan")]
public string[] Dan = { "新人", "新人" }; public string[] Dan = { "新人", "新人", "新人", "新人", "新人" };
[JsonProperty("danGold")] [JsonProperty("danGold")]
public bool[] DanGold = { false, false }; public bool[] DanGold = { false, false, false, false, false };
[JsonProperty("danType")] [JsonProperty("danType")]
public int[] DanType = { 0, 0 }; public int[] DanType = { 0, 0, 0, 0, 0 };
[JsonProperty("titleType")] [JsonProperty("titleType")]
public int[] TitleType = { 0, 0 }; public int[] TitleType = { 0, 0, 0, 0, 0 };
[JsonProperty("puchiChara")] [JsonProperty("puchiChara")]
public string[] PuchiChara = { "0", "0" }; public string[] PuchiChara = { "0", "0", "0", "0", "0" };
[JsonProperty("medals")] [JsonProperty("medals")]
public int[] Medals = { 0, 0 }; public int[] Medals = { 0, 0, 0, 0, 0 };
[JsonProperty("character")] [JsonProperty("character")]
public int[] Character = { 0, 0 }; public int[] Character = { 0, 0, 0, 0, 0 };
[JsonProperty("characterName")] [JsonProperty("characterName")]
public string[] CharacterName = { "0", "0" }; public string[] CharacterName = { "0", "0", "0", "0", "0" };
[JsonProperty("danTitles")] [JsonProperty("danTitles")]
public Dictionary<string, CDanTitle>[] DanTitles = new Dictionary<string, CDanTitle>[2]; public Dictionary<string, CDanTitle>[] DanTitles = new Dictionary<string, CDanTitle>[5];
[JsonProperty("namePlateTitles")] [JsonProperty("namePlateTitles")]
public Dictionary<string, CNamePlateTitle>[] NamePlateTitles = new Dictionary<string, CNamePlateTitle>[2]; public Dictionary<string, CNamePlateTitle>[] NamePlateTitles = new Dictionary<string, CNamePlateTitle>[5];
[JsonProperty("unlockedPuchicharas")] [JsonProperty("unlockedPuchicharas")]
public List<string>[] UnlockedPuchicharas = new List<string>[2] public List<string>[] UnlockedPuchicharas = new List<string>[5]
{ {
new List<string>(),
new List<string>(),
new List<string>(),
new List<string>(), new List<string>(),
new List<string>() new List<string>()
}; };

View File

@ -122,8 +122,68 @@ namespace TJAPlayer3
} }
} }
} }
public static CDTX DTX_3P
public static bool IsPerformingCalibration; {
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 public static CFPS FPS
{ {
@ -2094,7 +2154,7 @@ for (int i = 0; i < 3; i++) {
private bool b終了処理完了済み; private bool b終了処理完了済み;
private bool bネットワークに接続中 = false; private bool bネットワークに接続中 = false;
private long ms = long.MinValue; 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(); public static TextureLoader Tx = new TextureLoader();
@ -2303,8 +2363,10 @@ for (int i = 0; i < 3; i++) {
#region [ Skin ] #region [ Skin ]
//--------------------- //---------------------
Trace.TraceInformation( "スキンの初期化を行います。" ); Trace.TraceInformation( "スキンの初期化を行います。" );
Trace.Indent(); Trace.Indent();
try #if !DEBUG
try
#endif
{ {
Skin = new CSkin( TJAPlayer3.ConfigIni.strSystemSkinSubfolderFullName, false); Skin = new CSkin( TJAPlayer3.ConfigIni.strSystemSkinSubfolderFullName, false);
TJAPlayer3.ConfigIni.strSystemSkinSubfolderFullName = TJAPlayer3.Skin.GetCurrentSkinSubfolderFullName( true ); // 旧指定のSkinフォルダが消滅していた場合に備える 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]); ChangeResolution(TJAPlayer3.Skin.Resolution[0], TJAPlayer3.Skin.Resolution[1]);
Trace.TraceInformation( "スキンの初期化を完了しました。" ); Trace.TraceInformation( "スキンの初期化を完了しました。" );
} }
#if !DEBUG
catch (Exception e) catch (Exception e)
{ {
Trace.TraceInformation( "スキンの初期化に失敗しました。" ); Trace.TraceInformation( "スキンの初期化に失敗しました。" );
@ -2322,6 +2385,7 @@ for (int i = 0; i < 3; i++) {
{ {
Trace.Unindent(); Trace.Unindent();
} }
#endif
// Init Modal fonts once config.ini parsing is done // Init Modal fonts once config.ini parsing is done
// Moved here to reference Skin values. // Moved here to reference Skin values.

View File

@ -294,6 +294,40 @@ namespace TJAPlayer3
[10092] = "ドラムの演奏に関する項目を設定します。", [10092] = "ドラムの演奏に関する項目を設定します。",
[10093] = "設定を保存し、コンフィグ画面を終了します。", [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] = "演奏ゲーム", [100] = "演奏ゲーム",
[101] = "段位道場", [101] = "段位道場",
[102] = "太鼓タワー", [102] = "太鼓タワー",

View File

@ -391,7 +391,7 @@ namespace TJAPlayer3
// relevant section/subsection combination. // relevant section/subsection combination.
private static void RankSheets(int seqNo, IList<Section> sections) private static void RankSheets(int seqNo, IList<Section> sections)
{ {
var sheetRanksBySectionKindAndSubSectionKind = SeqNoSheetRanksBySectionKindAndSubSectionKind[seqNo]; var sheetRanksBySectionKindAndSubSectionKind = SeqNoSheetRanksBySectionKindAndSubSectionKind[((seqNo - 1) % 2) + 1];
foreach (var section in sections) foreach (var section in sections)
{ {

View File

@ -1557,7 +1557,7 @@ namespace TJAPlayer3
} }
internal static void t更新条件を取得する( out bool bDrumsを更新する, out bool bGuitarを更新する, out bool bBassを更新する ) 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; bGuitarを更新する = false;
bBassを更新する = false; bBassを更新する = false;
} }

View File

@ -50,7 +50,7 @@ namespace TJAPlayer3
public ST譜面情報 ; public ST譜面情報 ;
// Smaller version of ST譜面情報 to keep the main info for each player (High scores, clear status, score ranks // 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] [Serializable]
[StructLayout(LayoutKind.Sequential)] [StructLayout(LayoutKind.Sequential)]
@ -335,7 +335,7 @@ namespace TJAPlayer3
this..nクリア = new int[5]; this..nクリア = new int[5];
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].nHighScore = new int[(int)Difficulty.Total];
this.GPInfo[i].nClear = new int[5]; this.GPInfo[i].nClear = new int[5];

View File

@ -119,6 +119,7 @@ namespace TJAPlayer3
Readme = TxC(@"Readme.png"); Readme = TxC(@"Readme.png");
NamePlate = new CTexture[2]; NamePlate = new CTexture[2];
NamePlateBase = TxC(@"NamePlate.png"); NamePlateBase = TxC(@"NamePlate.png");
NamePlate_Extension = TxC(@"NamePlate_Extension.png");
NamePlate[0] = TxC(@"1P_NamePlate.png"); NamePlate[0] = TxC(@"1P_NamePlate.png");
NamePlate[1] = TxC(@"2P_NamePlate.png"); NamePlate[1] = TxC(@"2P_NamePlate.png");
NamePlate_Effect[0] = TxC(@"9_NamePlateEffect\GoldMStar.png"); NamePlate_Effect[0] = TxC(@"9_NamePlateEffect\GoldMStar.png");
@ -202,7 +203,10 @@ namespace TJAPlayer3
#region 3_ #region 3_
SongSelect_Background = TxC(SONGSELECT + @"Background.png"); SongSelect_Background = TxC(SONGSELECT + @"Background.png");
SongSelect_Header = TxC(SONGSELECT + @"Header.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_Auto = TxC(SONGSELECT + @"Auto.png");
SongSelect_Level = TxC(SONGSELECT + @"Level.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[0] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar.png");
Difficulty_Select_Bar[1] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar2.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_"); 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 #region Taiko
Taiko_Background = new CTexture[11]; Taiko_Background = new CTexture[12];
Taiko_Background[0] = TxC(GAME + TAIKO + @"1P_Background.png"); Taiko_Background[0] = TxC(GAME + TAIKO + @"1P_Background.png");
Taiko_Background[1] = TxC(GAME + TAIKO + @"2P_Background.png"); Taiko_Background[1] = TxC(GAME + TAIKO + @"2P_Background.png");
Taiko_Background[2] = TxC(GAME + TAIKO + @"Dan_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[8] = TxC(GAME + TAIKO + @"4P_Background.png");
Taiko_Background[9] = TxC(GAME + TAIKO + @"AI_Background.png"); Taiko_Background[9] = TxC(GAME + TAIKO + @"AI_Background.png");
Taiko_Background[10] = TxC(GAME + TAIKO + @"Boss_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[0] = TxC(GAME + TAIKO + @"1P_Frame.png");
Taiko_Frame[1] = TxC(GAME + TAIKO + @"2P_Frame.png"); Taiko_Frame[1] = TxC(GAME + TAIKO + @"2P_Frame.png");
Taiko_Frame[2] = TxC(GAME + TAIKO + @"Tower_Frame.png"); Taiko_Frame[2] = TxC(GAME + TAIKO + @"Tower_Frame.png");
Taiko_Frame[3] = TxC(GAME + TAIKO + @"Tokkun_Frame.png"); Taiko_Frame[3] = TxC(GAME + TAIKO + @"Tokkun_Frame.png");
Taiko_Frame[4] = TxC(GAME + TAIKO + @"2P_None_Frame.png"); Taiko_Frame[4] = TxC(GAME + TAIKO + @"2P_None_Frame.png");
Taiko_Frame[5] = TxC(GAME + TAIKO + @"AI_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[0] = TxC(GAME + TAIKO + @"1P_PlayerNumber.png");
Taiko_PlayerNumber[1] = TxC(GAME + TAIKO + @"2P_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]; Taiko_Base = new CTexture[2];
@ -439,10 +451,13 @@ namespace TJAPlayer3
Couse_Symbol[i] = TxC(GAME + COURSESYMBOL + Couse_Symbols[i] + ".png"); 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[0] = TxC(GAME + TAIKO + @"Score.png");
Taiko_Score[1] = TxC(GAME + TAIKO + @"Score_1P.png"); Taiko_Score[1] = TxC(GAME + TAIKO + @"Score_1P.png");
Taiko_Score[2] = TxC(GAME + TAIKO + @"Score_2P.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 = new CTexture[4];
Taiko_Combo[0] = TxC(GAME + TAIKO + @"Combo.png"); Taiko_Combo[0] = TxC(GAME + TAIKO + @"Combo.png");
Taiko_Combo[1] = TxC(GAME + TAIKO + @"Combo_Big.png"); Taiko_Combo[1] = TxC(GAME + TAIKO + @"Combo_Big.png");
@ -461,15 +476,25 @@ namespace TJAPlayer3
#region Gauge #region Gauge
Gauge = new CTexture[3]; Gauge = new CTexture[8];
Gauge[0] = TxC(GAME + GAUGE + @"1P.png"); Gauge[0] = TxC(GAME + GAUGE + @"1P.png");
Gauge[1] = TxC(GAME + GAUGE + @"2P.png"); Gauge[1] = TxC(GAME + GAUGE + @"2P.png");
Gauge[2] = TxC(GAME + GAUGE + @"1P_Right.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[0] = TxC(GAME + GAUGE + @"1P_Base.png");
Gauge_Base[1] = TxC(GAME + GAUGE + @"2P_Base.png"); Gauge_Base[1] = TxC(GAME + GAUGE + @"2P_Base.png");
Gauge_Base[2] = TxC(GAME + GAUGE + @"1P_Base_Right.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 = new CTexture[2];
Gauge_Line[0] = TxC(GAME + GAUGE + @"1P_Line.png"); 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_Base[0] = TxC(RESULT + @"Gauge_Base.png");
Result_Gauge[1] = TxC(RESULT + @"Gauge_2.png"); Result_Gauge[1] = TxC(RESULT + @"Gauge_2.png");
Result_Gauge_Base[1] = TxC(RESULT + @"Gauge_Base_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_Header = TxC(RESULT + @"Header.png");
Result_Number = TxC(RESULT + @"Number.png"); Result_Number = TxC(RESULT + @"Number.png");
@ -912,6 +943,12 @@ namespace TJAPlayer3
Result_Flower = TxC(RESULT + @"Flower\Flower.png"); 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++) for (int i = 1; i <= 5; i++)
Result_Flower_Rotate[i - 1] = TxC(RESULT + @"Flower\Rotate_" + i.ToString() + ".png"); 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++) for (int i = 0; i < 41; i++)
Result_Rainbow[i] = TxC(RESULT + @"Rainbow\" + i.ToString() + ".png"); 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"); Result_Background[i] = TxC(RESULT + @"Background_" + i.ToString() + ".png");
for (int i = 0; i < 4; i++) 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_Menu_Y = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_X = 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_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_X_AI = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Y_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_X = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Result_Y = 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_X = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Balloon_Y = 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_Normal = new string[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Motion_Miss = 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]; TJAPlayer3.Skin.Characters_Motion_MissDown = new string[TJAPlayer3.Skin.Characters_Ptn];
@ -1088,10 +1129,10 @@ namespace TJAPlayer3
#endregion #endregion
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
TJAPlayer3.NamePlateConfig.tReindexCharacter(i, TJAPlayer3.Skin.Characters_DirName); 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_Full = new CTexture[6];
Modal_Half = 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++) for (int i = 0; i < 5; i++)
{ {
Modal_Full[i] = TxC(MODALS + i.ToString() + @"_full.png"); Modal_Full[i] = TxC(MODALS + i.ToString() + @"_full.png");
Modal_Half[i] = TxC(MODALS + i.ToString() + @"_half.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_Full[Modal_Full.Length - 1] = TxC(MODALS + @"Coin_full.png");
Modal_Half[Modal_Full.Length - 1] = TxC(MODALS + @"Coin_half.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 #endregion
@ -1163,7 +1210,12 @@ namespace TJAPlayer3
int other = (player == 0) ? 1 : 0; 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; int i = old;
@ -1252,7 +1304,12 @@ namespace TJAPlayer3
string charaPath = TJAPlayer3.strEXEのあるフォルダ + GLOBAL + CHARACTERS + TJAPlayer3.Skin.Characters_DirName[newC]; 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; int i = newC;
@ -1415,10 +1472,14 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_X[i] = new int[] { 0, 0 }; TJAPlayer3.Skin.Characters_X[i] = new int[] { 0, 0 };
TJAPlayer3.Skin.Characters_Y[i] = new int[] { 0, 537 }; 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_X_AI[i] = new int[] { 472, 602 };
TJAPlayer3.Skin.Characters_Y_AI[i] = new int[] { 152, 152 }; 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_X[i] = new int[] { 240, 240, 0, 0 };
TJAPlayer3.Skin.Characters_Balloon_Y[i] = new int[] { 0, 297, 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_Normal[i] = "0";
TJAPlayer3.Skin.Characters_Motion_Miss[i] = "0"; TJAPlayer3.Skin.Characters_Motion_Miss[i] = "0";
TJAPlayer3.Skin.Characters_Motion_MissDown[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]); 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") else if (strCommand == "Game_Chara_X_AI")
{ {
string[] strSplit = strParam.Split(','); string[] strSplit = strParam.Split(',');
@ -1566,6 +1643,22 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_Balloon_Y[i][k] = int.Parse(strSplit[k]); 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") else if (strCommand == "Game_Chara_Balloon_Timer")
{ {
if (int.Parse(strParam) > 0) if (int.Parse(strParam) > 0)
@ -1729,6 +1822,7 @@ namespace TJAPlayer3
Loading, Loading,
Scanning_Loudness, Scanning_Loudness,
NamePlateBase, NamePlateBase,
NamePlate_Extension,
Overlay, Overlay,
Readme, Readme,
Network_Connection; Network_Connection;
@ -1775,7 +1869,6 @@ namespace TJAPlayer3
public CTexture SongSelect_Background, public CTexture SongSelect_Background,
SongSelect_Header, SongSelect_Header,
SongSelect_Coin_Slot,
SongSelect_Auto, SongSelect_Auto,
SongSelect_Level, SongSelect_Level,
SongSelect_Branch, SongSelect_Branch,
@ -1815,6 +1908,7 @@ namespace TJAPlayer3
SongSelect_Frame_Score = new CTexture[2], SongSelect_Frame_Score = new CTexture[2],
SongSelect_NamePlate = new CTexture[1], SongSelect_NamePlate = new CTexture[1],
SongSelect_Song_Panel = new CTexture[4], SongSelect_Song_Panel = new CTexture[4],
SongSelect_Coin_Slot = new CTexture[4],
SongSelect_Table = new CTexture[6]; SongSelect_Table = new CTexture[6];
#region [ ] #region [ ]
@ -1825,7 +1919,7 @@ namespace TJAPlayer3
public CTexture Difficulty_Option; public CTexture Difficulty_Option;
public CTexture Difficulty_Option_Select; 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; public CTexture[] Difficulty_Back;
#endregion #endregion
@ -2095,15 +2189,17 @@ namespace TJAPlayer3
Result_Dan; Result_Dan;
public CTexture[] public CTexture[]
Result_Panel_5P = new CTexture[5],
Result_Panel_4P = new CTexture[4],
Result_Rainbow = new CTexture[41], Result_Rainbow = new CTexture[41],
Result_Background = new CTexture[3], Result_Background = new CTexture[6],
Result_Crown = new CTexture[3], Result_Crown = new CTexture[3],
Result_Flower_Rotate = new CTexture[5], Result_Flower_Rotate = new CTexture[5],
Result_Work = new CTexture[3], Result_Work = new CTexture[3],
Result_Gauge = new CTexture[2], Result_Gauge = new CTexture[5],
Result_Gauge_Base = new CTexture[2], Result_Gauge_Base = new CTexture[5],
Result_Speech_Bubble = new CTexture[2], Result_Speech_Bubble = new CTexture[2],
Result_Mountain = new CTexture[4]; Result_Mountain = new CTexture[4];
@ -2193,7 +2289,9 @@ namespace TJAPlayer3
#region [11_Modals] #region [11_Modals]
public CTexture[] Modal_Full, public CTexture[] Modal_Full,
Modal_Half; Modal_Half,
Modal_Half_4P,
Modal_Half_5P;
#endregion #endregion

View File

@ -352,7 +352,7 @@ namespace TJAPlayer3
if (CMainMenuTab.__Menus[usedMenus[this.n現在の選択行モード選択]].rp == E戻り値.DANGAMESTART) 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; operationSucceded = true;
} }
else if (CMainMenuTab.__Menus[usedMenus[this.n現在の選択行モード選択]].implemented == 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++) for (int player = 0; player < TJAPlayer3.ConfigIni.nPlayerCount; player++)
{ {
if (player >= 2) continue;
float DonchanX = 0f, DonchanY = 0f; float DonchanX = 0f, DonchanY = 0f;
DonchanX = -200 + ((float)Math.Sin(ctどんちゃんイン.n現在の値 / 2 * (Math.PI / 180)) * 200f); 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++) 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); TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.SongSelect_NamePlate_X[player], TJAPlayer3.Skin.SongSelect_NamePlate_Y[player], player, false, 255);
} }
} }

View File

@ -86,7 +86,7 @@ namespace TJAPlayer3
CLangManager.LangInstance.GetString(17)); CLangManager.LangInstance.GetString(17));
this.list項目リスト.Add(this.iLayoutType); 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)); CLangManager.LangInstance.GetString(7));
this.list項目リスト.Add( this.iTaikoPlayerCount ); this.list項目リスト.Add( this.iTaikoPlayerCount );
@ -491,9 +491,63 @@ namespace TJAPlayer3
else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignTaikoRBlue2P ) else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignTaikoRBlue2P )
{ {
TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.RBlue2P ); TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.RBlue2P );
}
//太鼓のキー設定。3P
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLRed3P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LRed3P);
} }
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRRed3P)
// Konga claps {
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) else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignKongaClap)
{ {
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.Clap); TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.Clap);
@ -501,6 +555,18 @@ namespace TJAPlayer3
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignKongaClap2P) else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignKongaClap2P)
{ {
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.Clap2P); 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) else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignDecide)
@ -696,6 +762,45 @@ namespace TJAPlayer3
CLangManager.LangInstance.GetString(10014)); CLangManager.LangInstance.GetString(10014));
this.list項目リスト.Add( this.iKeyAssignTaikoRBlue2P ); 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), this.iKeyAssignKongaClap = new CItemBase(CLangManager.LangInstance.GetString(10060),
CLangManager.LangInstance.GetString(10061)); CLangManager.LangInstance.GetString(10061));
this.list項目リスト.Add(this.iKeyAssignKongaClap); this.list項目リスト.Add(this.iKeyAssignKongaClap);
@ -704,6 +809,18 @@ namespace TJAPlayer3
CLangManager.LangInstance.GetString(10063)); CLangManager.LangInstance.GetString(10063));
this.list項目リスト.Add(this.iKeyAssignKongaClap2P); 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), this.iKeyAssignDecide = new CItemBase(CLangManager.LangInstance.GetString(10064),
CLangManager.LangInstance.GetString(10065)); CLangManager.LangInstance.GetString(10065));
this.list項目リスト.Add(this.iKeyAssignDecide); this.list項目リスト.Add(this.iKeyAssignDecide);
@ -1293,13 +1410,32 @@ namespace TJAPlayer3
private CItemBase iKeyAssignTaikoRRed; private CItemBase iKeyAssignTaikoRRed;
private CItemBase iKeyAssignTaikoLBlue; private CItemBase iKeyAssignTaikoLBlue;
private CItemBase iKeyAssignTaikoRBlue; private CItemBase iKeyAssignTaikoRBlue;
private CItemBase iKeyAssignTaikoLRed2P; private CItemBase iKeyAssignTaikoLRed2P;
private CItemBase iKeyAssignTaikoRRed2P; private CItemBase iKeyAssignTaikoRRed2P;
private CItemBase iKeyAssignTaikoLBlue2P; private CItemBase iKeyAssignTaikoLBlue2P;
private CItemBase iKeyAssignTaikoRBlue2P; 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 iKeyAssignKongaClap;
private CItemBase iKeyAssignKongaClap2P; private CItemBase iKeyAssignKongaClap2P;
private CItemBase iKeyAssignKongaClap3P;
private CItemBase iKeyAssignKongaClap4P;
private CItemBase iKeyAssignKongaClap5P;
private CItemBase iKeyAssignDecide; private CItemBase iKeyAssignDecide;
private CItemBase iKeyAssignCancel; private CItemBase iKeyAssignCancel;

View File

@ -200,7 +200,8 @@ namespace TJAPlayer3
txFunMods[nFunMods], 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); 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); 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++) 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], 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[player] + y + i * TJAPlayer3.Skin.SongSelect_Option_Interval[1]); 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[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[player], TJAPlayer3.Skin.SongSelect_Option_ModMults2_Y[player] + 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++) 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], _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[player] + y + i * TJAPlayer3.Skin.SongSelect_Option_Interval[1]); TJAPlayer3.Skin.SongSelect_Option_Value_Y[pos] + y + i * TJAPlayer3.Skin.SongSelect_Option_Interval[1]);
} }
if (ctClose.n現在の値 >= 50) if (ctClose.n現在の値 >= 50)
@ -239,17 +240,44 @@ namespace TJAPlayer3
if (!ctClose.b進行中) if (!ctClose.b進行中)
{ {
bool _leftDrum = (player == 0) bool _leftDrum = false;
? TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LeftChange)
: TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P);
bool _rightDrum = (player == 0) bool _rightDrum = false;
? TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange)
: TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P);
bool _centerDrum = (player == 0) bool _centerDrum = false;
? (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.Decide))
: (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed2P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed2P)); 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)) if (_leftDrum || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow))
@ -521,9 +549,7 @@ namespace TJAPlayer3
#region [ AutoMode ] #region [ AutoMode ]
bool _auto = (player == 0) bool _auto = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player];
? TJAPlayer3.ConfigIni.b太鼓パートAutoPlay
: TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P;
if (_auto == true) if (_auto == true)
nAutoMode = 1; nAutoMode = 1;
@ -656,18 +682,12 @@ namespace TJAPlayer3
#region [ AutoMode ] #region [ AutoMode ]
if (nAutoMode == 1) if (nAutoMode == 1)
{ {
if (player == 0) TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player] = true;
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = true;
else
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = true;
} }
else else
{ {
if (player == 0) TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player] = false;
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = false;
else
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = false;
} }
#endregion #endregion

View File

@ -95,7 +95,7 @@ namespace TJAPlayer3
#endregion #endregion
#region [ SET切り替え/More/Return ] #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( "More...", CItemBase.Eパネル種別., 0, "", "", new string[] { "" } ) );
l.Add( new CSwitchItemList( "戻る", CItemBase.Eパネル種別., 0, "", "", new string[] { "", "" } ) ); l.Add( new CSwitchItemList( "戻る", CItemBase.Eパネル種別., 0, "", "", new string[] { "", "" } ) );
#endregion #endregion

View File

@ -1569,6 +1569,8 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {
if (i >= 2) continue;
int ap = TJAPlayer3.GetActualPlayer(i); int ap = TJAPlayer3.GetActualPlayer(i);
int[] clear = this.r現在選択中の曲.arスコア[(int)Difficulty.Dan].GPInfo[ap].nClear; 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++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {
if (i >= 2) continue;
int ap = TJAPlayer3.GetActualPlayer(i); int ap = TJAPlayer3.GetActualPlayer(i);
int[] clear = this.r現在選択中の曲.arスコア[(int)Difficulty.Tower].GPInfo[ap].nClear; 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++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {
if (i >= 2) continue;
int ap = TJAPlayer3.GetActualPlayer(i); int ap = TJAPlayer3.GetActualPlayer(i);
int[] = sr.GPInfo[ap].nClear; int[] = sr.GPInfo[ap].nClear;
@ -2690,6 +2696,8 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) 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); 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++) 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); 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++) 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); displayRegularCrowns(x + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_X[i], y + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_Y[i], [i], [i], 0.8f);
} }
} }

View File

@ -71,7 +71,7 @@ namespace TJAPlayer3
} }
else if (nスイッチカウント == 0) else if (nスイッチカウント == 0)
{ {
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
if(!bSelect[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.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.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[0] = false;
this.bSelect[1] = 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); 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活性化してる ) if( this.b活性化してる )
return; return;
ctBarAnime = new CCounter[2]; ctBarAnime = new CCounter[5];
ctBarAnime[0] = new CCounter(); ctBarAnime[0] = new CCounter();
ctBarAnime[1] = new CCounter(); ctBarAnime[1] = new CCounter();
ctBarAnime[2] = new CCounter();
ctBarAnime[3] = new CCounter();
ctBarAnime[4] = new CCounter();
base.On活性化(); base.On活性化();
} }
@ -187,9 +193,11 @@ namespace TJAPlayer3
//----------------- //-----------------
#endregion #endregion
ctBarAnimeIn.t進行(); ctBarAnimeIn.t進行();
ctBarAnime[0].t進行(); for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
ctBarAnime[1].t進行(); {
ctBarAnime[i].t進行();
}
bool uraExists = TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[(int)Difficulty.Edit] >= 0; bool uraExists = TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[(int)Difficulty.Edit] >= 0;
bool omoteExists = TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[(int)Difficulty.Oni] >= 0; bool omoteExists = TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[(int)Difficulty.Oni] >= 0;
@ -202,19 +210,42 @@ namespace TJAPlayer3
{ {
if (!bSelect[i] && !isOnOption()) if (!bSelect[i] && !isOnOption())
{ {
bool right = i == 0 ? bool right = false;
(TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow)) : bool left = false;
(TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P)); bool decide = false;
bool left = i == 0 ? bool cancel = false;
(TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LeftChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow)) :
(TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P));
bool decide = i == 0 ? switch (i)
(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)); case 0:
right = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow));
bool cancel = i == 0 ? (TJAPlayer3.Pad.b押されたDGB(Eパッド.Cancel) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape)) : false; 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) if (right)
{ {
@ -248,7 +279,6 @@ namespace TJAPlayer3
this.bSelect[i] = true; this.bSelect[i] = true;
TJAPlayer3.Skin.sound決定音.t再生する(); TJAPlayer3.Skin.sound決定音.t再生する();
TJAPlayer3.Skin.voiceMenuSongDecide[TJAPlayer3.SaveFile]?.t再生する();
bool allPlayerSelected = true; bool allPlayerSelected = true;
@ -267,6 +297,7 @@ namespace TJAPlayer3
{ {
for (int i2 = 0; i2 < TJAPlayer3.ConfigIni.nPlayerCount; i2++) for (int i2 = 0; i2 < TJAPlayer3.ConfigIni.nPlayerCount; i2++)
{ {
TJAPlayer3.Skin.voiceMenuSongDecide[TJAPlayer3.SaveFile]?.t再生する();
CMenuCharacter.tMenuResetTimer(i2, CMenuCharacter.ECharacterAnimation.START); CMenuCharacter.tMenuResetTimer(i2, CMenuCharacter.ECharacterAnimation.START);
if (TJAPlayer3.ConfigIni.bAIBattleMode) if (TJAPlayer3.ConfigIni.bAIBattleMode)
{ {
@ -380,6 +411,8 @@ namespace TJAPlayer3
for (int j = 0; j < TJAPlayer3.ConfigIni.nPlayerCount; j++) for (int j = 0; j < TJAPlayer3.ConfigIni.nPlayerCount; j++)
{ {
if (j >= 2) continue;
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break; if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
int p = TJAPlayer3.GetActualPlayer(j); int p = TJAPlayer3.GetActualPlayer(j);
@ -447,16 +480,45 @@ namespace TJAPlayer3
new RectangleF(0, 0, 259, 114)); 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; int overlapCount = 0;
moveX += (((float)Math.Sin((float)ctBarAnime[i].n現在の値 * (Math.PI / 180)) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[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)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; 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])); (((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.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_X[n現在の選択行[i]] + moveX,
TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Y[n現在の選択行[i]] + moveY, TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Y[n現在の選択行[i]] + moveY,
@ -476,8 +538,8 @@ namespace TJAPlayer3
#region [ private ] #region [ private ]
//----------------- //-----------------
public bool[] bSelect = new bool[2]; public bool[] bSelect = new bool[5];
public bool[] bOption = new bool[2]; public bool[] bOption = new bool[5];
private CPrivateFastFont pfTitle; private CPrivateFastFont pfTitle;
private CPrivateFastFont pfSubTitle; private CPrivateFastFont pfSubTitle;
@ -523,7 +585,7 @@ namespace TJAPlayer3
private bool isOnOption() 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ジャンル) public int nStrジャンルtoNum(string strジャンル)

View File

@ -107,7 +107,7 @@ namespace TJAPlayer3
return this.act曲リスト.bスクロール中; return this.act曲リスト.bスクロール中;
} }
} }
public int[] n確定された曲の難易度 = new int[2]; public int[] n確定された曲の難易度 = new int[5];
public string str確定された曲のジャンル public string str確定された曲のジャンル
{ {
@ -240,7 +240,7 @@ namespace TJAPlayer3
Trace.Indent(); Trace.Indent();
try try
{ {
n確定された曲の難易度 = new int[2]; n確定された曲の難易度 = new int[5];
this.eフェードアウト完了時の戻り値 = E戻り値.; this.eフェードアウト完了時の戻り値 = E戻り値.;
// BGM played // BGM played
@ -460,7 +460,9 @@ namespace TJAPlayer3
*/ */
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) 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); 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終了値に達してない) //if (this.ctDonchan_Select.b終了値に達してない)
for (int player = 0; player < TJAPlayer3.ConfigIni.nPlayerCount; player++) for (int player = 0; player < TJAPlayer3.ConfigIni.nPlayerCount; player++)
{ {
CCounter ___cc = CMenuCharacter._getReferenceCounter(CMenuCharacter.ECharacterAnimation.SELECT)[player]; CCounter ___cc = CMenuCharacter._getReferenceCounter(CMenuCharacter.ECharacterAnimation.SELECT)[player];
int _charaId = TJAPlayer3.NamePlateConfig.data.Character[TJAPlayer3.GetActualPlayer(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_x = player == 0 ? 0 + 100 : 981 + 250;
//int puchi_y = player == 0 ? 330 + 230 : 330 + 230; //int puchi_y = player == 0 ? 330 + 230 : 330 + 230;
int puchi_x = chara_x + TJAPlayer3.Skin.Adjustments_MenuPuchichara_X[player]; int puchi_x = chara_x + TJAPlayer3.Skin.Adjustments_MenuPuchichara_X[player % 2];
int puchi_y = chara_y + TJAPlayer3.Skin.Adjustments_MenuPuchichara_Y[player]; int puchi_y = chara_y + TJAPlayer3.Skin.Adjustments_MenuPuchichara_Y[player % 2];
if (___cc != null && ___cc.b終了値に達してない) 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 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,
defaultTable }; defaultTable };
@ -575,12 +580,18 @@ namespace TJAPlayer3
currentPads[0] = TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[0] - 2; currentPads[0] = TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[0] - 2;
if (TJAPlayer3.ConfigIni.nPlayerCount > 1 && TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[1] >= 2) if (TJAPlayer3.ConfigIni.nPlayerCount > 1 && TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[1] >= 2)
currentPads[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++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break; if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
int p = TJAPlayer3.GetActualPlayer(i); int p = TJAPlayer3.GetActualPlayer(i);
@ -599,8 +610,15 @@ namespace TJAPlayer3
} }
TJAPlayer3.Tx.SongSelect_Coin_Slot?.t2D描画(TJAPlayer3.app.Device, 0, 0, if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
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)); {
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++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {
@ -773,7 +791,7 @@ namespace TJAPlayer3
if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F3)) if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F3))
{ {
TJAPlayer3.Skin.sound変更音.t再生する(); TJAPlayer3.Skin.sound変更音.t再生する();
C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay); C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]);
} }
#endregion #endregion
#region [ F4 2PオートON/OFF ] #region [ F4 2PオートON/OFF ]
@ -782,7 +800,7 @@ namespace TJAPlayer3
if (TJAPlayer3.ConfigIni.nPlayerCount > 1) if (TJAPlayer3.ConfigIni.nPlayerCount > 1)
{ {
TJAPlayer3.Skin.sound変更音.t再生する(); TJAPlayer3.Skin.sound変更音.t再生する();
C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P); C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1]);
} }
} }
#endregion #endregion
@ -1099,7 +1117,7 @@ namespace TJAPlayer3
TJAPlayer3.Tx.SongSelect_Credit.t2D描画(TJAPlayer3.app.Device, 0, 0); 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]; CCounter ___cs = CMenuCharacter._getReferenceCounter(CMenuCharacter.ECharacterAnimation.START)[i];
@ -1119,6 +1137,9 @@ namespace TJAPlayer3
if (act難易度選択画面.bOption[0]) actPlayOption.On進行描画(0); if (act難易度選択画面.bOption[0]) actPlayOption.On進行描画(0);
if (act難易度選択画面.bOption[1]) actPlayOption.On進行描画(1); 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) switch (base.eフェーズID)
{ {

View File

@ -97,7 +97,7 @@ namespace TJAPlayer3
// player and the special song title and subtitle // player and the special song title and subtitle
// of the .tja used to perform input calibration // of the .tja used to perform input calibration
TJAPlayer3.IsPerformingCalibration = TJAPlayer3.IsPerformingCalibration =
!TJAPlayer3.ConfigIni.b太鼓パートAutoPlay && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] &&
TJAPlayer3.ConfigIni.nPlayerCount == 1 && TJAPlayer3.ConfigIni.nPlayerCount == 1 &&
str曲タイトル == "Input Calibration" && str曲タイトル == "Input Calibration" &&
strサブタイトル == "TJAPlayer3 Developers"; strサブタイトル == "TJAPlayer3 Developers";
@ -423,13 +423,19 @@ namespace TJAPlayer3
//if( CDTXMania.DTX == null ) //if( CDTXMania.DTX == null )
{ {
TJAPlayer3.DTX = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 0, true, TJAPlayer3.stage選曲.n確定された曲の難易度[0]); 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]); 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" ) ) 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]); //TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, 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]); //TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[1]);
} }
Trace.TraceInformation( "----曲情報-----------------" ); Trace.TraceInformation( "----曲情報-----------------" );
@ -532,7 +538,7 @@ namespace TJAPlayer3
TJAPlayer3.DTX.PlanToAddMixerChannel(); 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++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {

View File

@ -33,6 +33,9 @@ namespace TJAPlayer3
case 3: case 3:
return this.P4; return this.P4;
case 4:
return this.P5;
} }
throw new IndexOutOfRangeException(); throw new IndexOutOfRangeException();
} }
@ -55,6 +58,10 @@ namespace TJAPlayer3
case 3: case 3:
this.P4 = value; this.P4 = value;
return; return;
case 4:
this.P5 = value;
return;
} }
throw new IndexOutOfRangeException(); throw new IndexOutOfRangeException();
} }
@ -127,12 +134,30 @@ namespace TJAPlayer3
this.act.status.P4.n最高COMBO値 = this.[3]; 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; } public int[] { get; set; }
private int p1; private int p1;
private int p2; private int p2;
private int p3; private int p3;
private int p4; private int p4;
private int p5;
} }
public C演奏判定ライン座標共通 public C演奏判定ライン座標共通
{ {
@ -230,6 +255,7 @@ namespace TJAPlayer3
public CSTAT P2 = new CSTAT(); public CSTAT P2 = new CSTAT();
public CSTAT P3 = new CSTAT(); public CSTAT P3 = new CSTAT();
public CSTAT P4 = new CSTAT(); public CSTAT P4 = new CSTAT();
public CSTAT P5 = new CSTAT();
public CSTAT this[int index] public CSTAT this[int index]
{ {
get get
@ -247,6 +273,9 @@ namespace TJAPlayer3
case 3: case 3:
return this.P4; return this.P4;
case 4:
return this.P5;
} }
throw new IndexOutOfRangeException(); throw new IndexOutOfRangeException();
} }
@ -269,6 +298,10 @@ namespace TJAPlayer3
case 3: case 3:
this.P4 = value; this.P4 = value;
return; return;
case 4:
this.P5 = value;
return;
} }
throw new IndexOutOfRangeException(); 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) if (TJAPlayer3.Tx.Taiko_Combo_Effect != null)
{ {
int a = rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[cat] * i; 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 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 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 if (ctコンボラメ.n現在の値 < 13) // First
{ {
@ -371,10 +404,55 @@ namespace TJAPlayer3
#region [ n位の数[] "COMBO" 1 10 ] #region [ n位の数[] "COMBO" 1 10 ]
//----------------- //-----------------
const int n1桁ごとのジャンプの遅れ = 30; // 1桁につき 50 インデックス遅れる const int n1桁ごとのジャンプの遅れ = 30; // 1桁につき 50 インデックス遅れる
//X右座標を元にして、右座標 - ( コンボの幅 * 桁数 ) でX座標を求めていく? //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 nY上辺位置px = TJAPlayer3.ConfigIni.bReverse.Drums ? 350 : 10;
int n数字とCOMBOを合わせた画像の全長px = ((44) * n桁数); int n数字とCOMBOを合わせた画像の全長px = ((44) * n桁数);
@ -384,7 +462,7 @@ namespace TJAPlayer3
#region[ Combo text & Combo guides ] #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; int guide = 2;
var ccf = TJAPlayer3.stage演奏ドラム画面.CChartScore[nPlayer]; var ccf = TJAPlayer3.stage演奏ドラム画面.CChartScore[nPlayer];
@ -394,7 +472,7 @@ namespace TJAPlayer3
if (ccf.nMiss > 0 || ccf.nMine > 0) if (ccf.nMiss > 0 || ccf.nMine > 0)
guide = 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 #endregion
@ -403,22 +481,22 @@ namespace TJAPlayer3
if (n桁数 == 1) if (n桁数 == 1)
{ {
// 一桁ならそのままSkinConfigの座標を使用する。 // 一桁ならそのままSkinConfigの座標を使用する。
rightX = TJAPlayer3.Skin.Game_Taiko_Combo_X[nPlayer]; rightX = combo_x;
} }
else if (n桁数 == 2) else if (n桁数 == 2)
{ {
// 二桁ならSkinConfigの座標+パディング/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) else if (n桁数 == 3)
{ {
// 三桁ならSkinConfigの座標+パディングを使用する // 三桁なら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) else if (n桁数 == 4)
{ {
// 四桁ならSkinconfigの座標+パディング/2 + パディングを使用する // 四桁なら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 else
{ {
@ -431,14 +509,14 @@ namespace TJAPlayer3
// パディング/2を足す必要がある // パディング/2を足す必要がある
// 右に表示される桁数を求め、-1する // 右に表示される桁数を求め、-1する
rightDigit = n桁数 / 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; break;
case 1: case 1:
// 2で割るとあまりが出る // 2で割るとあまりが出る
// そのままパディングを足していく // そのままパディングを足していく
// 右に表示される桁数を求める(中央除く -1) // 右に表示される桁数を求める(中央除く -1)
rightDigit = (n桁数 - 1) / 2; 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; break;
default: default:
break; break;
@ -460,7 +538,7 @@ namespace TJAPlayer3
var yScalling = ComboScale[this.ctコンボ加算[nPlayer].n現在の値]; 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拡大縮小倍率.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].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) else if (n桁数 <= 2)
@ -473,7 +551,7 @@ namespace TJAPlayer3
var yScalling = ComboScale[this.ctコンボ加算[nPlayer].n現在の値]; 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拡大縮小倍率.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].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 else
@ -483,10 +561,10 @@ namespace TJAPlayer3
var yScalling = ComboScale[this.ctコンボ加算[nPlayer].n現在の値]; 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拡大縮小倍率.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].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) 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拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1] + yScalling;
TJAPlayer3.Tx.Taiko_Combo[3].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1]; 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; 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) 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拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1] + yScalling;
TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1]; 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; 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 else
{ {
@ -518,7 +596,7 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Taiko_Combo[3].vc拡大縮小倍率.Y = 1.0f + yScalling; TJAPlayer3.Tx.Taiko_Combo[3].vc拡大縮小倍率.Y = 1.0f + yScalling;
TJAPlayer3.Tx.Taiko_Combo[3].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[2]; 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; 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) 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拡大縮小倍率.Y = 1.0f + yScalling;
TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[2]; 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; 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活性化() public override void On活性化()
{ {
this.n現在のコンボ数 = new STCOMBO() { act = this }; this.n現在のコンボ数 = new STCOMBO() { act = this };
this.n現在のコンボ数. = new int[4]; this.n現在のコンボ数. = new int[5];
this.status = new CSTATUS(); this.status = new CSTATUS();
this.ctコンボ加算 = new CCounter[4]; this.ctコンボ加算 = new CCounter[5];
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
{ {
this.status[i].e現在のモード = EMode.; this.status[i].e現在のモード = EMode.;
this.status[i].nCOMBO値 = 0; this.status[i].nCOMBO値 = 0;
@ -604,7 +682,7 @@ namespace TJAPlayer3
if (this.b活性化してない) if (this.b活性化してない)
return 0; return 0;
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
{ {
EEvent e今回の状態遷移イベント; EEvent e今回の状態遷移イベント;
@ -701,11 +779,15 @@ namespace TJAPlayer3
break; break;
case 2: case 2:
this.tコンボ表示_ベース(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値); this.tコンボ表示_太鼓(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値, 2);
break; break;
case 3: 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;
} }
break; break;

View File

@ -60,13 +60,13 @@ namespace TJAPlayer3
public override void On活性化() public override void On活性化()
{ {
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
ListCombo[i] = new List<CComboVoice>(); ListCombo[i] = new List<CComboVoice>();
ListFloor[i] = new List<CComboVoice>(); ListFloor[i] = new List<CComboVoice>();
} }
VoiceIndex = new int[] { 0, 0 }; VoiceIndex = new int[] { 0, 0, 0, 0, 0 };
FloorIndex = new int[] { 0, 0 }; FloorIndex = new int[] { 0, 0, 0, 0, 0 };
base.On活性化(); base.On活性化();
} }
public override void OnManagedリソースの作成() public override void OnManagedリソースの作成()
@ -142,7 +142,7 @@ namespace TJAPlayer3
{ {
if( !base.b活性化してない ) if( !base.b活性化してない )
{ {
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
foreach (var item in ListCombo[i]) foreach (var item in ListCombo[i])
{ {
@ -166,8 +166,8 @@ namespace TJAPlayer3
int[] VoiceIndex; int[] VoiceIndex;
int[] FloorIndex; int[] FloorIndex;
readonly List<CComboVoice>[] ListCombo = new List<CComboVoice>[2]; readonly List<CComboVoice>[] ListCombo = new List<CComboVoice>[5];
readonly List<CComboVoice>[] ListFloor = new List<CComboVoice>[2]; readonly List<CComboVoice>[] ListFloor = new List<CComboVoice>[5];
//----------------- //-----------------
#endregion #endregion
} }

View File

@ -33,14 +33,17 @@ namespace TJAPlayer3
{ {
for (int i = 0; i < 3; i++) for (int i = 0; i < 3; i++)
{ {
dbゲージ増加量[i] = new float[2]; dbゲージ増加量[i] = new float[5];
for (int n = 0; n < 3; n++) 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[0] = TJAPlayer3.DTX;
this.DTX[1] = TJAPlayer3.DTX_2P; 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 = new CActLVLNFont();
actLVLNFont.On活性化(); actLVLNFont.On活性化();
base.On活性化(); base.On活性化();
@ -107,7 +110,7 @@ namespace TJAPlayer3
{ {
//ダメージ値の計算は太鼓の達人譜面Wikiのものを参考にしました。 //ダメージ値の計算は太鼓の達人譜面Wikiのものを参考にしました。
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
{ {
this.db現在のゲージ値[i] = 0; this.db現在のゲージ値[i] = 0;
} }
@ -519,8 +522,8 @@ namespace TJAPlayer3
//----------------- //-----------------
#endregion #endregion
private CDTX[] DTX = new CDTX[2]; private CDTX[] DTX = new CDTX[5];
public double[] db現在のゲージ値 = new double[4]; public double[] db現在のゲージ値 = new double[5];
protected CCounter ct炎; protected CCounter ct炎;
protected CCounter ct虹アニメ; protected CCounter ct虹アニメ;
protected CCounter ct虹透明度; protected CCounter ct虹透明度;

View File

@ -9,7 +9,7 @@ namespace TJAPlayer3
{ {
// プロパティ // プロパティ
public STDGBVALUE<double> db現在の譜面スクロール速度; public double[] db現在の譜面スクロール速度 = new double[5];
// コンストラクタ // コンストラクタ
@ -24,7 +24,7 @@ namespace TJAPlayer3
public override void On活性化() 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.db現在の譜面スクロール速度[ i ] = (double) TJAPlayer3.ConfigIni.nScrollSpeed[ TJAPlayer3.GetActualPlayer(i) ];
this.n速度変更制御タイマ[ i ] = -1; this.n速度変更制御タイマ[ i ] = -1;
@ -41,7 +41,7 @@ namespace TJAPlayer3
if( base.b初めての進行描画 ) if( base.b初めての進行描画 )
{ {
//this.n速度変更制御タイマ.Drums = this.n速度変更制御タイマ.Guitar = this.n速度変更制御タイマ.Bass = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); //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)); this.n速度変更制御タイマ[i] = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
@ -50,7 +50,7 @@ namespace TJAPlayer3
base.b初めての進行描画 = false; base.b初めての進行描画 = false;
} }
long n現在時刻 = CSound管理.rc演奏用タイマ.n現在時刻; 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) ]; double db譜面スクロールスピード = (double) TJAPlayer3.ConfigIni.nScrollSpeed[ TJAPlayer3.GetActualPlayer(i) ];
if( n現在時刻 < this.n速度変更制御タイマ[ i ] ) if( n現在時刻 < this.n速度変更制御タイマ[ i ] )
@ -89,7 +89,7 @@ namespace TJAPlayer3
#region [ private ] #region [ private ]
//----------------- //-----------------
private STDGBVALUE<long> n速度変更制御タイマ; private long[] n速度変更制御タイマ = new long[5];
//----------------- //-----------------
#endregion #endregion
} }

View File

@ -287,14 +287,17 @@ namespace TJAPlayer3
public override void On活性化() public override void On活性化()
{ {
this.n現在表示中のスコア = new STDGBVALUE<long>[ 4 ]; this.n現在表示中のスコア = new STDGBVALUE<long>[ 5 ];
this.n現在の本当のスコア = new STDGBVALUE<double>[ 4 ]; this.n現在の本当のスコア = new STDGBVALUE<double>[ 5 ];
this.nスコアの増分 = new STDGBVALUE<long>[ 4 ]; this.nスコアの増分 = new STDGBVALUE<long>[ 5 ];
for( int i = 0; i < 4; i++ ) for( int i = 0; i < 5; i++ )
{ {
this.n現在表示中のスコア[ i ][ i ] = 0L; for (int j = 0; j < 4; j++)
this.n現在の本当のスコア[ i ][ i ] = 0L; {
this.nスコアの増分[ i ][ i ] = 0L; this.n現在表示中のスコア[i][j] = 0L;
this.n現在の本当のスコア[i][j] = 0L;
this.nスコアの増分[i][j] = 0L;
}
} }
for( int sc = 0; sc < 256; sc++ ) for( int sc = 0; sc < 256; sc++ )
{ {
@ -309,13 +312,13 @@ namespace TJAPlayer3
this.ctTimer = new CCounter(); this.ctTimer = new CCounter();
this.ct点数アニメタイマ = new CCounter[4]; this.ct点数アニメタイマ = new CCounter[5];
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
{ {
this.ct点数アニメタイマ[i] = new CCounter(); this.ct点数アニメタイマ[i] = new CCounter();
} }
this.ctボーナス加算タイマ = new CCounter[4]; this.ctボーナス加算タイマ = new CCounter[5];
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
{ {
this.ctボーナス加算タイマ[i] = new CCounter(); this.ctボーナス加算タイマ[i] = new CCounter();
} }
@ -372,13 +375,43 @@ namespace TJAPlayer3
} }
break; break;
case 2: 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 = new SlimDX.Color4( 0.4f, 0.5f, 1.0f );
//this.txScore.color4 = CDTXMania.Skin.cScoreColor2P; //this.txScore.color4 = CDTXMania.Skin.cScoreColor2P;
TJAPlayer3.Tx.Taiko_Score[2].Opacity = alpha; TJAPlayer3.Tx.Taiko_Score[2].Opacity = alpha;
TJAPlayer3.Tx.Taiko_Score[2].vc拡大縮小倍率.Y = 1; 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; break;
} }

View File

@ -252,7 +252,7 @@ namespace TJAPlayer3
} }
public int t進行描画( int x, int y ) 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 ) if( !base.b活性化してない && !this.bMute )
{ {
this.ct進行用.t進行Loop(); this.ct進行用.t進行Loop();

View File

@ -12,7 +12,7 @@ namespace TJAPlayer3
// プロパティ // プロパティ
public double dbBPM; public double dbBPM;
public readonly int[] NowMeasure = new int[2]; public readonly int[] NowMeasure = new int[5];
public double dbSCROLL; public double dbSCROLL;
public int[] _chipCounts = new int[2]; public int[] _chipCounts = new int[2];
@ -28,7 +28,7 @@ namespace TJAPlayer3
public override void On活性化() public override void On活性化()
{ {
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
NowMeasure[i] = 0; NowMeasure[i] = 0;
} }

View File

@ -52,7 +52,7 @@ namespace TJAPlayer3
/// </summary> /// </summary>
public void Reset() public void Reset()
{ {
for ( int i = 0; i < 4; i++ ) for ( int i = 0; i < 5; i++ )
{ {
ccounter[ i ] = new CCounter(); ccounter[ i ] = new CCounter();
b演奏チップがつでもバーを通過した[ i ] = false; b演奏チップがつでもバーを通過した[ i ] = false;
@ -170,7 +170,7 @@ namespace TJAPlayer3
if( disposeManagedObjects ) if( disposeManagedObjects )
{ {
// (A) Managed リソースの解放 // (A) Managed リソースの解放
for ( int i = 0; i < 4; i++ ) for ( int i = 0; i < 5; i++ )
{ {
// ctInvisibleTimer[ i ].Dispose(); // ctInvisibleTimer[ i ].Dispose();
ccounter[ i ].t停止(); ccounter[ i ].t停止();
@ -189,8 +189,8 @@ namespace TJAPlayer3
//----------------- //-----------------
#endregion #endregion
private STDGBVALUE<CCounter> ccounter; private CCounter[] ccounter = new CCounter[5];
private bool bDispose完了済み = false; private bool bDispose完了済み = false;
private STDGBVALUE<bool> b演奏チップがつでもバーを通過した; private bool[] b演奏チップがつでもバーを通過した = new bool[5];
} }
} }

View File

@ -29,11 +29,11 @@ namespace TJAPlayer3
Drums.nスコア = (long) this.actScore.Get( E楽器パート.DRUMS, 0 ); 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.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.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.nPerfect数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? 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.nGreat数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? 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.nGood数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? 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.nPoor数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? 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.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.nPerfect数_Auto含まない = this.nヒット数_Auto含まない.Drums.Perfect;
Drums.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Drums.Great; Drums.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Drums.Great;
Drums.nGood数_Auto含まない = this.nヒット数_Auto含まない.Drums.Good; Drums.nGood数_Auto含まない = this.nヒット数_Auto含まない.Drums.Good;
@ -75,7 +75,7 @@ namespace TJAPlayer3
Drums. = DateTime.Now.ToString(); Drums. = DateTime.Now.ToString();
Drums.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Drums ); Drums.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Drums );
Drums.fゲージ = (float)this.actGauge.db現在のゲージ値[ 0 ]; 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 他難易度の上書き防止。 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 ) ) if( TJAPlayer3.stage選曲.r確定されたスコア..nハイスコア[ TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < (int)this.actScore.Get( E楽器パート.DRUMS, 0 ) )
@ -92,14 +92,14 @@ namespace TJAPlayer3
// CStage 実装 // CStage 実装
public int[] nNoteCount = new int[4]; public int[] nNoteCount = new int[5];
public int[] nBalloonCount = new int[4]; public int[] nBalloonCount = new int[5];
public double[] nRollTimeMs = new double[4]; public double[] nRollTimeMs = new double[5];
public double[] nAddScoreNiji = new double[4]; public double[] nAddScoreNiji = new double[5];
public override void On活性化() public override void On活性化()
{ {
listChip = new List<CDTX.CChip>[ 4 ]; listChip = new List<CDTX.CChip>[ 5 ];
for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
{ {
nNoteCount[i] = 0; nNoteCount[i] = 0;
@ -115,6 +115,15 @@ namespace TJAPlayer3
case 1: case 1:
listChip[i] = TJAPlayer3.DTX_2P.listChip; listChip[i] = TJAPlayer3.DTX_2P.listChip;
break; 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; int n整数値管理 = 0;
@ -138,8 +147,26 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) 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 _totalNotes = 0;
int _totalBalloons = 0; int _totalBalloons = 0;
@ -269,9 +296,9 @@ namespace TJAPlayer3
NowAIBattleSectionCount = 0; NowAIBattleSectionCount = 0;
ctChipAnime = new CCounter[2]; ctChipAnime = new CCounter[5];
ctChipAnimeLag = new CCounter[2]; ctChipAnimeLag = new CCounter[5];
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
ctChipAnime[i] = new CCounter(); ctChipAnime[i] = new CCounter();
ctChipAnimeLag[i] = new CCounter(); ctChipAnimeLag[i] = new CCounter();
@ -329,13 +356,13 @@ namespace TJAPlayer3
this.tステータスパネルの選択(); this.tステータスパネルの選択();
this.tパネル文字列の設定(); this.tパネル文字列の設定();
//this.演奏判定ライン座標(); //this.演奏判定ライン座標();
this.bIsGOGOTIME = new bool[] { false, false, false, false }; this.bIsGOGOTIME = new bool[] { false, false, false, false, false };
this.bIsMiss = new bool[] { false, false, false, false }; this.bIsMiss = new bool[] { false, false, false, false, false };
this.bUseBranch = new bool[]{ false, false, false, false }; this.bUseBranch = new bool[]{ false, false, false, false, false };
this.n現在のコース = new CDTX.ECourse[4]; this.n現在のコース = new CDTX.ECourse[5];
this.n次回のコース = new CDTX.ECourse[4]; this.n次回のコース = new CDTX.ECourse[5];
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
this.b強制的に分岐させた[i] = false; this.b強制的に分岐させた[i] = false;
@ -356,18 +383,18 @@ namespace TJAPlayer3
} }
this.nレーン用表示コース = new CDTX.ECourse[4]; this.nレーン用表示コース = new CDTX.ECourse[5];
this.b連打中 = new bool[] { false, false, false, false }; this.b連打中 = new bool[] { false, false, false, false, false };
this.n現在の連打数 = new int[]{ 0, 0, 0, 0 }; this.n現在の連打数 = new int[]{ 0, 0, 0, 0, 0 };
this.n合計連打数 = new int[]{ 0, 0, 0, 0 }; this.n合計連打数 = new int[]{ 0, 0, 0, 0, 0 };
this.n分岐した回数 = new int[ 4 ]; this.n分岐した回数 = new int[ 5 ];
this.Chara_MissCount = new int[4]; this.Chara_MissCount = new int[5];
for (int i = 0; i < 2; i++) for (int i = 0; i < 2; i++)
{ {
ShownLyric[i] = 0; ShownLyric[i] = 0;
} }
this.nJPOSSCROLL = new int[ 4 ]; this.nJPOSSCROLL = new int[ 5 ];
this.bLEVELHOLD = new bool[]{ false, false, false, false }; this.bLEVELHOLD = new bool[]{ false, false, false, false, false };
// Double play set here // Double play set here
@ -377,13 +404,16 @@ namespace TJAPlayer3
this.tBranchReset(0); 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.Guitar = CDTXMania.ConfigIni.bギターが全部オートプレイである;
//this.bIsAutoPlay.Bass = CDTXMania.ConfigIni.bベースが全部オートプレイである; //this.bIsAutoPlay.Bass = CDTXMania.ConfigIni.bベースが全部オートプレイである;
// this.nRisky = CDTXMania.ConfigIni.nRisky; // #23559 2011.7.28 yyagi // 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; this.nPolyphonicSounds = TJAPlayer3.ConfigIni.nPoliphonicSounds;
e判定表示優先度 = TJAPlayer3.ConfigIni.e判定表示優先度; e判定表示優先度 = TJAPlayer3.ConfigIni.e判定表示優先度;
@ -452,8 +482,8 @@ namespace TJAPlayer3
// this.sw2 = new Stopwatch(); // this.sw2 = new Stopwatch();
// this.gclatencymode = GCSettings.LatencyMode; // this.gclatencymode = GCSettings.LatencyMode;
// GCSettings.LatencyMode = GCLatencyMode.Batch; // 演奏画面中はGCを抑止する // GCSettings.LatencyMode = GCLatencyMode.Batch; // 演奏画面中はGCを抑止する
this.bIsAlreadyCleared = new bool[2]; this.bIsAlreadyCleared = new bool[5];
this.bIsAlreadyMaxed = new bool[2]; this.bIsAlreadyMaxed = new bool[5];
this.ListDan_Number = 0; this.ListDan_Number = 0;
this.IsDanFailed = false; this.IsDanFailed = false;
@ -493,7 +523,7 @@ namespace TJAPlayer3
this.ctチップ模様アニメ.Bass = null; this.ctチップ模様アニメ.Bass = null;
this.ctチップ模様アニメ.Taiko = null; this.ctチップ模様アニメ.Taiko = null;
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
ctChipAnime[i] = null; ctChipAnime[i] = null;
ctChipAnimeLag[i] = null; ctChipAnimeLag[i] = null;
@ -630,6 +660,66 @@ namespace TJAPlayer3
public int nMine; 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 CAct演奏AVI actAVI;
public Rainbow Rainbow; public Rainbow Rainbow;
protected CAct演奏チップファイアGB actChipFireGB; protected CAct演奏チップファイアGB actChipFireGB;
@ -723,34 +813,34 @@ namespace TJAPlayer3
protected STAUTOPLAY bIsAutoPlay; // #24239 2011.1.23 yyagi protected STAUTOPLAY bIsAutoPlay; // #24239 2011.1.23 yyagi
// protected int nRisky_InitialVar, nRiskyTime; // #23559 2011.7.28 yyagi → CAct演奏ゲージ共通クラスに隠蔽 // protected int nRisky_InitialVar, nRiskyTime; // #23559 2011.7.28 yyagi → CAct演奏ゲージ共通クラスに隠蔽
protected int nPolyphonicSounds; protected int nPolyphonicSounds;
protected List<CDTX.CChip>[] listChip = new List<CDTX.CChip>[4]; protected List<CDTX.CChip>[] listChip = new List<CDTX.CChip>[5];
protected Dictionary<int, CDTX.CWAV> listWAV; protected Dictionary<int, CDTX.CWAV> listWAV;
protected CInvisibleChip cInvisibleChip; protected CInvisibleChip cInvisibleChip;
protected bool bUseOSTimer; protected bool bUseOSTimer;
protected E判定表示優先度 e判定表示優先度; protected E判定表示優先度 e判定表示優先度;
public CBRANCHSCORE[] CBranchScore = new CBRANCHSCORE[6]; 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[] bIsGOGOTIME = new bool[5];
public bool[] bIsMiss = new bool[4]; public bool[] bIsMiss = new bool[5];
public bool[] bUseBranch = new bool[ 4 ]; public bool[] bUseBranch = new bool[ 5 ];
public CDTX.ECourse[] n現在のコース = new CDTX.ECourse[4]; //0:普通譜面 1:玄人譜面 2:達人譜面 public CDTX.ECourse[] n現在のコース = new CDTX.ECourse[5]; //0:普通譜面 1:玄人譜面 2:達人譜面
public CDTX.ECourse[] n次回のコース = new CDTX.ECourse[4]; public CDTX.ECourse[] n次回のコース = new CDTX.ECourse[5];
public CDTX.ECourse[] nレーン用表示コース = new CDTX.ECourse[4]; public CDTX.ECourse[] nレーン用表示コース = new CDTX.ECourse[5];
protected bool[] b譜面分岐中 = new bool[] { false, false, false, false }; protected bool[] b譜面分岐中 = new bool[] { false, false, false, false, false };
protected int[] n分岐した回数 = new int[ 4 ]; protected int[] n分岐した回数 = new int[ 5 ];
protected int[] nJPOSSCROLL = new int[ 4 ]; protected int[] nJPOSSCROLL = new int[ 5 ];
public bool[] b強制的に分岐させた = 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 }; public bool[] bLEVELHOLD = new bool[] { false, false, false, false, false };
protected int nListCount; protected int nListCount;
private readonly int[] ShownLyric = new int[] { 0, 0 }; private readonly int[] ShownLyric = new int[] { 0, 0 };
public bool[] b連打中 = new bool[]{ false, false, false, false }; //奥の手 public bool[] b連打中 = new bool[]{ false, false, false, false, false }; //奥の手
private int[] n合計連打数 = new int[ 4 ]; private int[] n合計連打数 = new int[ 5 ];
protected int[] n風船残り = new int[ 4 ]; protected int[] n風船残り = new int[ 5 ];
protected int[] n現在の連打数 = new int[ 4 ]; protected int[] n現在の連打数 = new int[ 5 ];
public int[] Chara_MissCount; public int[] Chara_MissCount;
protected E連打State eRollState; protected E連打State eRollState;
@ -762,29 +852,25 @@ namespace TJAPlayer3
protected int[] nStoredHit; 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; protected const int NOTE_GAP = 25;
public int nLoopCount_Clear; public int nLoopCount_Clear;
protected int[] nScore = new int[11]; protected int[] nScore = new int[11];
protected int[] nHand = new int[4]; protected int[] nHand = new int[5];
protected CSound soundRed; protected CSound[] soundRed = new CSound[5];
protected CSound soundBlue; protected CSound[] soundBlue = new CSound[5];
protected CSound soundAdlib; protected CSound[] soundAdlib = new CSound[5];
protected CSound soundClap; protected CSound[] soundClap = new CSound[5];
protected CSound soundRed2;
protected CSound soundBlue2;
protected CSound soundAdlib2;
protected CSound soundClap2;
public bool bDoublePlay; // 2016.08.21 kairera0467 表示だけ。 public bool bDoublePlay; // 2016.08.21 kairera0467 表示だけ。
protected Stopwatch sw; // 2011.6.13 最適化検討用のストップウォッチ protected Stopwatch sw; // 2011.6.13 最適化検討用のストップウォッチ
public int ListDan_Number; public int ListDan_Number;
private bool IsDanFailed; private bool IsDanFailed;
private bool[] b強制分岐譜面 = new bool[4]; private bool[] b強制分岐譜面 = new bool[5];
private CDTX.E分岐種類 eBranch種類; private CDTX.E分岐種類 eBranch種類;
public double nBranch条件数値A; public double nBranch条件数値A;
public double nBranch条件数値B; 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; public int AIBattleState;
@ -1105,63 +1191,28 @@ namespace TJAPlayer3
if (index == 0x11 || index == 0x13 || index == 0x1A || index == 0x101) if (index == 0x11 || index == 0x13 || index == 0x1A || index == 0x101)
{ {
if (pChip.nPlayerSide == 0) this.soundRed[pChip.nPlayerSide]?.t再生を開始する();
{
this.soundRed?.t再生を開始する();
}
else
{
this.soundRed2?.t再生を開始する();
}
if ((index == 0x13 && _gt == EGameType.KONGA) || index == 0x101) if ((index == 0x13 && _gt == EGameType.KONGA) || index == 0x101)
{ {
if (pChip.nPlayerSide == 0) this.soundBlue[pChip.nPlayerSide]?.t再生を開始する();
{
this.soundBlue?.t再生を開始する();
}
else
{
this.soundBlue2?.t再生を開始する();
}
} }
} }
else if (index == 0x12 || index == 0x14 || index == 0x1B) else if (index == 0x12 || index == 0x14 || index == 0x1B)
{ {
if (index == 0x14 && _gt == EGameType.KONGA) if (index == 0x14 && _gt == EGameType.KONGA)
{ {
if (pChip.nPlayerSide == 0) this.soundClap[pChip.nPlayerSide]?.t再生を開始する();
{
this.soundClap?.t再生を開始する();
}
else
{
this.soundClap2?.t再生を開始する();
}
} }
else else
{ {
if (pChip.nPlayerSide == 0) this.soundBlue[pChip.nPlayerSide]?.t再生を開始する();
{
this.soundBlue?.t再生を開始する();
}
else
{
this.soundBlue2?.t再生を開始する();
}
} }
} }
else if (index == 0x1F) else if (index == 0x1F)
{ {
if (pChip.nPlayerSide == 0) this.soundAdlib[pChip.nPlayerSide]?.t再生を開始する();
{
this.soundAdlib?.t再生を開始する();
}
else
{
this.soundAdlib2?.t再生を開始する();
}
} }
if (this.nHand[nPlayer] == 0) if (this.nHand[nPlayer] == 0)
@ -1305,10 +1356,7 @@ namespace TJAPlayer3
//赤か青かの分岐 //赤か青かの分岐
if ( sort == 0|| sort == 2 ) if ( sort == 0|| sort == 2 )
{ {
if (pChip.nPlayerSide == 0) this.soundRed[pChip.nPlayerSide]?.t再生を開始する();
this.soundRed?.t再生を開始する();
else
this.soundRed2?.t再生を開始する();
if (pChip.nチャンネル番号 == 0x15 || _gt == EGameType.KONGA || (_gt == EGameType.TAIKO && pChip.nチャンネル番号 == 0x21)) 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) else if (sort == 1 || sort == 3)
{ {
if (pChip.nPlayerSide == 0) this.soundBlue[pChip.nPlayerSide]?.t再生を開始する();
this.soundBlue?.t再生を開始する();
else
this.soundBlue2?.t再生を開始する();
if (pChip.nチャンネル番号 == 0x15 || _gt == EGameType.KONGA || (_gt == EGameType.TAIKO && pChip.nチャンネル番号 == 0x21)) if (pChip.nチャンネル番号 == 0x15 || _gt == EGameType.KONGA || (_gt == EGameType.TAIKO && pChip.nチャンネル番号 == 0x21))
{ {
@ -1345,10 +1390,7 @@ namespace TJAPlayer3
} }
else if (sort == 4) else if (sort == 4)
{ {
if (pChip.nPlayerSide == 0) this.soundClap[pChip.nPlayerSide]?.t再生を開始する();
this.soundClap?.t再生を開始する();
else
this.soundClap2?.t再生を開始する();
TJAPlayer3.stage演奏ドラム画面.FlyingNotes.Start(4, nPlayer, true); TJAPlayer3.stage演奏ドラム画面.FlyingNotes.Start(4, nPlayer, true);
} }
@ -1432,10 +1474,7 @@ namespace TJAPlayer3
this.actScore.Add(E楽器パート.TAIKO, this.bIsAutoPlay, 100L, player); this.actScore.Add(E楽器パート.TAIKO, this.bIsAutoPlay, 100L, player);
} }
//CDTXMania.Skin.soundRed.t再生する(); //CDTXMania.Skin.soundRed.t再生する();
if (pChip.nPlayerSide == 0) this.soundRed[pChip.nPlayerSide]?.t再生を開始する();
this.soundRed?.t再生を開始する();
else
this.soundRed2?.t再生を開始する();
if ( pChip.nBalloon == pChip.nRollCount ) if ( pChip.nBalloon == pChip.nRollCount )
@ -1494,16 +1533,13 @@ namespace TJAPlayer3
{ {
//unsafeコードにつき、デバッグ中の変更厳禁! //unsafeコードにつき、デバッグ中の変更厳禁!
bool bAutoPlay = false; bool bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer];
bool bBombHit = false; bool bBombHit = false;
switch (nPlayer) switch (nPlayer)
{ {
case 0:
bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay;
break;
case 1: case 1:
bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode; bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode;
break; break;
} }
@ -2070,7 +2106,7 @@ namespace TJAPlayer3
//CDTXMania.act文字コンソール.tPrint(620, 80, C文字コンソール.Eフォント種別.白, "BPM: " + dbUnit.ToString()); //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) if (this.actCombo.n現在のコンボ数[i] == 50 || this.actCombo.n現在のコンボ数[i] == 300)
{ {
@ -2339,6 +2375,9 @@ namespace TJAPlayer3
case E楽器パート.TAIKO: case E楽器パート.TAIKO:
this.actCombo.n現在のコンボ数.P1 = 0; this.actCombo.n現在のコンボ数.P1 = 0;
this.actCombo.n現在のコンボ数.P2 = 0; this.actCombo.n現在のコンボ数.P2 = 0;
this.actCombo.n現在のコンボ数.P3 = 0;
this.actCombo.n現在のコンボ数.P4 = 0;
this.actCombo.n現在のコンボ数.P5 = 0;
break; break;
default: default:
@ -2988,10 +3027,10 @@ namespace TJAPlayer3
{ {
if (keyboard.bキーが押された((int)SlimDXKeys.Key.F6)) if (keyboard.bキーが押された((int)SlimDXKeys.Key.F6))
{ {
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == false) if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] == false)
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = true; TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] = true;
else 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 (keyboard.bキーが押された((int)SlimDXKeys.Key.F7))
{ {
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P == false) if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] == false)
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = true; TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] = true;
else else
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = false; TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] = false;
} }
#endif #endif
if ( !this.actPauseMenu.bIsActivePopupMenu && this.bPAUSE && ( ( base.eフェーズID != CStage.Eフェーズ._STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ._STAGE_FAILED_フェードアウト ) ) 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; CConfigIni configIni = TJAPlayer3.ConfigIni;
CDTX dTX = TJAPlayer3.DTX; CDTX dTX = TJAPlayer3.DTX;
bool bAutoPlay = false; bool bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer];
switch( nPlayer ) //2017.08.11 kairera0467 switch ( nPlayer ) //2017.08.11 kairera0467
{ {
case 0:
bAutoPlay = configIni.b太鼓パートAutoPlay;
break;
case 1: case 1:
bAutoPlay = configIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode; bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode;
dTX = TJAPlayer3.DTX_2P; dTX = TJAPlayer3.DTX_2P;
break; break;
case 2:
dTX = TJAPlayer3.DTX_3P;
break;
case 3:
dTX = TJAPlayer3.DTX_4P;
break;
case 4:
dTX = TJAPlayer3.DTX_5P;
break;
default: default:
break; break;
} }
@ -3472,7 +3517,7 @@ namespace TJAPlayer3
this.actChara.b演奏中[nPlayer] = true; this.actChara.b演奏中[nPlayer] = true;
if( this.actPlayInfo.NowMeasure[nPlayer] == 0 ) 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演奏用タイマ); 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演奏用タイマ); 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; CConfigIni configIni = TJAPlayer3.ConfigIni;
CDTX dTX = TJAPlayer3.DTX; CDTX dTX = TJAPlayer3.DTX;
bool bAutoPlay = false; bool bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer];
switch( nPlayer ) //2017.08.11 kairera0467 switch ( nPlayer ) //2017.08.11 kairera0467
{ {
case 0:
bAutoPlay = configIni.b太鼓パートAutoPlay;
break;
case 1: case 1:
bAutoPlay = configIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode; bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode;
dTX = TJAPlayer3.DTX_2P; dTX = TJAPlayer3.DTX_2P;
break; break;
case 2:
dTX = TJAPlayer3.DTX_3P;
break;
case 3:
dTX = TJAPlayer3.DTX_4P;
break;
case 4:
dTX = TJAPlayer3.DTX_5P;
break;
default: default:
break; break;
} }
@ -4310,6 +4361,15 @@ namespace TJAPlayer3
case 1: case 1:
dTX = TJAPlayer3.DTX_2P; dTX = TJAPlayer3.DTX_2P;
break; break;
case 2:
dTX = TJAPlayer3.DTX_3P;
break;
case 3:
dTX = TJAPlayer3.DTX_4P;
break;
case 4:
dTX = TJAPlayer3.DTX_5P;
break;
default: default:
break; break;
} }
@ -4450,7 +4510,7 @@ namespace TJAPlayer3
this.t数値の初期化( true, true ); this.t数値の初期化( true, true );
this.actAVI.tReset(); this.actAVI.tReset();
this.actPanel.t歌詞テクスチャを削除する(); this.actPanel.t歌詞テクスチャを削除する();
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
this.t演奏位置の変更(0, i); this.t演奏位置の変更(0, i);
this.actPlayInfo.NowMeasure[i] = 0; this.actPlayInfo.NowMeasure[i] = 0;
@ -4496,8 +4556,10 @@ namespace TJAPlayer3
this.actCombo.On活性化(); this.actCombo.On活性化();
this.actScore.On活性化(); this.actScore.On活性化();
this.actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 0 ); for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
if (bDoublePlay) this.actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 1 ); {
this.actGauge.Init(TJAPlayer3.ConfigIni.nRisky, i);
}
} }
if( b演奏状態 ) if( b演奏状態 )
{ {
@ -4515,7 +4577,7 @@ namespace TJAPlayer3
this.n合計連打数[ i ] = 0; this.n合計連打数[ i ] = 0;
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); this.actComboVoice.tReset(i);
NowProcessingChip[i] = 0; 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.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 ) public void t演奏位置の変更( int nStartBar, int nPlayer )
@ -4537,6 +4599,15 @@ namespace TJAPlayer3
case 1: case 1:
dTX = TJAPlayer3.DTX_2P; dTX = TJAPlayer3.DTX_2P;
break; break;
case 2:
dTX = TJAPlayer3.DTX_3P;
break;
case 3:
dTX = TJAPlayer3.DTX_4P;
break;
case 4:
dTX = TJAPlayer3.DTX_5P;
break;
default: default:
break; break;
} }
@ -4748,7 +4819,7 @@ namespace TJAPlayer3
protected abstract void t進行描画_チップ_小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer ); protected abstract void t進行描画_チップ_小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer );
protected void t進行描画_チップアニメ() protected void t進行描画_チップアニメ()
{ {
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
ctChipAnime[i].t進行LoopDb(); ctChipAnime[i].t進行LoopDb();
ctChipAnimeLag[i].t進行(); ctChipAnimeLag[i].t進行();

View File

@ -23,7 +23,7 @@ namespace TJAPlayer3
public override void On活性化() public override void On活性化()
{ {
for( int i = 0; i < 16; i++ ) for( int i = 0; i < 25; i++ )
{ {
STパッド状態 stパッド状態 = new STパッド状態(); STパッド状態 stパッド状態 = new STパッド状態();
stパッド状態.n明るさ = 0; stパッド状態.n明るさ = 0;
@ -39,10 +39,10 @@ namespace TJAPlayer3
public override void OnManagedリソースの作成() public override void OnManagedリソースの作成()
{ {
this.ctレベルアップダウン = new CCounter[ 4 ]; this.ctレベルアップダウン = new CCounter[ 5 ];
this.After = new CDTX.ECourse[ 4 ]; this.After = new CDTX.ECourse[ 5 ];
this.Before = new CDTX.ECourse[ 4 ]; this.Before = new CDTX.ECourse[ 5 ];
for ( int i = 0; i < 4; i++ ) for ( int i = 0; i < 5; i++ )
{ {
this.ctレベルアップダウン[ i ] = new CCounter(); this.ctレベルアップダウン[ i ] = new CCounter();
} }
@ -73,7 +73,7 @@ namespace TJAPlayer3
} }
while( ( num - this.nフラッシュ制御タイマ ) >= 20 ) 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 ) if( this.stパッド状態[ j ].n明るさ > 0 )
{ {
@ -81,15 +81,88 @@ namespace TJAPlayer3
} }
} }
this.nフラッシュ制御タイマ += 20; 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 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 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 else if (!TJAPlayer3.ConfigIni.bTokkunMode
|| TJAPlayer3.Tx.Taiko_Background[5] == null || TJAPlayer3.Tx.Taiko_Background[5] == null
|| TJAPlayer3.Tx.Taiko_Background[6] == null) || TJAPlayer3.Tx.Taiko_Background[6] == null)
@ -97,34 +170,67 @@ namespace TJAPlayer3
// Taiko Mode // Taiko Mode
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay) if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay)
{ {
// 2P if (TJAPlayer3.ConfigIni.nPlayerCount == 2)
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]); // 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 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()) 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 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 else
{ {
// Training Mode // Training Mode
if (TJAPlayer3.P1IsBlue()) 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 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++) 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); int _actual = TJAPlayer3.GetActualPlayer(i);
EGameType _gt = TJAPlayer3.ConfigIni.nGameType[_actual]; EGameType _gt = TJAPlayer3.ConfigIni.nGameType[_actual];
int playerShift = i * 5; int playerShift = i * 5;
// Drum base // 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 // Taiko hits
if (_gt == EGameType.TAIKO) 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_Left.Opacity = this.stパッド状態[2 + playerShift].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Don_Right.Opacity = this.stパッド状態[3 + 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_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, 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_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, 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_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, 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_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) 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_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.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_Ka.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y);
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_Don.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y);
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_Clap.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y);
} }
} }
@ -162,8 +268,10 @@ namespace TJAPlayer3
int[] nLVUPY = new int[] { 127, 127, 0, 0 }; int[] nLVUPY = new int[] { 127, 127, 0, 0 };
for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) 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進行(); this.ctレベルアップダウン[ i ].t進行();
if( this.ctレベルアップダウン[ i ].b終了値に達した ) { if( this.ctレベルアップダウン[ i ].b終了値に達した ) {
@ -212,24 +320,29 @@ namespace TJAPlayer3
{ {
nAlpha = 255; nAlpha = 255;
fScale = 1.0f; 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拡大縮小倍率.X = fScale;
TJAPlayer3.Tx.Taiko_LevelUp.vc拡大縮小倍率.Y = fScale; TJAPlayer3.Tx.Taiko_LevelUp.vc拡大縮小倍率.Y = fScale;
TJAPlayer3.Tx.Taiko_LevelUp.Opacity = nAlpha; TJAPlayer3.Tx.Taiko_LevelUp.Opacity = nAlpha;
TJAPlayer3.Tx.Taiko_LevelUp.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_LevelChange_X[i], TJAPlayer3.Tx.Taiko_LevelUp.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, levelChange_x,
TJAPlayer3.Skin.Game_Taiko_LevelChange_Y[i]); levelChange_y);
} }
else else
{ {
TJAPlayer3.Tx.Taiko_LevelDown.vc拡大縮小倍率.X = fScale; TJAPlayer3.Tx.Taiko_LevelDown.vc拡大縮小倍率.X = fScale;
TJAPlayer3.Tx.Taiko_LevelDown.vc拡大縮小倍率.Y = fScale; TJAPlayer3.Tx.Taiko_LevelDown.vc拡大縮小倍率.Y = fScale;
TJAPlayer3.Tx.Taiko_LevelDown.Opacity = nAlpha; TJAPlayer3.Tx.Taiko_LevelDown.Opacity = nAlpha;
TJAPlayer3.Tx.Taiko_LevelDown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_LevelChange_X[i], TJAPlayer3.Tx.Taiko_LevelDown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, levelChange_x,
TJAPlayer3.Skin.Game_Taiko_LevelChange_Y[i]); levelChange_y);
} }
} }
} }
@ -237,14 +350,44 @@ namespace TJAPlayer3
for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
{ {
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break; 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) if (TJAPlayer3.Tx.Couse_Symbol[TJAPlayer3.stage選曲.n確定された曲の難易度[i]] != null)
{ {
TJAPlayer3.Tx.Couse_Symbol[TJAPlayer3.stage選曲.n確定された曲の難易度[i]].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Tx.Couse_Symbol[TJAPlayer3.stage選曲.n確定された曲の難易度[i]].t2D描画(TJAPlayer3.app.Device,
TJAPlayer3.Skin.Game_CourseSymbol_X[i], couse_symbol_x,
TJAPlayer3.Skin.Game_CourseSymbol_Y[i] couse_symbol_y
); );
} }
@ -254,28 +397,51 @@ namespace TJAPlayer3
if (TJAPlayer3.Tx.Couse_Symbol[(int)Difficulty.Total] != null) if (TJAPlayer3.Tx.Couse_Symbol[(int)Difficulty.Total] != null)
{ {
TJAPlayer3.Tx.Couse_Symbol[(int)Difficulty.Total].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Tx.Couse_Symbol[(int)Difficulty.Total].t2D描画(TJAPlayer3.app.Device,
TJAPlayer3.Skin.Game_CourseSymbol_X[i], couse_symbol_x,
TJAPlayer3.Skin.Game_CourseSymbol_Y[i] couse_symbol_y
); );
} }
} }
} }
TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.Game_Taiko_NamePlate_X[0], TJAPlayer3.Skin.Game_Taiko_NamePlate_Y[0], 0); for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if(TJAPlayer3.stage演奏ドラム画面.bDoublePlay) int namePlate_x;
{ int namePlate_y;
TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.Game_Taiko_NamePlate_X[1], TJAPlayer3.Skin.Game_Taiko_NamePlate_Y[1], 1); int playerNumber_x;
} int playerNumber_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
if (TJAPlayer3.Tx.Taiko_PlayerNumber[0] != null) {
{ namePlate_x = TJAPlayer3.Skin.Game_Taiko_NamePlate_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
TJAPlayer3.Tx.Taiko_PlayerNumber[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_PlayerNumber_X[0], TJAPlayer3.Skin.Game_Taiko_PlayerNumber_Y[0]); namePlate_y = TJAPlayer3.Skin.Game_Taiko_NamePlate_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && TJAPlayer3.Tx.Taiko_PlayerNumber[1] != null) 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);
TJAPlayer3.Tx.Taiko_PlayerNumber[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_PlayerNumber_X[1], TJAPlayer3.Skin.Game_Taiko_PlayerNumber_Y[1]); }
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進行描画(); return base.On進行描画();
} }
@ -283,19 +449,14 @@ namespace TJAPlayer3
public void tMtaikoEvent( int nChannel, int nHand, int nPlayer ) public void tMtaikoEvent( int nChannel, int nHand, int nPlayer )
{ {
CConfigIni configIni = TJAPlayer3.ConfigIni; CConfigIni configIni = TJAPlayer3.ConfigIni;
bool bAutoPlay = false; bool bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer];
int playerShift = 5 * nPlayer; int playerShift = 5 * nPlayer;
var _gt = configIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)]; var _gt = configIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)];
switch (nPlayer) switch (nPlayer)
{ {
case 0:
bAutoPlay = configIni.b太鼓パートAutoPlay;
break;
case 1: case 1:
bAutoPlay = configIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode; bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode;
break;
default:
break; 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 long nフラッシュ制御タイマ;
//private CTexture[] txコースシンボル = new CTexture[ 6 ]; //private CTexture[] txコースシンボル = new CTexture[ 6 ];

View File

@ -27,7 +27,7 @@ namespace TJAPlayer3
public override void On活性化() public override void On活性化()
{ {
for(int i = 0; i < 2; i++) for(int i = 0; i < 5; i++)
{ {
ctChara_Normal[i] = new CCounter(); ctChara_Normal[i] = new CCounter();
ctChara_Miss[i] = new CCounter(); ctChara_Miss[i] = new CCounter();
@ -81,7 +81,7 @@ namespace TJAPlayer3
public override void On非活性化() public override void On非活性化()
{ {
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
ctChara_Normal[i] = null; ctChara_Normal[i] = null;
ctChara_Miss[i] = null; ctChara_Miss[i] = null;
@ -109,7 +109,7 @@ namespace TJAPlayer3
public override void OnManagedリソースの作成() 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.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]]); 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進行描画() public override int On進行描画()
{ {
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {
int Character = this.iCurrentCharacter[i]; int Character = this.iCurrentCharacter[i];
if (TJAPlayer3.Skin.Characters_Ptn == 0) if (TJAPlayer3.Skin.Characters_Ptn == 0)
@ -333,28 +333,7 @@ namespace TJAPlayer3
float chara_x; float chara_x;
float chara_y; float chara_y;
float charaScale = 1.0f; 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;
}
}
if (nowChara != null) if (nowChara != null)
{ {
@ -363,9 +342,50 @@ namespace TJAPlayer3
float resolutionScaleX = TJAPlayer3.Skin.Resolution[0] / (float)TJAPlayer3.Skin.Characters_Resolution[Character][0]; 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]; 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; charaScale *= resolutionScaleY;
chara_x *= resolutionScaleX; //chara_x *= resolutionScaleX;
chara_y *= resolutionScaleY; //chara_y *= resolutionScaleY;
if (TJAPlayer3.ConfigIni.bAIBattleMode) if (TJAPlayer3.ConfigIni.bAIBattleMode)
{ {
@ -389,9 +409,20 @@ namespace TJAPlayer3
nowChara.vc拡大縮小倍率.Y = 1.0f; nowChara.vc拡大縮小倍率.Y = 1.0f;
} }
if (this.b風船連打中[i] != true && CharaAction_Balloon_Delay[i].b終了値に達した) if ((this.b風船連打中[i] != true && CharaAction_Balloon_Delay[i].b終了値に達した) || 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); 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進行描画(); 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 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 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_x = 0;
float chara_y = TJAPlayer3.Skin.Characters_Balloon_Y[this.iCurrentCharacter[i]][i]; 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_x *= resolutionScaleX;
chara_y *= resolutionScaleY; chara_y *= resolutionScaleY;
@ -438,9 +489,10 @@ namespace TJAPlayer3
(TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) (TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0])
+ chara_x, + chara_x,
chara_y); 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終了値に達した) if (CharaAction_Balloon_Broke[i].b終了値に達した)
{ {
@ -465,9 +517,10 @@ namespace TJAPlayer3
(TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) (TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0])
+ chara_x, + chara_x,
chara_y); 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終了値に達した) if (CharaAction_Balloon_Miss[i].b終了値に達した)
{ {
@ -486,11 +539,11 @@ namespace TJAPlayer3
(TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + (TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) +
chara_x, chara_x,
chara_y); 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; //CharaAction_Balloon_Delay.n現在の値 = 0;
} }
public int[][] arモーション番号 = new int[2][]; public int[][] arモーション番号 = new int[5][];
public int[][] arMissモーション番号 = new int[2][]; public int[][] arMissモーション番号 = new int[5][];
public int[][] arMissDownモーション番号 = new int[2][]; public int[][] arMissDownモーション番号 = new int[5][];
public int[][] arゴーゴーモーション番号 = new int[2][]; public int[][] arゴーゴーモーション番号 = new int[5][];
public int[][] arクリアモーション番号 = new int[2][]; public int[][] arクリアモーション番号 = new int[5][];
public CCounter[] ctキャラクターアクション_10コンボ = new CCounter[2]; public CCounter[] ctキャラクターアクション_10コンボ = new CCounter[5];
public CCounter[] ctキャラクターアクション_10コンボMAX = new CCounter[2]; public CCounter[] ctキャラクターアクション_10コンボMAX = new CCounter[5];
public CCounter[] ctキャラクターアクション_ゴーゴースタート = new CCounter[2]; public CCounter[] ctキャラクターアクション_ゴーゴースタート = new CCounter[5];
public CCounter[] ctキャラクターアクション_ゴーゴースタートMAX = new CCounter[2]; public CCounter[] ctキャラクターアクション_ゴーゴースタートMAX = new CCounter[5];
public CCounter[] ctキャラクターアクション_ルマ = new CCounter[2]; public CCounter[] ctキャラクターアクション_ルマ = new CCounter[5];
public CCounter[] ctキャラクターアクション_魂MAX = new CCounter[2]; public CCounter[] ctキャラクターアクション_魂MAX = new CCounter[5];
public CCounter[] ctキャラクターアクション_Return = new CCounter[2]; public CCounter[] ctキャラクターアクション_Return = new CCounter[5];
public CCounter[] CharaAction_Balloon_Breaking = new CCounter[2]; public CCounter[] CharaAction_Balloon_Breaking = new CCounter[5];
public CCounter[] CharaAction_Balloon_Broke = new CCounter[2]; public CCounter[] CharaAction_Balloon_Broke = new CCounter[5];
public CCounter[] CharaAction_Balloon_Miss = new CCounter[2]; public CCounter[] CharaAction_Balloon_Miss = new CCounter[5];
public CCounter[] CharaAction_Balloon_Delay = new CCounter[2]; public CCounter[] CharaAction_Balloon_Delay = new CCounter[5];
public CCounter[] ctChara_Normal = new CCounter[2]; public CCounter[] ctChara_Normal = new CCounter[5];
public CCounter[] ctChara_Miss = new CCounter[2]; public CCounter[] ctChara_Miss = new CCounter[5];
public CCounter[] ctChara_MissDown = new CCounter[2]; public CCounter[] ctChara_MissDown = new CCounter[5];
public CCounter[] ctChara_GoGo = new CCounter[2]; public CCounter[] ctChara_GoGo = new CCounter[5];
public CCounter[] ctChara_Clear = new CCounter[2]; public CCounter[] ctChara_Clear = new CCounter[5];
public Animations.FadeOut[] CharaAction_Balloon_FadeOut = new Animations.FadeOut[2]; public Animations.FadeOut[] CharaAction_Balloon_FadeOut = new Animations.FadeOut[5];
//private readonly int[] CharaAction_Balloon_FadeOut_StartMs = new int[2]; //private readonly int[] CharaAction_Balloon_FadeOut_StartMs = new int[5];
private readonly int[][] CharaAction_Balloon_FadeOut_StartMs = new int[2][]; 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[5];
public bool[] b演奏中 = new bool[2]; 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 };
} }
} }

View File

@ -49,54 +49,28 @@ namespace TJAPlayer3
{ {
if( player == 0 ) 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花火状態[player][j].ct進行 = new CCounter(0, 10, 20, TJAPlayer3.Timer);
this.st花火状態[j].nPlayer = player; this.st花火状態[player][j].nPlayer = player;
switch (nLane) switch (nLane)
{ {
case 0x11: case 0x11:
case 0x12: case 0x12:
case 0x15: case 0x15:
this.st花火状態[j].isBig = false; this.st花火状態[player][j].isBig = false;
break; break;
case 0x13: case 0x13:
case 0x14: case 0x14:
case 0x16: case 0x16:
case 0x17: case 0x17:
this.st花火状態[j].isBig = true; this.st花火状態[player][j].isBig = true;
break; break;
} }
this.st花火状態[j].nLane = nLane; this.st花火状態[player][j].nLane = nLane;
this.st花火状態[j].b使用中 = true; this.st花火状態[player][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;
break; break;
} }
} }
@ -109,19 +83,23 @@ namespace TJAPlayer3
{ {
this.ct炎 = new CCounter( 0, 6, 50, TJAPlayer3.Timer ); 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(); for (int i = 0; i < 32; i++)
this.st花火状態2P[i].ct進行 = new CCounter(); {
this.st花火状態[player][i].ct進行 = new CCounter();
}
} }
base.On活性化(); base.On活性化();
} }
public override void On非活性化() public override void On非活性化()
{ {
for (int i = 0; i < 32; i++ ) for (int player = 0; player < 5; player++)
{ {
this.st花火状態[i].ct進行 = null; for (int i = 0; i < 32; i++)
this.st花火状態2P[i].ct進行 = null; {
this.st花火状態[player][i].ct進行 = null;
}
} }
this.ct炎 = null; this.ct炎 = null;
} }
@ -166,8 +144,13 @@ namespace TJAPlayer3
this.ctGaugeFlash.t進行Loop(); this.ctGaugeFlash.t進行Loop();
int nWidth = (TJAPlayer3.Skin.Game_Gauge_Rect[2] / 50); int nWidth = (TJAPlayer3.Skin.Game_Gauge_Rect[2] / 50);
int nRectX2P = (int)(this.db現在のゲージ値[1] / 2) * nWidth; int[] nRectX = new int[] {
int nRectX = (int)( this.db現在のゲージ値[ 0 ] / 2 ) * nWidth; (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; int = ct虹アニメ.n現在の値 + 1;
if ( == ct虹アニメ.n終了値+1) = 0; if ( == ct虹アニメ.n終了値+1) = 0;
/* /*
@ -193,18 +176,40 @@ namespace TJAPlayer3
scale = 0.8f; 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] #region [Gauge base]
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
{ {
if (TJAPlayer3.P1IsBlue()) 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])); 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 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])); 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) 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])); 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) 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])); 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()) 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])); 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 else
{ {
int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 0 : 3;
int x; int x;
int y; int y;
if (TJAPlayer3.ConfigIni.bAIBattleMode) if (TJAPlayer3.ConfigIni.bAIBattleMode)
@ -246,16 +257,16 @@ namespace TJAPlayer3
} }
else else
{ {
x = TJAPlayer3.Skin.Game_Gauge_X[0]; x = gauge_x[0];
y = TJAPlayer3.Skin.Game_Gauge_Y[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[index].vc拡大縮小倍率.X = scale;
TJAPlayer3.Tx.Gauge_Base[0].vc拡大縮小倍率.Y = 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])); 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 else
{ {
x = TJAPlayer3.Skin.Game_Gauge_X[0]; x = gauge_x[0];
y = TJAPlayer3.Skin.Game_Gauge_Y[0]; y = gauge_y[0];
} }
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
{ {
if (TJAPlayer3.P1IsBlue()) 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 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++) 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)) 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].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; int Opacity = 0;
if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0; if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0;
@ -309,15 +320,17 @@ namespace TJAPlayer3
else else
{ {
if (TJAPlayer3.P1IsBlue()) 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 else
{ {
if (TJAPlayer3.Tx.Gauge[0] != null) int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 0 : 3;
{
TJAPlayer3.Tx.Gauge[0].vc拡大縮小倍率.X = scale;
TJAPlayer3.Tx.Gauge[0].vc拡大縮小倍率.Y = scale;
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拡大縮小倍率.X = scale;
TJAPlayer3.Tx.Gauge_Rainbow[].vc拡大縮小倍率.Y = 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現在の値].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, 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.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[].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), TJAPlayer3.Tx.Gauge_Rainbow[].t2D描画(TJAPlayer3.app.Device, x, y + (smart ? 22 : 0),
new RectangleF(0, new RectangleF(0,
TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0, smart ? 22 : 0,
TJAPlayer3.Tx.Gauge_Rainbow[].szテクスチャサイズ.Width, 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[ Clearicon ] #region[ Clearicon ]
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_x;
int text_y; int text_y;
@ -417,47 +432,83 @@ namespace TJAPlayer3
#region [ Gauge 2P ] #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]) ); int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 1 : i + 3;
if (db現在のゲージ値[1] >= 80.0 && db現在のゲージ値[1] < 100.0) if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode && TJAPlayer3.Tx.Gauge[index] != null)
{ {
int Opacity = 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 (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0; if (db現在のゲージ値[i] >= 80.0 && db現在のゲージ値[i] < 100.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)
{ {
this.ct虹アニメ.t進行Loop(); int Opacity = 0;
this.ct虹透明度.t進行Loop(); if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0;
if (TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値] != null) 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_Flash.t2D上下反転描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i],
TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].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]));
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]); 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 #endregion
@ -480,8 +531,21 @@ namespace TJAPlayer3
} }
else else
{ {
x = TJAPlayer3.Skin.Gauge_Soul_Fire_X[i]; if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
y = TJAPlayer3.Skin.Gauge_Soul_Fire_Y[i]; {
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) if ( this.db現在のゲージ値[ i ] >= 100.0)
@ -512,8 +576,21 @@ namespace TJAPlayer3
} }
else else
{ {
x = TJAPlayer3.Skin.Gauge_Soul_X[i]; if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
y = TJAPlayer3.Skin.Gauge_Soul_Y[i]; {
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; TJAPlayer3.Tx.Gauge_Soul.vc拡大縮小倍率.X = scale;
@ -532,34 +609,22 @@ namespace TJAPlayer3
//仮置き //仮置き
int[] nSoulExplosion = new int[] { 73, 468, 0, 0 }; 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花火状態[i][d].b使用中)
if (this.st花火状態[d].ct進行.b終了値に達した)
{ {
this.st花火状態[d].ct進行.t停止(); this.st花火状態[i][d].ct進行.t進行();
this.st花火状態[d].b使用中 = false; 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; private CCounter ctGaugeFlash;
protected STSTATUS[] st花火状態 = new STSTATUS[ 32 ]; protected STSTATUS[][] st花火状態 = new STSTATUS[5][] {
protected STSTATUS[] st花火状態2P = new STSTATUS[ 32 ]; new STSTATUS[ 32 ],
new STSTATUS[ 32 ],
new STSTATUS[ 32 ],
new STSTATUS[ 32 ],
new STSTATUS[ 32 ]
};
[StructLayout(LayoutKind.Sequential)] [StructLayout(LayoutKind.Sequential)]
protected struct STSTATUS protected struct STSTATUS
{ {

View File

@ -72,8 +72,9 @@ namespace TJAPlayer3
{ {
if( !base.b活性化してない ) if( !base.b活性化してない )
{ {
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return 0;
for( int i = 0; i < 2; i++ ) for( int i = 0; i < 2; i++ )
{ {
if (TJAPlayer3.ConfigIni.bAIBattleMode) break; if (TJAPlayer3.ConfigIni.bAIBattleMode) break;
int j = i; int j = i;
@ -159,10 +160,10 @@ namespace TJAPlayer3
#region [ private ] #region [ private ]
//----------------- //-----------------
private CCounter[] ct進行 = new CCounter[ 2 ]; private CCounter[] ct進行 = new CCounter[ 5 ];
//private CTexture[] tx吹き出し本体 = new CTexture[ 2 ]; //private CTexture[] tx吹き出し本体 = new CTexture[ 2 ];
//private CTexture tx数字; //private CTexture tx数字;
private int[] nCombo_渡 = new int[ 2 ]; private int[] nCombo_渡 = new int[ 5 ];
private int NowDrawBalloon; private int NowDrawBalloon;

View File

@ -33,7 +33,7 @@ namespace TJAPlayer3
//base.t小文字表示( 20, 150, string.Format( "{0,7:######0}", this.nスコアの増分.Guitar ) ); //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停止中) 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停止中) 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()); //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); for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
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); {
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++ ) for( int i = 0; i < 256; i++ )
{ {
@ -190,9 +230,9 @@ namespace TJAPlayer3
pl = 1; pl = 1;
if ( this.n現在表示中のAddScore < 10 && this.stScore[ i ].bBonusScore == false ) 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 ) 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 else
{ {
this.n現在表示中のAddScore--; this.n現在表示中のAddScore--;

View File

@ -23,16 +23,15 @@ namespace TJAPlayer3
} }
*/ */
this.ScoreRank = new int[] { 500000, 600000, 700000, 800000, 900000, 950000, for (int player = 0; player < 5; player++)
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.ScoreRank[player] = new int[] { 500000, 600000, 700000, 800000, 900000, 950000,
this.ScoreRank2P = 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)) };
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++)
for (int i = 0; i < 7; i++) {
{ this.counter[player][i] = new CCounter();
this.counter[i] = new CCounter(); }
this.counterJ2[i] = new CCounter();
} }
base.On活性化(); base.On活性化();
} }
@ -44,9 +43,7 @@ namespace TJAPlayer3
private void displayScoreRank(int i, int player, float x, float y, int mode = 0) private void displayScoreRank(int i, int player, float x, float y, int mode = 0)
{ {
CCounter cct = this.counter[i]; CCounter cct = this.counter[player][i];
if (player == 1)
cct = this.counterJ2[i];
CTexture tex = TJAPlayer3.Tx.ScoreRank; CTexture tex = TJAPlayer3.Tx.ScoreRank;
if (mode == 1) // tower if (mode == 1) // tower
@ -86,12 +83,29 @@ namespace TJAPlayer3
if (cct.n現在の値 >= 2745 && cct.n現在の値 <= 3000) if (cct.n現在の値 >= 2745 && cct.n現在の値 <= 3000)
{ {
tex.Opacity = 255 - ((cct.n現在の値 - 2745)); 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]); 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.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]); 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 xpos = 0;
var ypos = TJAPlayer3.Skin.Game_ScoreRank_Y[player] + (int)y; 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 width;
int height; int height;
@ -125,14 +139,17 @@ namespace TJAPlayer3
{ {
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower)
{ {
#region [Ensou score ranks]
counter[i].t進行(); for (int player = 0; player < 5; player++)
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(0) >= ScoreRank[i])
{ {
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進行中) if (!this.counter[i].b進行中)
@ -168,50 +185,9 @@ namespace TJAPlayer3
*/ */
#endregion #endregion
} }
x = 0; 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
} }
#endregion #endregion
} }
@ -232,7 +208,7 @@ namespace TJAPlayer3
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0 TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0
}; };
counter[i].t進行(); counter[0][i].t進行();
bool satisfied = true; bool satisfied = true;
for (int j = 0; j <= i; j++) for (int j = 0; j <= i; j++)
@ -261,9 +237,13 @@ namespace TJAPlayer3
return base.On進行描画(); return base.On進行描画();
} }
public int[] ScoreRank; public int[][] ScoreRank = new int[5][];
public int[] ScoreRank2P; private CCounter[][] counter = new CCounter[5][] {
private CCounter[] counter = new CCounter[7]; new CCounter[7],
private CCounter[] counterJ2 = new CCounter[7]; new CCounter[7],
new CCounter[7],
new CCounter[7],
new CCounter[7]
};
} }
} }

View File

@ -267,8 +267,25 @@ namespace TJAPlayer3
if( TJAPlayer3.Tx.Effects_Hit_Explosion != null && !TJAPlayer3.IsPerformingCalibration ) if( TJAPlayer3.Tx.Effects_Hit_Explosion != null && !TJAPlayer3.IsPerformingCalibration )
{ {
int n = this.st状態[ i ].nIsBig == 1 ? (nHeight * 2) : 0; 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 ) switch( st状態[ i ].judge )
{ {
@ -340,8 +357,27 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Effects_Hit_Explosion_Big.t3D描画( TJAPlayer3.app.Device, mat ); 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 x = 0;
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 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拡大縮小倍率.X = f倍率;
TJAPlayer3.Tx.Effects_Hit_Explosion_Big.vc拡大縮小倍率.Y = f倍率; TJAPlayer3.Tx.Effects_Hit_Explosion_Big.vc拡大縮小倍率.Y = f倍率;

View File

@ -27,14 +27,14 @@ namespace TJAPlayer3
public override void OnManagedリソースの作成() public override void OnManagedリソースの作成()
{ {
this.ct分岐アニメ進行 = new CCounter[ 4 ]; this.ct分岐アニメ進行 = new CCounter[ 5 ];
this.nBefore = new CDTX.ECourse[ 4 ]; this.nBefore = new CDTX.ECourse[ 5 ];
this.nAfter = new CDTX.ECourse[ 4 ]; this.nAfter = new CDTX.ECourse[ 5 ];
for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
{ {
this.ct分岐アニメ進行[ i ] = new CCounter(); this.ct分岐アニメ進行[ i ] = new CCounter();
this.nBefore = new CDTX.ECourse[ 4 ]; this.nBefore = new CDTX.ECourse[ 5 ];
this.nAfter = new CDTX.ECourse[ 4 ]; this.nAfter = new CDTX.ECourse[ 5 ];
this.bState[ i ] = false; this.bState[ i ] = false;
} }
if (TJAPlayer3.Tx.Lane_Base[0] != null) if (TJAPlayer3.Tx.Lane_Base[0] != null)
@ -63,11 +63,32 @@ namespace TJAPlayer3
this.ct分岐アニメ進行[ i ].t停止(); 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 ) if( TJAPlayer3.stage演奏ドラム画面.bUseBranch[ i ] == true )
{ {
@ -94,28 +115,28 @@ namespace TJAPlayer3
if (nBefore[i] == 0 && nAfter[i] == CDTX.ECourse.eNormal) 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[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[0].t2D描画( TJAPlayer3.app.Device, x[ i ], 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[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
} }
//普通→達人 //普通→達人
if (nBefore[i] == 0 && nAfter[i] == CDTX.ECourse.eMaster) 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 ) 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].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 ) else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 100 && this.ct分岐アニメ進行[ i ].n現在の値 < 150 )
{ {
TJAPlayer3.Tx.Lane_Base[1].Opacity = 255; 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 ) 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].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 #endregion
@ -123,47 +144,47 @@ namespace TJAPlayer3
#region[ _レベルアップ ] #region[ _レベルアップ ]
if (nBefore[i] == CDTX.ECourse.eExpert && nAfter[i] == CDTX.ECourse.eMaster) 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].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 #endregion
#region[ _レベルダウン ] #region[ _レベルダウン ]
if (nBefore[i] == CDTX.ECourse.eExpert && nAfter[i] == CDTX.ECourse.eNormal) 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].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 #endregion
#region[ _レベルダウン ] #region[ _レベルダウン ]
if (nBefore[i] == CDTX.ECourse.eMaster && nAfter[i] == CDTX.ECourse.eNormal) 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 ) 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].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 ) else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 100 && this.ct分岐アニメ進行[ i ].n現在の値 < 150 )
{ {
TJAPlayer3.Tx.Lane_Base[1].Opacity = 255; 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 ) 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].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) 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].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 #endregion
} }
@ -187,11 +208,11 @@ namespace TJAPlayer3
#region[ private ] #region[ private ]
//----------------- //-----------------
public bool[] bState = new bool[4]; public bool[] bState = new bool[5];
public CCounter[] ct分岐アニメ進行 = new CCounter[4]; public CCounter[] ct分岐アニメ進行 = new CCounter[5];
private CDTX.ECourse[] nBefore; private CDTX.ECourse[] nBefore;
private CDTX.ECourse[] nAfter; 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]; //private CTexture[] tx玄人譜面 = new CTexture[2];
//private CTexture[] tx達人譜面 = new CTexture[2]; //private CTexture[] tx達人譜面 = new CTexture[2];

View File

@ -27,7 +27,7 @@ namespace TJAPlayer3
public override void On活性化() 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.st状態[i].ct進行 = new CCounter();
this.stBranch[i].ct分岐アニメ進行 = new CCounter(); this.stBranch[i].ct分岐アニメ進行 = new CCounter();
@ -51,7 +51,7 @@ namespace TJAPlayer3
public override void On非活性化() public override void On非活性化()
{ {
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
{ {
this.st状態[i].ct進行 = null; this.st状態[i].ct進行 = null;
this.stBranch[i].ct分岐アニメ進行 = null; this.stBranch[i].ct分岐アニメ進行 = null;
@ -79,22 +79,45 @@ namespace TJAPlayer3
{ {
if (base.b初めての進行描画) 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)); this.stBranch[i].nフラッシュ制御タイマ = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
base.b初めての進行描画 = false; base.b初めての進行描画 = false;
} }
//それぞれが独立したレイヤーでないといけないのでforループはパーツごとに分離すること。 //それぞれが独立したレイヤーでないといけないのでforループはパーツごとに分離すること。
#region[ ] #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++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {
if (i == 1 && TJAPlayer3.ConfigIni.bAIBattleMode && TJAPlayer3.Tx.Lane_Background_AI != null) 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 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 #endregion
@ -149,21 +172,21 @@ namespace TJAPlayer3
if (TJAPlayer3.Tx.Lane_Base[0] != null) if (TJAPlayer3.Tx.Lane_Base[0] != null)
{ {
TJAPlayer3.Tx.Lane_Base[0].Opacity = 255; 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; break;
case CDTX.ECourse.eExpert: case CDTX.ECourse.eExpert:
if (TJAPlayer3.Tx.Lane_Base[1] != null) if (TJAPlayer3.Tx.Lane_Base[1] != null)
{ {
TJAPlayer3.Tx.Lane_Base[1].Opacity = 255; 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; break;
case CDTX.ECourse.eMaster: case CDTX.ECourse.eMaster:
if (TJAPlayer3.Tx.Lane_Base[2] != null) if (TJAPlayer3.Tx.Lane_Base[2] != null)
{ {
TJAPlayer3.Tx.Lane_Base[2].Opacity = 255; 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; break;
} }
@ -188,9 +211,9 @@ namespace TJAPlayer3
{ {
if (TJAPlayer3.Tx.Lane_Base[0] != null && TJAPlayer3.Tx.Lane_Base[1] != null) 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].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) 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[0].t2D描画(TJAPlayer3.app.Device, x[i], 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[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[2].Opacity = this.stBranch[i].nBranchレイヤー透明度; 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) 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[1].t2D描画(TJAPlayer3.app.Device, x[i], 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[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[2].Opacity = this.stBranch[i].nBranchレイヤー透明度; 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) 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[1].t2D描画(TJAPlayer3.app.Device, x[i], 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[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[0].Opacity = this.stBranch[i].nBranchレイヤー透明度; 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) 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[2].t2D描画(TJAPlayer3.app.Device, x[i], 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[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[0].Opacity = this.stBranch[i].nBranchレイヤー透明度; TJAPlayer3.Tx.Lane_Base[0].Opacity = this.stBranch[i].nBranchレイヤー透明度;
} }
} }
@ -265,27 +288,27 @@ namespace TJAPlayer3
if (this.ctゴーゴー.n現在の値 <= 4) if (this.ctゴーゴー.n現在の値 <= 4)
{ {
TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.2f; 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) else if (this.ctゴーゴー.n現在の値 <= 5)
{ {
TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.4f; 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) else if (this.ctゴーゴー.n現在の値 <= 6)
{ {
TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.6f; 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) else if (this.ctゴーゴー.n現在の値 <= 8)
{ {
TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.8f; 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) else if (this.ctゴーゴー.n現在の値 >= 9)
{ {
TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 1.0f; 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 #endregion
@ -319,15 +342,15 @@ namespace TJAPlayer3
{ {
case CDTX.ECourse.eNormal: case CDTX.ECourse.eNormal:
TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; 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; break;
case CDTX.ECourse.eExpert: case CDTX.ECourse.eExpert:
TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; 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; break;
case CDTX.ECourse.eMaster: case CDTX.ECourse.eMaster:
TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; 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; break;
} }
} }
@ -346,14 +369,14 @@ namespace TJAPlayer3
if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60)
{ {
this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; 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].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 else
{ {
TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; 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) if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60)
{ {
this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; 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[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 ) //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) else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 60 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 150)
{ {
this.stBranch[i].nY = 21; 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[1].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; TJAPlayer3.Tx.Lane_Text[2].Opacity = 255;
} }
else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 150 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 210) 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); 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[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 else
{ {
TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; 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 #endregion
@ -411,12 +434,12 @@ namespace TJAPlayer3
if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60)
{ {
this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; 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[1].t2D描画(TJAPlayer3.app.Device, x[i], 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[2].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 20) + this.stBranch[i].nY);
} }
else 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 #endregion
@ -431,12 +454,12 @@ namespace TJAPlayer3
if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60)
{ {
this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; 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[1].t2D描画(TJAPlayer3.app.Device, x[i], 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[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 30) - this.stBranch[i].nY);
} }
else 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 #endregion
@ -451,27 +474,27 @@ namespace TJAPlayer3
{ {
this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; 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].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[2].t2D描画(TJAPlayer3.app.Device, x[i], 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[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) else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 60 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 150)
{ {
this.stBranch[i].nY = 21; 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[1].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; TJAPlayer3.Tx.Lane_Text[2].Opacity = 255;
} }
else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 150 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 210) 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); 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[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) else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 210)
{ {
TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; 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) 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) if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60)
{ {
this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; 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[2].t2D描画(TJAPlayer3.app.Device, x[i], 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[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 30) - this.stBranch[i].nY);
} }
else 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: case CDTX.ECourse.eNormal:
TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; 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; break;
case CDTX.ECourse.eExpert: case CDTX.ECourse.eExpert:
TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; 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; break;
case CDTX.ECourse.eMaster: case CDTX.ECourse.eMaster:
TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; 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; break;
} }
} }
@ -528,15 +551,15 @@ namespace TJAPlayer3
//普通→玄人 //普通→玄人
if (this.stBranch[i].nBefore == CDTX.ECourse.eNormal && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) 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[0].t2D描画(TJAPlayer3.app.Device, x[i], 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[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 20) - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].nBranchレイヤー透明度; 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) 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[0].t2D描画(TJAPlayer3.app.Device, x[i], 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[2].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 20) - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].nBranchレイヤー透明度; TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].nBranchレイヤー透明度;
} }
#endregion #endregion
@ -544,30 +567,30 @@ namespace TJAPlayer3
//玄人→達人 //玄人→達人
if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) 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[1].t2D描画(TJAPlayer3.app.Device, x[i], 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[2].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 20) - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].nBranchレイヤー透明度; TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].nBranchレイヤー透明度;
} }
#endregion #endregion
#region[ _レベルダウン ] #region[ _レベルダウン ]
if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) 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[1].t2D描画(TJAPlayer3.app.Device, x[i], 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[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 24) + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].nBranchレイヤー透明度; TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].nBranchレイヤー透明度;
} }
#endregion #endregion
#region[ _レベルダウン ] #region[ _レベルダウン ]
if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) 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[2].t2D描画(TJAPlayer3.app.Device, x[i], 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[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 24) + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].nBranchレイヤー透明度; 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) 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[2].t2D描画(TJAPlayer3.app.Device, x[i], 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[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 24) + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].nBranchレイヤー透明度; TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].nBranchレイヤー透明度;
} }
#endregion #endregion
@ -578,13 +601,15 @@ namespace TJAPlayer3
} }
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
if (TJAPlayer3.Tx.Lane_Background_Sub != null)
{ {
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.Tx.Lane_Background_Sub != null)
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]); 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) if (TJAPlayer3.Tx.Taiko_Frame[0] != null)
{ {
// Tower frame (without tamashii jauge) if playing a tower chart // 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) 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]); 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) else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower && TJAPlayer3.Tx.Taiko_Frame[2] != null)
@ -612,6 +716,7 @@ namespace TJAPlayer3
else else
TJAPlayer3.Tx.Taiko_Frame[1]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Frame_X[1], TJAPlayer3.Skin.Game_Taiko_Frame_Y[1]); 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)); var nTime = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
@ -684,10 +789,10 @@ namespace TJAPlayer3
if (TJAPlayer3.Tx.Judge_Frame != null) if (TJAPlayer3.Tx.Judge_Frame != null)
{ {
TJAPlayer3.Tx.Judge_Frame.b加算合成 = TJAPlayer3.Skin.Game_JudgeFrame_AddBlend; 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])); for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay) 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]));
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])); }
} }
@ -718,8 +823,24 @@ namespace TJAPlayer3
int width = TJAPlayer3.Tx.Effects_Fire.szテクスチャサイズ.Width / 7; int width = TJAPlayer3.Tx.Effects_Fire.szテクスチャサイズ.Width / 7;
int height = TJAPlayer3.Tx.Effects_Fire.szテクスチャサイズ.Height; int height = TJAPlayer3.Tx.Effects_Fire.szテクスチャサイズ.Height;
float x = TJAPlayer3.Skin.Game_Effect_Fire_X[i] - (width * (f倍率 - 1.0f) / 2.0f); float x = -(width * (f倍率 - 1.0f) / 2.0f);
float y = TJAPlayer3.Skin.Game_Effect_Fire_Y[i] - (height * (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拡大縮小倍率.X = f倍率;
TJAPlayer3.Tx.Effects_Fire.vc拡大縮小倍率.Y = f倍率; TJAPlayer3.Tx.Effects_Fire.vc拡大縮小倍率.Y = f倍率;
@ -744,8 +865,24 @@ namespace TJAPlayer3
//this.txアタックエフェクトLower.b加算合成 = true; //this.txアタックエフェクトLower.b加算合成 = true;
int n = this.st状態[i].nIsBig == 1 ? 520 : 0; int n = this.st状態[i].nIsBig == 1 ? 520 : 0;
float x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[i]; float x = 0;
float y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[i]; 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) switch (st状態[i].judge)
{ {
@ -881,7 +1018,7 @@ namespace TJAPlayer3
//private CTextureAf txアタックエフェクトLower; //private CTextureAf txアタックエフェクトLower;
protected STSTATUS[] st状態 = new STSTATUS[4]; protected STSTATUS[] st状態 = new STSTATUS[5];
//private CTexture[] txゴーゴースプラッシュ; //private CTexture[] txゴーゴースプラッシュ;
@ -900,7 +1037,7 @@ namespace TJAPlayer3
public STBRANCH[] stBranch = new STBRANCH[4]; public STBRANCH[] stBranch = new STBRANCH[5];
[StructLayout(LayoutKind.Sequential)] [StructLayout(LayoutKind.Sequential)]
public struct STBRANCH public struct STBRANCH
{ {
@ -929,7 +1066,7 @@ namespace TJAPlayer3
private int n移動目的場所X2; private int n移動目的場所X2;
private int n移動方向2; private int n移動方向2;
internal int[,] nDefaultJudgePos = new int[2, 2]; internal int[,] nDefaultJudgePos = new int[5, 2];
//----------------- //-----------------

View File

@ -19,11 +19,14 @@ namespace TJAPlayer3
public override void On活性化() public override void On活性化()
{ {
JudgeAnimes = new JudgeAnime[2, 512]; JudgeAnimes = new JudgeAnime[5, 512];
for (int i = 0; i < 512; i++) for (int i = 0; i < 512; i++)
{ {
JudgeAnimes[0, i] = new JudgeAnime(); JudgeAnimes[0, i] = new JudgeAnime();
JudgeAnimes[1, 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活性化(); base.On活性化();
} }
@ -34,7 +37,10 @@ namespace TJAPlayer3
{ {
JudgeAnimes[0, i] = null; JudgeAnimes[0, i] = null;
JudgeAnimes[1, i] = null; JudgeAnimes[1, i] = null;
} JudgeAnimes[2, i] = null;
JudgeAnimes[3, i] = null;
JudgeAnimes[4, i] = null;
}
base.On非活性化(); base.On非活性化();
} }
@ -45,7 +51,7 @@ namespace TJAPlayer3
{ {
for (int i = 0; i < 512; i++) 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; if (JudgeAnimes[j, i].counter.b停止中) continue;
JudgeAnimes[j, i].counter.t進行(); JudgeAnimes[j, i].counter.t進行();
@ -54,8 +60,27 @@ namespace TJAPlayer3
{ {
float moveValue = CubicEaseOut(JudgeAnimes[j, i].counter.n現在の値 / 410.0f) - 1.0f; 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 x = 0;
float y = TJAPlayer3.Skin.Game_Judge_Y[j] + (moveValue * TJAPlayer3.Skin.Game_Judge_Move[1]); 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.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); TJAPlayer3.Tx.Judge.t2D描画(TJAPlayer3.app.Device, x, y, JudgeAnimes[j, i].rc);
} }

View File

@ -122,7 +122,7 @@ namespace TJAPlayer3
public override void On活性化() public override void On活性化()
{ {
this.bリザルトボイス再生済み = false; this.bリザルトボイス再生済み = false;
this.Mode = new EndMode[2]; this.Mode = new EndMode[5];
base.On活性化(); base.On活性化();
} }
@ -139,7 +139,7 @@ namespace TJAPlayer3
{ {
var origindir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.END}"); 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(); FailedScript.Init();
ClearScript = new EndAnimeScript($@"{origindir}Clear\Script.lua"); ClearScript = new EndAnimeScript($@"{origindir}Clear\Script.lua");
@ -535,10 +535,10 @@ namespace TJAPlayer3
*/ */
CCounter ct進行Loop; CCounter ct進行Loop;
CSound[] soundClear = new CSound[4]; CSound[] soundClear = new CSound[5];
CSound[] soundFailed = new CSound[4]; CSound[] soundFailed = new CSound[5];
CSound[] soundFullCombo = new CSound[4]; CSound[] soundFullCombo = new CSound[5];
CSound[] soundDondaFullCombo = new CSound[4]; CSound[] soundDondaFullCombo = new CSound[5];
EndMode[] Mode; EndMode[] Mode;
enum EndMode enum EndMode
{ {

View File

@ -65,25 +65,25 @@ namespace TJAPlayer3
public override void On活性化() public override void On活性化()
{ {
this.ct連打枠カウンター = new CCounter[ 4 ]; this.ct連打枠カウンター = new CCounter[ 5 ];
this.ct連打アニメ = new CCounter[4]; this.ct連打アニメ = new CCounter[5];
FadeOut = new Animations.FadeOut[4]; FadeOut = new Animations.FadeOut[5];
for ( int i = 0; i < 4; i++ ) for ( int i = 0; i < 5; i++ )
{ {
this.ct連打枠カウンター[ i ] = new CCounter(); this.ct連打枠カウンター[ i ] = new CCounter();
this.ct連打アニメ[i] = new CCounter(); this.ct連打アニメ[i] = new CCounter();
// 後から変えれるようにする。大体10フレーム分。 // 後から変えれるようにする。大体10フレーム分。
FadeOut[i] = new Animations.FadeOut(167); FadeOut[i] = new Animations.FadeOut(167);
} }
this.b表示 = new bool[]{ false, false, false, false }; this.b表示 = new bool[]{ false, false, false, false, false };
this.n連打数 = new int[ 4 ]; this.n連打数 = new int[ 5 ];
base.On活性化(); base.On活性化();
} }
public override void 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;
ct連打アニメ[i] = null; ct連打アニメ[i] = null;
@ -109,6 +109,8 @@ namespace TJAPlayer3
public int On進行描画( int n連打数, int player ) public int On進行描画( int n連打数, int player )
{ {
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return base.On進行描画();
this.ct連打枠カウンター[ player ].t進行(); this.ct連打枠カウンター[ player ].t進行();
this.ct連打アニメ[player].t進行(); this.ct連打アニメ[player].t進行();
FadeOut[player].Tick(); FadeOut[player].Tick();

View File

@ -172,6 +172,9 @@ namespace TJAPlayer3
// } // }
//} //}
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return 0;
for (int i = 0; i < 128; i++) for (int i = 0; i < 128; i++)
{ {
if(RollCharas[i].IsUsing) if(RollCharas[i].IsUsing)

View File

@ -67,8 +67,8 @@ namespace TJAPlayer3
{ {
this.ct風船終了 = new CCounter(); this.ct風船終了 = new CCounter();
this.ct風船ふきだしアニメ = new CCounter(); this.ct風船ふきだしアニメ = new CCounter();
this.ct風船アニメ = new CCounter[4]; this.ct風船アニメ = new CCounter[5];
for (int i = 0; i < 4; i++) for (int i = 0; i < 5; i++)
{ {
this.ct風船アニメ[i] = new CCounter(); this.ct風船アニメ[i] = new CCounter();
} }
@ -146,22 +146,56 @@ namespace TJAPlayer3
if (n連打数 != 0) 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 //1P:0 2P:245
//if (CDTXMania.Tx.Chara_Balloon_Breaking != null && CDTXMania.ConfigIni.ShowChara) //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]); // 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++) for (int j = 0; j < 5; j++)
{ {
if (n残り打数[j] < n連打数) if (n残り打数[j] < n連打数)
{ {
if (TJAPlayer3.Tx.Balloon_Breaking[j] != null) 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; break;
} }
} }
//1P:31 2P:329 //1P:31 2P:329
if (TJAPlayer3.Tx.Balloon_Balloon != null) 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]); TJAPlayer3.Tx.Balloon_Balloon.t2D描画(TJAPlayer3.app.Device, frame_x, frame_y);
this.t文字表示(TJAPlayer3.Skin.Game_Balloon_Balloon_Number_X[player], TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Y[player], n連打数, player); this.t文字表示(num_x, num_y, n連打数, player);
//CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, n連打数.ToString() ); //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, n連打数.ToString() );
} }
if (n連打数 == 0 && TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player]) if (n連打数 == 0 && TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player])

View File

@ -197,9 +197,9 @@ namespace TJAPlayer3
base.ReSetScore(TJAPlayer3.DTX.nScoreInit[0, TJAPlayer3.stage選曲.n確定された曲の難易度[0]], TJAPlayer3.DTX.nScoreDiff[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]); base.ReSetScore(TJAPlayer3.DTX.nScoreInit[0, TJAPlayer3.stage選曲.n確定された曲の難易度[0]], TJAPlayer3.DTX.nScoreDiff[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]);
#region [ branch ] #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.bLEVELHOLD[i] = false;
} }
this.nBranch条件数値A = 0; this.nBranch条件数値A = 0;
@ -211,6 +211,9 @@ namespace TJAPlayer3
ifp[0] = false; ifp[0] = false;
ifp[1] = false; ifp[1] = false;
ifp[2] = false;
ifp[3] = false;
ifp[4] = false;
this.nStoredHit = new int[TJAPlayer3.ConfigIni.nPlayerCount]; this.nStoredHit = new int[TJAPlayer3.ConfigIni.nPlayerCount];
@ -231,7 +234,7 @@ namespace TJAPlayer3
//dbUnit = Math.Ceiling( dbUnit * 1000.0 ); //dbUnit = Math.Ceiling( dbUnit * 1000.0 );
//dbUnit = 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); int p = TJAPlayer3.GetActualPlayer(nPlayer);
@ -312,7 +315,7 @@ namespace TJAPlayer3
Discord.UpdatePresence(TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? TJAPlayer3.stage選曲.r確定された曲.strタイトル Discord.UpdatePresence(TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? TJAPlayer3.stage選曲.r確定された曲.strタイトル
+ Discord.DiffToString(TJAPlayer3.stage選曲.n確定された曲の難易度[0]) + 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, 0,
endTimeStamp, endTimeStamp,
TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? difficultyName.ToLower() : "", TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? difficultyName.ToLower() : "",
@ -353,23 +356,19 @@ namespace TJAPlayer3
// their drum sound effects with the sounds of the input calibration file. // their drum sound effects with the sounds of the input calibration file.
// Instead, we want them focused on the sounds of their keyboard, tatacon, // Instead, we want them focused on the sounds of their keyboard, tatacon,
// other controller, etc. and the sounds of the input calibration audio file. // other controller, etc. and the sounds of the input calibration audio file.
if (!TJAPlayer3.IsPerformingCalibration) if (!TJAPlayer3.IsPerformingCalibration)
{ {
int actual1 = TJAPlayer3.GetActualPlayer(0); for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
int actual2 = TJAPlayer3.GetActualPlayer(1); {
int actual = TJAPlayer3.GetActualPlayer(i);
var hs = TJAPlayer3.Skin.hsHitSoundsInformations; 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);
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.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 ); 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.soundRed[0].n位置 = -100;
this.soundBlue.n位置 = -100; this.soundBlue[0].n位置 = -100;
this.soundAdlib.n位置 = -100; this.soundAdlib[0].n位置 = -100;
this.soundRed2.n位置 = 100; this.soundRed[1].n位置 = 100;
this.soundBlue2.n位置 = 100; this.soundBlue[1].n位置 = 100;
this.soundAdlib2.n位置 = 100; this.soundAdlib[1].n位置 = 100;
} }
} }
@ -397,24 +396,19 @@ namespace TJAPlayer3
} }
public override void OnManagedリソースの解放() public override void OnManagedリソースの解放()
{ {
if( !base.b活性化してない ) if( !base.b活性化してない )
{ {
if( this.soundRed != null ) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
this.soundRed.t解放する(); {
if( this.soundBlue != null ) if (this.soundRed[i] != null)
this.soundBlue.t解放する(); this.soundRed[i].t解放する();
if( this.soundAdlib != null ) if (this.soundBlue[i] != null)
this.soundAdlib.t解放する(); this.soundBlue[i].t解放する();
if (this.soundClap != null) if (this.soundAdlib[i] != null)
this.soundClap.t解放する(); this.soundAdlib[i].t解放する();
if (this.soundRed2 != null) if (this.soundClap[i] != null)
this.soundRed2.t解放する(); this.soundClap[i].t解放する();
if (this.soundBlue2 != null) }
this.soundBlue2.t解放する();
if (this.soundAdlib2 != null)
this.soundAdlib2.t解放する();
if (this.soundClap2 != null)
this.soundClap2.t解放する();
base.OnManagedリソースの解放(); base.OnManagedリソースの解放();
} }
} }
@ -504,8 +498,10 @@ namespace TJAPlayer3
//this.t進行描画_DANGER(); //this.t進行描画_DANGER();
//this.t進行描画_判定ライン(); //this.t進行描画_判定ライン();
if( TJAPlayer3.ConfigIni.ShowChara ) if( TJAPlayer3.ConfigIni.ShowChara && TJAPlayer3.ConfigIni.nPlayerCount <= 2)
this.actChara.On進行描画(); {
this.actChara.On進行描画();
}
if(!BGA_Hidden && TJAPlayer3.ConfigIni.ShowMob && !TJAPlayer3.ConfigIni.bTokkunMode) if(!BGA_Hidden && TJAPlayer3.ConfigIni.ShowMob && !TJAPlayer3.ConfigIni.bTokkunMode)
this.actMob.On進行描画(); this.actMob.On進行描画();
@ -547,10 +543,14 @@ namespace TJAPlayer3
#endif #endif
this.t進行描画_チップ_連打( E楽器パート.DRUMS, i ); 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.actDan.On進行描画();
this.actMtaiko.On進行描画(); this.actMtaiko.On進行描画();
@ -568,8 +568,12 @@ namespace TJAPlayer3
if ( !TJAPlayer3.ConfigIni.bNoInfo ) if ( !TJAPlayer3.ConfigIni.bNoInfo )
this.t進行描画_コンボ(); this.t進行描画_コンボ();
if( !TJAPlayer3.ConfigIni.bNoInfo && !TJAPlayer3.ConfigIni.bTokkunMode) 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.Rainbow.On進行描画();
this.FireWorks.On進行描画(); this.FireWorks.On進行描画();
@ -636,7 +640,7 @@ namespace TJAPlayer3
} }
else else
{ {
for(int i = 0; i < 2; i++) for(int i = 0; i < 5; i++)
{ {
base.eフェーズID = CStage.Eフェーズ._演奏終了演出; base.eフェーズID = CStage.Eフェーズ._演奏終了演出;
@ -698,7 +702,7 @@ namespace TJAPlayer3
} }
public CAct演奏DrumsチップファイアD actChipFireD; 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グラフ actGraph; // #24074 2011.01.23 add ikanick
private CAct演奏Drumsパッド actPad; private CAct演奏Drumsパッド actPad;
@ -812,6 +816,12 @@ namespace TJAPlayer3
case Eパッド.RRed: case Eパッド.RRed:
case Eパッド.LRed2P: case Eパッド.LRed2P:
case Eパッド.RRed2P: case Eパッド.RRed2P:
case Eパッド.LRed3P:
case Eパッド.RRed3P:
case Eパッド.LRed4P:
case Eパッド.RRed4P:
case Eパッド.LRed5P:
case Eパッド.RRed5P:
nInput = 0; nInput = 0;
if( b両手入力 ) if( b両手入力 )
nInput = 2; nInput = 2;
@ -820,12 +830,21 @@ namespace TJAPlayer3
case Eパッド.RBlue: case Eパッド.RBlue:
case Eパッド.LBlue2P: case Eパッド.LBlue2P:
case Eパッド.RBlue2P: case Eパッド.RBlue2P:
case Eパッド.LBlue3P:
case Eパッド.RBlue3P:
case Eパッド.LBlue4P:
case Eパッド.RBlue4P:
case Eパッド.LBlue5P:
case Eパッド.RBlue5P:
nInput = 1; nInput = 1;
if( b両手入力 ) if( b両手入力 )
nInput = 3; nInput = 3;
break; break;
case Eパッド.CLAP: case Eパッド.CLAP:
case Eパッド.CLAP2P: case Eパッド.CLAP2P:
case Eパッド.CLAP3P:
case Eパッド.CLAP4P:
case Eパッド.CLAP5P:
nInput = 4; nInput = 4;
break; break;
} }
@ -969,8 +988,11 @@ namespace TJAPlayer3
//2015.03.19 kairera0467 Chipを1つにまとめて1つのレーン扱いにする。 //2015.03.19 kairera0467 Chipを1つにまとめて1つのレーン扱いにする。
bool isPad1P = (nPad >= 12 && nPad <= 15) || nPad == 20; bool isPad1P = (nPad >= 12 && nPad <= 15) || nPad == 32;
bool isPad2P = (nPad >= 16 && nPad <= 19) || nPad == 21; 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; int nUsePlayer = 0;
if (isPad1P) if (isPad1P)
@ -983,12 +1005,39 @@ namespace TJAPlayer3
if (TJAPlayer3.ConfigIni.nPlayerCount < 2) //プレイ人数が2人以上でなければ入力をキャンセル if (TJAPlayer3.ConfigIni.nPlayerCount < 2) //プレイ人数が2人以上でなければ入力をキャンセル
break; 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; break;
else if ((TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode) && isPad2P) else if ((TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] || TJAPlayer3.ConfigIni.bAIBattleMode) && isPad2P)
break; 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; var isDon = padTo < 2 ? true : false;
CDTX.CChip chipNoHit = r指定時刻に一番近い未ヒットChipを過去方向優先で検索する(nTime, nUsePlayer); CDTX.CChip chipNoHit = r指定時刻に一番近い未ヒットChipを過去方向優先で検索する(nTime, nUsePlayer);
@ -1003,15 +1052,8 @@ namespace TJAPlayer3
{ {
if (NotesManager.IsADLIB(chipNoHit) && (e判定 == E判定.Perfect || e判定 == E判定.Good)) if (NotesManager.IsADLIB(chipNoHit) && (e判定 == E判定.Perfect || e判定 == E判定.Good))
b太鼓音再生フラグ = false; b太鼓音再生フラグ = false;
if (NotesManager.IsADLIB(chipNoHit) && (e判定 != E判定.Miss && e判定 != E判定.Poor)) if (NotesManager.IsADLIB(chipNoHit) && (e判定 != E判定.Miss && e判定 != E判定.Poor))
if (chipNoHit.nPlayerSide == 0) this.soundAdlib[chipNoHit.nPlayerSide]?.t再生を開始する();
{
this.soundAdlib?.t再生を開始する();
}
else
{
this.soundAdlib2?.t再生を開始する();
}
} }
#endregion #endregion
@ -1026,7 +1068,7 @@ namespace TJAPlayer3
nChannel = 0x11; nChannel = 0x11;
if (b太鼓音再生フラグ) if (b太鼓音再生フラグ)
{ {
this.soundRed?.t再生を開始する(); this.soundRed[0]?.t再生を開始する();
} }
break; break;
case 13: case 13:
@ -1035,7 +1077,7 @@ namespace TJAPlayer3
nChannel = 0x11; nChannel = 0x11;
if (b太鼓音再生フラグ) if (b太鼓音再生フラグ)
{ {
this.soundRed?.t再生を開始する(); this.soundRed[0]?.t再生を開始する();
} }
break; break;
case 14: case 14:
@ -1043,14 +1085,14 @@ namespace TJAPlayer3
nHand = 0; nHand = 0;
nChannel = 0x12; nChannel = 0x12;
if (b太鼓音再生フラグ) if (b太鼓音再生フラグ)
this.soundBlue?.t再生を開始する(); this.soundBlue[0]?.t再生を開始する();
break; break;
case 15: case 15:
nLane = 1; nLane = 1;
nHand = 1; nHand = 1;
nChannel = 0x12; nChannel = 0x12;
if (b太鼓音再生フラグ) if (b太鼓音再生フラグ)
this.soundBlue?.t再生を開始する(); this.soundBlue[0]?.t再生を開始する();
break; break;
//以下2P //以下2P
case 16: case 16:
@ -1059,7 +1101,7 @@ namespace TJAPlayer3
nChannel = 0x11; nChannel = 0x11;
if (b太鼓音再生フラグ) if (b太鼓音再生フラグ)
{ {
this.soundRed2?.t再生を開始する(); this.soundRed[1]?.t再生を開始する();
} }
break; break;
case 17: case 17:
@ -1068,7 +1110,7 @@ namespace TJAPlayer3
nChannel = 0x11; nChannel = 0x11;
if (b太鼓音再生フラグ) if (b太鼓音再生フラグ)
{ {
this.soundRed2?.t再生を開始する(); this.soundRed[1]?.t再生を開始する();
} }
break; break;
case 18: case 18:
@ -1076,14 +1118,113 @@ namespace TJAPlayer3
nHand = 0; nHand = 0;
nChannel = 0x12; nChannel = 0x12;
if (b太鼓音再生フラグ) if (b太鼓音再生フラグ)
this.soundBlue2?.t再生を開始する(); this.soundBlue[1]?.t再生を開始する();
break; break;
case 19: case 19:
nLane = 1; nLane = 1;
nHand = 1; nHand = 1;
nChannel = 0x12; nChannel = 0x12;
if (b太鼓音再生フラグ) 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; break;
// Clap // Clap
case (int)Eパッド.CLAP: case (int)Eパッド.CLAP:
@ -1094,7 +1235,7 @@ namespace TJAPlayer3
nChannel = 0x14; nChannel = 0x14;
if (b太鼓音再生フラグ) if (b太鼓音再生フラグ)
{ {
this.soundClap?.t再生を開始する(); this.soundClap[0]?.t再生を開始する();
} }
} }
else else
@ -1110,7 +1251,55 @@ namespace TJAPlayer3
nChannel = 0x14; nChannel = 0x14;
if (b太鼓音再生フラグ) 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 else
@ -1152,13 +1341,25 @@ namespace TJAPlayer3
switch (((Eパッド)nPad)) switch (((Eパッド)nPad))
{ {
case Eパッド.LRed: case Eパッド.LRed:
case Eパッド.LRed2P: case Eパッド.LRed2P:
case Eパッド.LRed3P:
case Eパッド.LRed4P:
case Eパッド.LRed5P:
case Eパッド.RRed: case Eパッド.RRed:
case Eパッド.RRed2P: case Eパッド.RRed2P:
case Eパッド.RRed3P:
case Eパッド.RRed4P:
case Eパッド.RRed5P:
case Eパッド.LBlue: case Eパッド.LBlue:
case Eパッド.LBlue2P: case Eパッド.LBlue2P:
case Eパッド.LBlue3P:
case Eパッド.LBlue4P:
case Eパッド.LBlue5P:
case Eパッド.RBlue: case Eパッド.RBlue:
case Eパッド.RBlue2P: case Eパッド.RBlue2P:
case Eパッド.RBlue3P:
case Eパッド.RBlue4P:
case Eパッド.RBlue5P:
{ {
// Regular notes // Regular notes
@ -1172,6 +1373,21 @@ namespace TJAPlayer3
if ((Eパッド)nPad == Eパッド.LBlue2P) _pad = Eパッド.LBlue; if ((Eパッド)nPad == Eパッド.LBlue2P) _pad = Eパッド.LBlue;
if ((Eパッド)nPad == Eパッド.RBlue2P) _pad = Eパッド.RBlue; 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 _isLeftPad = _pad == Eパッド.LRed || _pad == Eパッド.LBlue;
bool _isBlue = _pad == Eパッド.RBlue || _pad == Eパッド.LBlue; bool _isBlue = _pad == Eパッド.RBlue || _pad == Eパッド.LBlue;
@ -1285,6 +1501,9 @@ namespace TJAPlayer3
case Eパッド.CLAP: case Eパッド.CLAP:
case Eパッド.CLAP2P: case Eパッド.CLAP2P:
case Eパッド.CLAP3P:
case Eパッド.CLAP4P:
case Eパッド.CLAP5P:
{ {
var _pad = (Eパッド)nPad; var _pad = (Eパッド)nPad;
@ -1658,18 +1877,11 @@ namespace TJAPlayer3
long nPlayTime = (long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); long nPlayTime = (long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
if ((!pChip.bHit) && (pChip.n発声時刻ms <= nPlayTime)) if ((!pChip.bHit) && (pChip.n発声時刻ms <= nPlayTime))
{ {
bool bAutoPlay = false; bool bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer];
switch (nPlayer) switch (nPlayer)
{ {
case 0:
bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay;
break;
case 1: case 1:
bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode; bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode;
break;
case 2:
case 3:
bAutoPlay = true;
break; break;
} }
@ -1718,7 +1930,7 @@ namespace TJAPlayer3
} }
int x = pChip.nバーからの距離dot.Taiko; 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 xTemp = 0;
int yTemp = 0; int yTemp = 0;
@ -1732,34 +1944,34 @@ namespace TJAPlayer3
switch ( pChip.nスクロール方向 ) switch ( pChip.nスクロール方向 )
{ {
case 0: case 0:
x += ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ); x += ( NoteOriginX[ nPlayer ] );
break; break;
case 1: case 1:
x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ); x = (NoteOriginX[ nPlayer ] );
y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] - xTemp; y = NoteOriginY[ nPlayer ] - xTemp;
break; break;
case 2: case 2:
x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] + 3 ); x = (NoteOriginX[ nPlayer ] + 3 );
y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] + xTemp; y = NoteOriginY[ nPlayer ] + xTemp;
break; break;
case 3: case 3:
x += ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ); x += (NoteOriginX[ nPlayer ] );
y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] - xTemp; y = NoteOriginY[ nPlayer ] - xTemp;
break; break;
case 4: case 4:
x += ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ); x += (NoteOriginX[ nPlayer ] );
y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] + xTemp; y = NoteOriginY[ nPlayer ] + xTemp;
break; break;
case 5: case 5:
x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] + 10 ) - xTemp; x = (NoteOriginX[ nPlayer ] + 10 ) - xTemp;
break; break;
case 6: case 6:
x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ) - xTemp; x = (NoteOriginX[ nPlayer ] ) - xTemp;
y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] - xTemp; y = NoteOriginY[ nPlayer ] - xTemp;
break; break;
case 7: case 7:
x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ) - xTemp; x = (NoteOriginX[ nPlayer ] ) - xTemp;
y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] + xTemp; y = NoteOriginY[ nPlayer ] + xTemp;
break; break;
} }
#endregion #endregion
@ -1767,7 +1979,7 @@ namespace TJAPlayer3
#region[ ] #region[ ]
if( pChip.eNoteState == ENoteState.wait ) if( pChip.eNoteState == ENoteState.wait )
{ {
x = ( TJAPlayer3.Skin.nScrollFieldX[0] ); x = (NoteOriginX[nPlayer]);
} }
#endregion #endregion
@ -1782,7 +1994,7 @@ namespace TJAPlayer3
{ {
var dbSCROLL = configIni.eScrollMode == EScrollMode.BMSCROLL ? 1.0 : pChip.dbSCROLL; 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; double _scrollSpeed = pChip.dbSCROLL_Y * (this.act譜面スクロール速度.db現在の譜面スクロール速度[nPlayer] + 1.0) / 10.0;
@ -1798,7 +2010,7 @@ namespace TJAPlayer3
this.actGame.st叩ききりまショー.b最初のチップが叩かれた = true; 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 ) if( TJAPlayer3.Tx.Notes[(int)_gt] != null )
{ {
@ -1867,8 +2079,28 @@ namespace TJAPlayer3
int nSenotesX = TJAPlayer3.Skin.nSENotesX[nPlayer]; int nSenotesX = 0;
int nSenotesY = TJAPlayer3.Skin.nSENotesY[nPlayer]; 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(); this.ct手つなぎ.t進行Loop();
int nHand = this.ct手つなぎ.n現在の値 < 30 ? this.ct手つなぎ.n現在の値 : 60 - this.ct手つなぎ.n現在の値; 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 ) protected override void t進行描画_チップ_Taiko連打( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer )
{ {
int nSenotesX = TJAPlayer3.Skin.nSENotesX[nPlayer]; int nSenotesX = 0;
int nSenotesY = TJAPlayer3.Skin.nSENotesY[ nPlayer ]; 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.Taiko;
int nート末端座標 = pChip.nバーからのーツ末端距離dot; int nート末端座標 = pChip.nバーからのーツ末端距離dot;
int n先頭発声位置 = 0; int n先頭発声位置 = 0;
@ -2005,9 +2257,9 @@ namespace TJAPlayer3
*/ */
} }
int x = TJAPlayer3.Skin.nScrollFieldX[nPlayer] + nート座標; int x = NoteOriginX[nPlayer] + nート座標;
int x末端 = TJAPlayer3.Skin.nScrollFieldX[nPlayer] + nート末端座標; int x末端 = NoteOriginX[nPlayer] + nート末端座標;
int y = TJAPlayer3.Skin.nScrollFieldY[nPlayer];// + ((int)(pChip.nコース) * 100) int y = NoteOriginY[nPlayer];// + ((int)(pChip.nコース) * 100)
#region[ HIDSUD & STEALTH ] #region[ HIDSUD & STEALTH ]
@ -2021,7 +2273,7 @@ namespace TJAPlayer3
//if( CDTXMania.ConfigIni.eScrollMode != EScrollMode.Normal ) //if( CDTXMania.ConfigIni.eScrollMode != EScrollMode.Normal )
//x -= 10; //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) if (TJAPlayer3.Tx.Notes[(int)_gt] != null)
{ {
@ -2149,9 +2401,9 @@ namespace TJAPlayer3
if (pChip.bShow) 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) 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) 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.DisplayNote(nPlayer, x, y, pChip, num9, TJAPlayer3.Skin.Game_Notes_Size[0] * 2);
NotesManager.DisplaySENotes(nPlayer, x + nSenotesX, y + nSenotesY, pChip); 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))) 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じゃないならならヒット処理 //時間内でかつ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); this.tチップのヒット処理(pChip.n発声時刻ms, pChip, E楽器パート.TAIKO, false, 0, nPlayer);
} }
} }
@ -2218,9 +2470,9 @@ namespace TJAPlayer3
return; return;
//int n小節番号plus1 = pChip.n発声位置 / 384; //int n小節番号plus1 = pChip.n発声位置 / 384;
int n小節番号plus1 = this.actPlayInfo.NowMeasure[nPlayer]; //int n小節番号plus1 = this.actPlayInfo.NowMeasure[nPlayer];
int x = TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] + pChip.nバーからの距離dot.Taiko; int x = NoteOriginX[ nPlayer ] + pChip.nバーからの距離dot.Taiko;
int y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ]; int y = NoteOriginY[ nPlayer ];
if( pChip.dbSCROLL_Y != 0.0 ) if( pChip.dbSCROLL_Y != 0.0 )
{ {
@ -2365,7 +2617,7 @@ namespace TJAPlayer3
{ {
var showJudgeInfo = false; 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 (TJAPlayer3.ConfigIni.bTokkunMode) showJudgeInfo = true;
if (showJudgeInfo) if (showJudgeInfo)

View File

@ -20,7 +20,7 @@ namespace TJAPlayer3
// メソッド // メソッド
public virtual void Start(int nLane, int nPlayer, bool isRoll = false) 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)]; EGameType _gt = TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)];
if (TJAPlayer3.Tx.Notes[(int)_gt] != null) if (TJAPlayer3.Tx.Notes[(int)_gt] != null)

View File

@ -42,11 +42,30 @@ namespace TJAPlayer3
if (Texture == null || Counter == null) return base.On進行描画(); if (Texture == null || Counter == null) return base.On進行描画();
if (!Counter.b停止中) 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進行(); Counter.t進行();
if (Counter.b終了値に達した) Counter.t停止(); if (Counter.b終了値に達した) Counter.t停止();
int opacity = (((150 - Counter.n現在の値) * 255) / 100); int opacity = (((150 - Counter.n現在の値) * 255) / 100);
Texture.Opacity = opacity; 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進行描画(); return base.On進行描画();
} }

View File

@ -71,9 +71,7 @@ namespace TJAPlayer3
{ {
bool _displayed = false; bool _displayed = false;
if (player == 0 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player])
_displayed = true;
else if (player == 1 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P)
_displayed = true; _displayed = true;
if (_displayed == true) if (_displayed == true)

View File

@ -79,6 +79,7 @@ namespace TJAPlayer3
{ {
if( !base.b活性化してない ) if( !base.b活性化してない )
{ {
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return base.On進行描画();
for (int f = 0; f < 2; f++) for (int f = 0; f < 2; f++)
{ {
if (this.Rainbow1P[f].IsUsing) if (this.Rainbow1P[f].IsUsing)

View File

@ -175,7 +175,7 @@ namespace TJAPlayer3
b音声再生[i] = true; b音声再生[i] = true;
} }
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
{ {
if (!ctゲージアニメ[i].b進行中) if (!ctゲージアニメ[i].b進行中)
ctゲージアニメ[i].t開始(0, gaugeValues[i] / 2, 59, TJAPlayer3.Timer); 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(0, 50000, 1, TJAPlayer3.Timer);
ctゲージアニメ = new CCounter[2]; ctゲージアニメ = new CCounter[5];
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
ctゲージアニメ[i] = new CCounter(); ctゲージアニメ[i] = new CCounter();
ct虹ゲージアニメ = 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.tMenuResetTimer(CResultCharacter.ECharacterResult.NORMAL);
CResultCharacter.tDisableCounter(CResultCharacter.ECharacterResult.CLEAR); 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++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {
gaugeValues[i] = (int)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i]; gaugeValues[i] = (int)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i];
} }
// Replace by max between 2 gauges if 2p // 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); MountainAppearValue = 10275 + (66 * GaugeFactor);
@ -298,7 +298,7 @@ namespace TJAPlayer3
ct全体進行.t進行(); ct全体進行.t進行();
for (int i = 0; i < 2; i++) for (int i = 0; i < 5; i++)
ctゲージアニメ[i].t進行(); ctゲージアニメ[i].t進行();
ctEndAnime.t進行(); ctEndAnime.t進行();
@ -314,9 +314,31 @@ namespace TJAPlayer3
// this.PuchiChara.IdleAnimation(); // this.PuchiChara.IdleAnimation();
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) 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 ] #region [ Ensou result contents ]
int AnimeCount = 3000 + GaugeFactor * 59; int AnimeCount = 3000 + GaugeFactor * 59;
int ScoreApparitionTimeStamp = AnimeCount + 420 * 4 + 840; int ScoreApparitionTimeStamp = AnimeCount + 420 * 4 + 840;
@ -330,7 +352,7 @@ namespace TJAPlayer3
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break; if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
// 1 if right, 0 if left // 1 if right, 0 if left
int shiftPos = (i == 1 || is2PSide) ? 1 : 0; int shiftPos = (i == 1 || is2PSide) ? 1 : i;
int pos = i; int pos = i;
if (is2PSide) if (is2PSide)
pos = 1; pos = 1;
@ -338,15 +360,62 @@ namespace TJAPlayer3
#region [General plate animations] #region [General plate animations]
if (shiftPos == 0) if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
TJAPlayer3.Tx.Result_Panel.t2D描画(TJAPlayer3.app.Device, 0, 0); {
else if (shiftPos == 0)
TJAPlayer3.Tx.Result_Panel_2P.t2D描画(TJAPlayer3.app.Device, 0, 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])); 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) if (ct全体進行.n現在の値 >= 2000)
{ {
@ -366,15 +435,66 @@ namespace TJAPlayer3
ctゲージアニメ[i].n現在の値 = (int)ctゲージアニメ[i].n終了値; 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 // Modify to array for each players using i
int soultext_width = TJAPlayer3.Tx.Result_Soul_Text.szテクスチャサイズ.Width / 3; int soultext_width = TJAPlayer3.Tx.Result_Soul_Text.szテクスチャサイズ.Width / 3;
int soultext_height = TJAPlayer3.Tx.Result_Soul_Text.szテクスチャサイズ.Height; 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終了値に達した) if (ctゲージアニメ[i].b終了値に達した)
{ {
@ -402,34 +522,78 @@ namespace TJAPlayer3
ct虹ゲージアニメ.t進行Loop(); ct虹ゲージアニメ.t進行Loop();
ctSoul.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) 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)); 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現在の値 != 50)
{ {
if (ctゲージアニメ[i].n現在の値 < 40) {
{ int clearText_x;
TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Gauge_ClearText_X[pos], TJAPlayer3.Skin.Result_Gauge_ClearText_Y[pos], int 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])); if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
} {
else 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].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Gauge_ClearText_X[pos], TJAPlayer3.Skin.Result_Gauge_ClearText_Y[pos], TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 0.5f;
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])); }
} 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], 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)); new Rectangle(soultext_width * (ctゲージアニメ[i].n現在の値 <= 30 ? 0 : 1), 0, soultext_width, soultext_height));
}
} }
#endregion #endregion
@ -438,14 +602,15 @@ namespace TJAPlayer3
if (ct全体進行.n現在の値 >= 2000) if (ct全体進行.n現在の値 >= 2000)
{ {
// Change score kiroku to total scores to have the contents for both players, unbloat it // 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].nGreat,
TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGood, TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGood,
TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss, TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss,
@ -454,173 +619,132 @@ namespace TJAPlayer3
TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.[i] TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.[i]
}; };
int[][] num_x = { 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_y = { int[][] num_y;
TJAPlayer3.Skin.Result_Perfect_Y, if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
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.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; num_x = new int[][] { new int[5], new int[5], new int[5], new int[5], new int[5] };
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_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; num_x[1][pos] = TJAPlayer3.Skin.Result_Good_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.Y = 1f; 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再生する(); 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;
this.b音声再生[1 + k] = true; 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 #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_x = TJAPlayer3.Skin.Characters_Result_X[_charaId][pos];
//int chara_y = TJAPlayer3.Skin.Characters_Result_Y[_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_x = namePlate_x[pos] + TJAPlayer3.Tx.NamePlateBase.szテクスチャサイズ.Width / 2;
int chara_y = TJAPlayer3.Skin.Result_NamePlate_Y[pos]; int chara_y = namePlate_y[pos];
if (CResultCharacter.tIsCounterProcessing(p, CResultCharacter.ECharacterResult.CLEAR)) if (CResultCharacter.tIsCounterProcessing(p, CResultCharacter.ECharacterResult.CLEAR))
@ -779,8 +903,8 @@ namespace TJAPlayer3
#region [PuchiChara] #region [PuchiChara]
int puchi_x = chara_x + TJAPlayer3.Skin.Adjustments_MenuPuchichara_X[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[pos]; int puchi_y = chara_y + TJAPlayer3.Skin.Adjustments_MenuPuchichara_Y[TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? pos : 0];
//int ttdiff = 640 - 152; //int ttdiff = 640 - 152;
//int ttps = 640 + ((pos == 1) ? ttdiff + 60 : -ttdiff); //int ttps = 640 + ((pos == 1) ? ttdiff + 60 : -ttdiff);
@ -800,7 +924,7 @@ namespace TJAPlayer3
#region [Cherry blossom animation] #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拡大縮小倍率.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); 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] #region [Cherry blossom Rotating flowers]
if (gaugeValues[p] >= 80.0f) if (gaugeValues[p] >= 80.0f && TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{ {
float FlowerTime = ctRotate_Flowers.n現在の値; float FlowerTime = ctRotate_Flowers.n現在の値;
@ -852,7 +976,7 @@ namespace TJAPlayer3
#region [Panel shines] #region [Panel shines]
if (gaugeValues[p] >= 80.0f) if (gaugeValues[p] >= 80.0f && TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{ {
int ShineTime = (int)ctShine_Plate.n現在の値; int ShineTime = (int)ctShine_Plate.n現在の値;
int Quadrant500 = ShineTime % 500; int Quadrant500 = ShineTime % 500;
@ -889,14 +1013,16 @@ namespace TJAPlayer3
else if (gaugeValues[p] >= 40.0f) else if (gaugeValues[p] >= 40.0f)
Mood = 1; Mood = 1;
int speechBuddle_width = TJAPlayer3.Tx.Result_Speech_Bubble[pos].szテクスチャサイズ.Width / 4; if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
int speechBuddle_height = TJAPlayer3.Tx.Result_Speech_Bubble[pos].szテクスチャサイズ.Height / 3; {
int speechBuddle_width = TJAPlayer3.Tx.Result_Speech_Bubble[pos].szテクスチャサイズ.Width / 4;
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); int speechBuddle_height = TJAPlayer3.Tx.Result_Speech_Bubble[pos].szテクスチャサイズ.Height / 3;
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));
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 (!b音声再生[9])
{ {
if (gaugeValues[p] >= 80.0f) if (gaugeValues[p] >= 80.0f)
@ -917,6 +1043,157 @@ namespace TJAPlayer3
#endregion #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 #endregion

View File

@ -29,9 +29,9 @@ namespace TJAPlayer3
public STDGBVALUE<int> nScoreRank; public STDGBVALUE<int> nScoreRank;
public int n総合ランク値; public int n総合ランク値;
public int[] nクリア = { 0, 0 }; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ public int[] nクリア = { 0, 0, 0, 0, 0 }; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ
public int[] nスコアランク = { 0, 0 }; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極 public int[] nスコアランク = { 0, 0, 0, 0, 0 }; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極
public int[] nHighScore = { 0, 0 }; public int[] nHighScore = { 0, 0, 0, 0, 0 };
public CDTX.CChip[] r空うちドラムチップ; public CDTX.CChip[] r空うちドラムチップ;
public STDGBVALUE<CScoreIni.C演奏記録> st演奏記録; public STDGBVALUE<CScoreIni.C演奏記録> st演奏記録;
@ -61,8 +61,8 @@ namespace TJAPlayer3
public bool isAutoDisabled(int player) public bool isAutoDisabled(int player)
{ {
return ((player == 0 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) return ((player != 1 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player])
|| (player == 1 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P && !TJAPlayer3.ConfigIni.bAIBattleMode)); || (player == 1 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player] && !TJAPlayer3.ConfigIni.bAIBattleMode));
} }
@ -146,15 +146,15 @@ namespace TJAPlayer3
switch (i) switch (i)
{ {
case 0: case 0:
bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0];
break; break;
case 1: case 1:
bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0];
break; break;
case 2: case 2:
bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0];
break; break;
} }
this.fPerfect率[i] = bIsAutoPlay ? 0f : ((100f * part.nPerfect数) / ((float)part.n全チップ数)); this.fPerfect率[i] = bIsAutoPlay ? 0f : ((100f * part.nPerfect数) / ((float)part.n全チップ数));
@ -190,7 +190,7 @@ namespace TJAPlayer3
} }
else 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++) for (int i = 0; i < 7; i++)
{ {
@ -218,7 +218,10 @@ namespace TJAPlayer3
string[] str = { string[] str = {
TJAPlayer3.DTX.strファイル名の絶対パス + currentSaveFile.ToString() + "P.score.ini", 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)] #region [Transfer legacy file format to new file format (P1)]
@ -238,7 +241,10 @@ namespace TJAPlayer3
CScoreIni[] ini = { CScoreIni[] ini = {
new CScoreIni(str[0]), 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 }; 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); // this.st演奏記録[0].nクリア[0] = Math.Max(ini[0].stセクション[0].nクリア[0], clearValue);
// Unlock dan grade // 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), this.newGradeGranted = TJAPlayer3.NamePlateConfig.tUpdateDanTitle(TJAPlayer3.stage選曲.r確定された曲.strタイトル.Substring(0, 2),
clearValue % 2 == 0, clearValue % 2 == 0,
@ -441,14 +447,17 @@ namespace TJAPlayer3
Discord.UpdatePresence(TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? TJAPlayer3.stage選曲.r確定された曲.strタイトル Discord.UpdatePresence(TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? TJAPlayer3.stage選曲.r確定された曲.strタイトル
+ Discord.DiffToString(TJAPlayer3.stage選曲.n確定された曲の難易度[0]) + 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); TJAPlayer3.StartupTime);
#region [Earned medals] #region [Earned medals]
this.nEarnedMedalsCount[0] = 0; 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 // Medals
@ -463,7 +472,10 @@ namespace TJAPlayer3
float[] modMultipliers = float[] modMultipliers =
{ {
TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 0), 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) if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
@ -593,13 +605,9 @@ namespace TJAPlayer3
int scoreRankModifier = srModifiers[0] * diffModifier; int scoreRankModifier = srModifiers[0] * diffModifier;
for (int j = 1; j < 8; j++) for (int j = 1; j < 8; j++)
{ {
if (i == 0) if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(i) >= TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank[i][j - 1])
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(i) >= TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank[j - 1]) scoreRankModifier = srModifiers[j] * diffModifier;
scoreRankModifier = srModifiers[j] * diffModifier;
else
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(i) >= TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank2P[j - 1])
scoreRankModifier = srModifiers[j] * diffModifier;
} }
#endregion #endregion
@ -622,20 +630,36 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {
this.nEarnedMedalsCount[i] += Math.Min(10, TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nADLIB); this.nEarnedMedalsCount[i] += Math.Min(10, TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nADLIB);
}
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[i])
this.nEarnedMedalsCount[0] = 0; this.nEarnedMedalsCount[i] = 0;
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode) if ((TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[i] || TJAPlayer3.ConfigIni.bAIBattleMode) && i == 1)
this.nEarnedMedalsCount[1] = 0; this.nEarnedMedalsCount[i] = 0;
}
TJAPlayer3.NamePlateConfig.tEarnCoins(this.nEarnedMedalsCount); 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++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {
@ -648,7 +672,7 @@ namespace TJAPlayer3
i); i);
} }
displayedModals = new Modal[] { null, null }; displayedModals = new Modal[] { null, null, null, null, null };
#endregion #endregion
@ -892,23 +916,50 @@ namespace TJAPlayer3
} }
else 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 width1 = TJAPlayer3.Tx.Result_Background[1].szテクスチャサイズ.Width / 2;
int height1 = TJAPlayer3.Tx.Result_Background[1].szテクスチャサイズ.Height; int height1 = TJAPlayer3.Tx.Result_Background[1].szテクスチャサイズ.Height;
for (int i = 0; i < 2; i++) for (int i = 0; i < 2; i++)
{ {
int width2 = TJAPlayer3.Tx.Result_Background[2 * i].szテクスチャサイズ.Width / 2; int width2 = TJAPlayer3.Tx.Result_Background[2 * i].szテクスチャサイズ.Width / 2;
int height2 = TJAPlayer3.Tx.Result_Background[2 * i].szテクスチャサイズ.Height; 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)); 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) if (bClear[i])
{ {
TJAPlayer3.Tx.Result_Background[1].Opacity = gaugeAnimFactors; 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)); 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 #endregion
@ -1382,13 +1433,40 @@ namespace TJAPlayer3
{ {
int pos = i; int pos = i;
if (TJAPlayer3.P1IsBlue() && TJAPlayer3.stage選曲.n確定された曲の難易度[0] < (int)Difficulty.Tower) 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 #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 #endregion
} }
@ -1492,7 +1570,7 @@ namespace TJAPlayer3
displayedModals[0] = mqModals.tPopModal(0); displayedModals[0] = mqModals.tPopModal(0);
displayedModals[0]?.tPlayModalSfx(); 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 ] #region [ Return to song select screen ]
@ -1528,6 +1606,45 @@ namespace TJAPlayer3
displayedModals[1]?.tPlayModalSfx(); 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) || if (TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftArrow) ||
@ -1707,8 +1824,8 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {
if ((i == 0 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) if ((i != 1 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[i])
|| (i == 1 && (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode))) || (i == 1 && (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[i] || TJAPlayer3.ConfigIni.bAIBattleMode)))
continue; continue;
int actualPlayer = TJAPlayer3.GetActualPlayer(i); int actualPlayer = TJAPlayer3.GetActualPlayer(i);
@ -1758,7 +1875,7 @@ namespace TJAPlayer3
int actualPlayer = TJAPlayer3.SaveFile; 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); cスコア.GPInfo[actualPlayer].nClear[0] = Math.Max(cスコア.GPInfo[actualPlayer].nClear[0], clearValue);
@ -1779,7 +1896,7 @@ namespace TJAPlayer3
int tmpClear = GetTowerScoreRank(); 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].nClear[0] = Math.Max(cスコア.GPInfo[actualPlayer].nClear[0], tmpClear);
cスコア.GPInfo[actualPlayer].nScoreRank[0] = Math.Max(cスコア.GPInfo[actualPlayer].nScoreRank[0], CFloorManagement.LastRegisteredFloor); cスコア.GPInfo[actualPlayer].nScoreRank[0] = Math.Max(cスコア.GPInfo[actualPlayer].nScoreRank[0], CFloorManagement.LastRegisteredFloor);
@ -1851,7 +1968,7 @@ namespace TJAPlayer3
} }
else 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; private Modal[] displayedModals;
// Coins information // 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. #region [ #24609 pngで保存する ] // #24609 2011.3.14 yyagi; to save result screen in case BestRank or HiSkill.
/// <summary> /// <summary>

View File

@ -13,7 +13,7 @@ namespace TJAPlayer3
{ {
public void RefleshSkin() public void RefleshSkin()
{ {
for (int player = 0; player < 2; player++) for (int player = 0; player < 5; player++)
{ {
this.pfName[player]?.Dispose(); this.pfName[player]?.Dispose();
@ -52,7 +52,7 @@ namespace TJAPlayer3
{ {
RefleshSkin(); 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; 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; 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) public void tNamePlateRefreshTitles(int player)
{ {
int actualPlayer = TJAPlayer3.GetActualPlayer(player); int actualPlayer = TJAPlayer3.GetActualPlayer(player);
@ -149,7 +158,16 @@ namespace TJAPlayer3
// Player number // Player number
if (TJAPlayer3.PlayerSide == 0 || TJAPlayer3.ConfigIni.nPlayerCount > 1) 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 else
tNamePlateDisplayNamePlateBase(x, y, 1); 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 pfTitle;
private CPrivateFastFont pfdan; private CPrivateFastFont pfdan;
private CCounter ctNamePlateEffect; private CCounter ctNamePlateEffect;
public CCounter ctAnimatedNamePlateTitle; public CCounter ctAnimatedNamePlateTitle;
private CTexture[] txName = new CTexture[2]; private CTexture[] txName = new CTexture[5];
private CTexture[] txTitle = new CTexture[2]; private CTexture[] txTitle = new CTexture[5];
private CTexture[] txdan = new CTexture[2]; private CTexture[] txdan = new CTexture[5];
} }
} }

View File

@ -3,7 +3,7 @@ local p1IsBlue = false
local fps = 0 local fps = 0
local deltaTime = 0 local deltaTime = 0
local isClear = { false, false } local isClear = { false, false, false, false, false }
local towerNightNum = 0 local towerNightNum = 0
local battleState = 0 local battleState = 0

View File

@ -7,6 +7,12 @@ Game_Chara_X=0,0
;キャラのY座標。(1P,2P) ;キャラのY座標。(1P,2P)
Game_Chara_Y=0,537 Game_Chara_Y=0,537
Game_Chara_4P=165,68
Game_Chara_5P=165,40
;キャラのX座標。(1P,2P) ;キャラのX座標。(1P,2P)
Game_Chara_X_AI=472,602 Game_Chara_X_AI=472,602
@ -37,6 +43,12 @@ Game_Chara_Balloon_X=0,0
;ふうせん連打時のキャラ画像X座標。(1P,2P) ;ふうせん連打時のキャラ画像X座標。(1P,2P)
Game_Chara_Balloon_Y=0,297 Game_Chara_Balloon_Y=0,297
Game_Chara_Balloon_4P=0,-176
Game_Chara_Balloon_5P=0,-168
;ふうせん連打アクション時に使用するタイマーの更新間隔。(ms) ;ふうせん連打アクション時に使用するタイマーの更新間隔。(ms)
Game_Chara_Balloon_Timer=16 Game_Chara_Balloon_Timer=16

View File

@ -0,0 +1,102 @@
;Included file
;あとは通常通り設定できます
; TJAPlayer3-Develop-ReWriteで追加したSkinConfig
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -49,80 +49,90 @@ function clearOut(player)
end end
function init() function init()
func:AddGraph("1P_Up_1st.png") if playerCount <= 2 then
func:AddGraph("2P_Up_1st.png") func:AddGraph("1P_Up_1st.png")
func:AddGraph("1P_Up_2nd.png") func:AddGraph("2P_Up_1st.png")
func:AddGraph("2P_Up_2nd.png") func:AddGraph("1P_Up_2nd.png")
func:AddGraph("1P_Up_3rd.png") func:AddGraph("2P_Up_2nd.png")
func:AddGraph("2P_Up_3rd.png") func:AddGraph("1P_Up_3rd.png")
func:AddGraph("2P_Up_3rd.png")
func:AddGraph("Clear_Up_1st.png") func:AddGraph("Clear_Up_1st.png")
func:AddGraph("Clear_Up_2nd.png") func:AddGraph("Clear_Up_2nd.png")
func:AddGraph("Clear_Up_3rd.png") func:AddGraph("Clear_Up_3rd.png")
else
func:AddGraph("4PBG.png")
end
end end
function update() function update()
bgScrollX = bgScrollX - (59 * deltaTime) if playerCount <= 2 then
bgScrollY = bgScrollY + (14 * deltaTime) bgScrollX = bgScrollX - (59 * deltaTime)
bg3rdAnime = bg3rdAnime + (300 * deltaTime) bgScrollY = bgScrollY + (14 * deltaTime)
bg3rdAnime = bg3rdAnime + (300 * deltaTime)
for player = 0, playerCount - 1 do for player = 0, playerCount - 1 do
if isClear[player] then if isClear[player] then
bgClearFade[player + 1] = bgClearFade[player + 1] + (2000 * deltaTime) bgClearFade[player + 1] = bgClearFade[player + 1] + (2000 * deltaTime)
else else
bgClearFade[player + 1] = bgClearFade[player + 1] - (2000 * deltaTime) bgClearFade[player + 1] = bgClearFade[player + 1] - (2000 * deltaTime)
end end
if bgClearFade[player + 1] > 255 then if bgClearFade[player + 1] > 255 then
bgClearFade[player + 1] = 255 bgClearFade[player + 1] = 255
end
if bgClearFade[player + 1] < 0 then
bgClearFade[player + 1] = 0
end
end end
if bgClearFade[player + 1] < 0 then
bgClearFade[player + 1] = 0 if bgScrollX < -loopWidth then
bgScrollX = 0
end
if bgScrollY > loopHeight then
bgScrollY = 0
end
if bg3rdAnime > 600 then
bg3rdAnime = 0
end end
end
if bgScrollX < -loopWidth then if bg3rdAnime < 270 then
bgScrollX = 0 --speed
end bgScrollX_3rd = bg3rdAnime * 0.9258
if bgScrollY > loopHeight then bgScrollY_3rd = math.sin(bg3rdAnime * (math.pi / 270.0)) * 40.0
bgScrollY = 0
end
if bg3rdAnime > 600 then
bg3rdAnime = 0
end
if bg3rdAnime < 270 then
--speed
bgScrollX_3rd = bg3rdAnime * 0.9258
bgScrollY_3rd = math.sin(bg3rdAnime * (math.pi / 270.0)) * 40.0
else
bgScrollX_3rd = 250 + (bg3rdAnime - 270) * 0.24;
if bg3rdAnime < 490 then
bgScrollY_3rd = -math.sin((bg3rdAnime - 270) * (math.pi / 170.0)) * 15.0
else else
bgScrollY_3rd = -(math.sin(220 * (math.pi / 170.0)) * 15.0) + (((bg3rdAnime - 490) / 110) * (math.sin(220 * (math.pi / 170)) * 15.0)) bgScrollX_3rd = 250 + (bg3rdAnime - 270) * 0.24;
if bg3rdAnime < 490 then
bgScrollY_3rd = -math.sin((bg3rdAnime - 270) * (math.pi / 170.0)) * 15.0
else
bgScrollY_3rd = -(math.sin(220 * (math.pi / 170.0)) * 15.0) + (((bg3rdAnime - 490) / 110) * (math.sin(220 * (math.pi / 170)) * 15.0))
end
end end
end end
end end
function draw() function draw()
for player = 0, playerCount - 1 do if playerCount <= 2 then
for player = 0, playerCount - 1 do
func:SetOpacity(bgClearFade[player + 1], "Clear_Up_1st.png") func:SetOpacity(bgClearFade[player + 1], "Clear_Up_1st.png")
func:SetOpacity(bgClearFade[player + 1], "Clear_Up_2nd.png") func:SetOpacity(bgClearFade[player + 1], "Clear_Up_2nd.png")
func:SetOpacity(bgClearFade[player + 1], "Clear_Up_3rd.png") func:SetOpacity(bgClearFade[player + 1], "Clear_Up_3rd.png")
y = 0 y = 0
if player == 1 then if player == 1 then
y = 536 y = 536
end end
for i = 0, 5 do for i = 0, 5 do
drawUp1st(bgScrollX + (loopWidth * i), y, player) drawUp1st(bgScrollX + (loopWidth * i), y, player)
drawUp2nd(bgScrollX + (loopWidth * i), y, player) drawUp2nd(bgScrollX + (loopWidth * i), y, player)
end end
for i = 0, 5 do for i = 0, 5 do
drawUp3rd(bgScrollX + (loopWidth * i), y, player) drawUp3rd(bgScrollX + (loopWidth * i), y, player)
end
end end
else
func:DrawGraph(0, 0, "4PBG.png");
end end
end end

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 622 B

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -11,12 +11,12 @@
--func:SetColor(r, g, b, "filename") --func:SetColor(r, g, b, "filename")
local y = { 210, 386 } local y = { 210, 386, 0, 0, 0 }
local sideTextureCount = 4 local sideTextureCount = 4
local animeCounter = { 0, 0 } local animeCounter = { 0, 0, 0, 0, 0 }
local nowFrame = { 0, 0 } local nowFrame = { 0, 0, 0, 0, 0 }
@ -32,10 +32,18 @@ function clearOut(player)
end end
function playEndAnime(player) function playEndAnime(player)
animeCounter = { 0, 0 } animeCounter = { 0, 0, 0, 0, 0 }
end end
function init() function init()
if playerCount <= 2 then
y = { 210, 386, 0, 0, 0 }
elseif playerCount == 5 then
y = { 36, 170, 314, 458, 602 }
else
y = { 64, 240, 416, 592, 0 }
end
func:AddGraph("Clear_Text.png") func:AddGraph("Clear_Text.png")
func:AddGraph("Clear_Text_Effect.png") func:AddGraph("Clear_Text_Effect.png")

View File

@ -10,11 +10,11 @@
--func:SetScale(xscale, yscale, "filename") --func:SetScale(xscale, yscale, "filename")
--func:SetColor(r, g, b, "filename") --func:SetColor(r, g, b, "filename")
local x = { 505, 505 } local x = { 505, 505, 505, 505, 505 }
local y = { 145, 321 } local y = { 145, 321, 0, 0, 0 }
local animeCounter = { 0, 0 } local animeCounter = { 0, 0, 0, 0, 0 }
local nowFrame = { 0, 0 } local nowFrame = { 0, 0, 0, 0, 0 }
local textureCount = 25 local textureCount = 25
@ -27,11 +27,20 @@ function clearOut(player)
end end
function playEndAnime(player) function playEndAnime(player)
animeCounter = { 0, 0 } animeCounter = { 0, 0, 0, 0, 0 }
nowFrame = { 0, 0 } nowFrame = { 0, 0, 0, 0, 0 }
end end
function init() function init()
if playerCount <= 2 then
y = { 145, 321, 0, 0, 0 }
elseif playerCount == 5 then
y = { -23, 121, 265, 409, 553 }
else
y = { -1, 175, 351, 527, 0 }
end
for i = 0 , textureCount do for i = 0 , textureCount do
func:AddGraph(tostring(i)..".png") func:AddGraph(tostring(i)..".png")
end end

View File

@ -10,11 +10,11 @@
--func:SetScale(xscale, yscale, "filename") --func:SetScale(xscale, yscale, "filename")
--func:SetColor(r, g, b, "filename") --func:SetColor(r, g, b, "filename")
local x = { 332, 332 } local x = { 332, 332, 332, 332, 332 }
local y = { 192, 368 } local y = { 192, 368, 0, 0, 0 }
local animeCounter = { 0, 0 } local animeCounter = { 0, 0, 0, 0, 0 }
local nowFrame = { 0, 0 } local nowFrame = { 0, 0, 0, 0, 0 }
local textureCount = 61 local textureCount = 61
@ -25,11 +25,19 @@ function clearOut(player)
end end
function playEndAnime(player) function playEndAnime(player)
animeCounter = { 0, 0 } animeCounter = { 0, 0, 0, 0, 0 }
nowFrame = { 0, 0 } nowFrame = { 0, 0, 0, 0, 0 }
end end
function init() function init()
if playerCount <= 2 then
y = { 192, 368, 0, 0, 0 }
elseif playerCount == 5 then
y = { 24, 168, 312, 456, 600 }
else
y = { 46, 222, 398, 574, 0 }
end
func:AddGraph("bg.png") func:AddGraph("bg.png")
for i = 0 , textureCount do for i = 0 , textureCount do
func:AddGraph(tostring(i)..".png") func:AddGraph(tostring(i)..".png")

View File

@ -10,11 +10,11 @@
--func:SetScale(xscale, yscale, "filename") --func:SetScale(xscale, yscale, "filename")
--func:SetColor(r, g, b, "filename") --func:SetColor(r, g, b, "filename")
local x = { 330, 330 } local x = { 330, 330, 330, 330, 330 }
local y = { 50, 226 } local y = { 50, 226, 0, 0, 0 }
local animeCounter = { 0, 0 } local animeCounter = { 0, 0, 0, 0, 0 }
local nowFrame = { 0, 0 } local nowFrame = { 0, 0, 0, 0, 0 }
local textureCount = 66 local textureCount = 66
@ -25,11 +25,20 @@ function clearOut(player)
end end
function playEndAnime(player) function playEndAnime(player)
animeCounter = { 0, 0 } animeCounter = { 0, 0, 0, 0, 0 }
nowFrame = { 0, 0 } nowFrame = { 0, 0, 0, 0, 0 }
end end
function init() function init()
if playerCount <= 2 then
y = { 50, 226, 0, 0, 0 }
elseif playerCount == 5 then
y = { -118, 26, 170, 314, 458 }
else
y = { -96, 80, 256, 432, 0 }
end
for i = 0 , textureCount do for i = 0 , textureCount do
func:AddGraph(tostring(i)..".png") func:AddGraph(tostring(i)..".png")
end end

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Some files were not shown because too many files have changed in this diff Show More