1
0
mirror of synced 2024-11-23 23:21:06 +01:00

chore: Detach the CChip class, few code translation and deprecate unused items

This commit is contained in:
0auBSQ 2024-10-31 18:52:21 +09:00
parent 36c5a62eed
commit fe0617afe4
47 changed files with 3523 additions and 3869 deletions

View File

@ -1587,7 +1587,6 @@ internal class CConfigIni : INotifyPropertyChanged {
for (int i = 0; i < 3; i++) {
this.bReverse[i] = false;
this.JudgeTextDisplayPosition[i] = EJudgeTextDisplayPosition.AboveLane;
this.eInvisible[i] = EInvisible.Off;
}
@ -2233,16 +2232,6 @@ internal class CConfigIni : INotifyPropertyChanged {
sw.WriteLine("; Enable countdown in songselect.(0:No, 1:Yes)");
sw.WriteLine("EnableCountDownTimer={0}", this.bEnableCountdownTimer ? 1 : 0);
sw.WriteLine();
#region [ Invisible ]
sw.WriteLine("; ドラムチップ非表示モード (0:OFF, 1=SEMI, 2:FULL)");
sw.WriteLine("; Drums chip invisible mode");
sw.WriteLine("DrumsInvisible={0}", (int)this.eInvisible.Drums);
sw.WriteLine();
#endregion
sw.WriteLine("; ドラムREVERSEモード(0:OFF, 1:ON)");
sw.WriteLine("DrumsReverse={0}", this.bReverse.Drums ? 1 : 0);
sw.WriteLine();
@ -3042,10 +3031,6 @@ internal class CConfigIni : INotifyPropertyChanged {
case "EnableCountDownTimer":
this.bEnableCountdownTimer = CConversion.bONorOFF(value[0]);
break;
case "DrumsInvisible":
this.eInvisible.Drums =
(EInvisible)CConversion.ParseIntInRange(value, 0, 2, (int)this.eInvisible.Drums);
break;
case "DrumsReverse":
this.bReverse.Drums = CConversion.bONorOFF(value[0]);
break;

View File

@ -318,7 +318,7 @@ public static class ImGuiDebugWindow {
ImGui.Text("BPM: " + dtx.BASEBPM + (dtx.listBPM.Count > 1 ? (" (Min: " + dtx.MinBPM + " / Max: " + dtx.MaxBPM + ")") : ""));
if (dtx.listBPM.Count > 1) {
if (ImGui.TreeNodeEx($"BPM List ({dtx.listBPM.Count})###GAME_BPM_LIST_{i}")) {
foreach (CDTX.CBPM bpm in dtx.listBPM.Values) {
foreach (CTja.CBPM bpm in dtx.listBPM.Values) {
ImGui.Text($"(Time: {String.Format("{0:0.#}s", (bpm.bpm_change_time / 1000))}) {bpm.dbBPM値}");
}
ImGui.TreePop();

View File

@ -64,104 +64,104 @@ internal class OpenTaiko : Game {
}
#region [DTX instances]
public static CDTX DTX {
public static CTja TJA {
get {
return dtx[0];
return tja[0];
}
set {
if ((dtx[0] != null) && (app != null)) {
dtx[0].DeActivate();
dtx[0].ReleaseManagedResource();
dtx[0].ReleaseUnmanagedResource();
app.listトップレベルActivities.Remove(dtx[0]);
if ((tja[0] != null) && (app != null)) {
tja[0].DeActivate();
tja[0].ReleaseManagedResource();
tja[0].ReleaseUnmanagedResource();
app.listTopLevelActivities.Remove(tja[0]);
}
dtx[0] = value;
if ((dtx[0] != null) && (app != null)) {
app.listトップレベルActivities.Add(dtx[0]);
tja[0] = value;
if ((tja[0] != null) && (app != null)) {
app.listTopLevelActivities.Add(tja[0]);
}
}
}
public static CDTX DTX_2P {
public static CTja TJA_2P {
get {
return dtx[1];
return tja[1];
}
set {
if ((dtx[1] != null) && (app != null)) {
dtx[1].DeActivate();
dtx[1].ReleaseManagedResource();
dtx[1].ReleaseUnmanagedResource();
app.listトップレベルActivities.Remove(dtx[1]);
if ((tja[1] != null) && (app != null)) {
tja[1].DeActivate();
tja[1].ReleaseManagedResource();
tja[1].ReleaseUnmanagedResource();
app.listTopLevelActivities.Remove(tja[1]);
}
dtx[1] = value;
if ((dtx[1] != null) && (app != null)) {
app.listトップレベルActivities.Add(dtx[1]);
tja[1] = value;
if ((tja[1] != null) && (app != null)) {
app.listTopLevelActivities.Add(tja[1]);
}
}
}
public static CDTX DTX_3P {
public static CTja TJA_3P {
get {
return dtx[2];
return tja[2];
}
set {
if ((dtx[2] != null) && (app != null)) {
dtx[2].DeActivate();
dtx[2].ReleaseManagedResource();
dtx[2].ReleaseUnmanagedResource();
app.listトップレベルActivities.Remove(dtx[2]);
if ((tja[2] != null) && (app != null)) {
tja[2].DeActivate();
tja[2].ReleaseManagedResource();
tja[2].ReleaseUnmanagedResource();
app.listTopLevelActivities.Remove(tja[2]);
}
dtx[2] = value;
if ((dtx[2] != null) && (app != null)) {
app.listトップレベルActivities.Add(dtx[2]);
tja[2] = value;
if ((tja[2] != null) && (app != null)) {
app.listTopLevelActivities.Add(tja[2]);
}
}
}
public static CDTX DTX_4P {
public static CTja TJA_4P {
get {
return dtx[3];
return tja[3];
}
set {
if ((dtx[3] != null) && (app != null)) {
dtx[3].DeActivate();
dtx[3].ReleaseManagedResource();
dtx[3].ReleaseUnmanagedResource();
app.listトップレベルActivities.Remove(dtx[3]);
if ((tja[3] != null) && (app != null)) {
tja[3].DeActivate();
tja[3].ReleaseManagedResource();
tja[3].ReleaseUnmanagedResource();
app.listTopLevelActivities.Remove(tja[3]);
}
dtx[3] = value;
if ((dtx[3] != null) && (app != null)) {
app.listトップレベルActivities.Add(dtx[3]);
tja[3] = value;
if ((tja[3] != null) && (app != null)) {
app.listTopLevelActivities.Add(tja[3]);
}
}
}
public static CDTX DTX_5P {
public static CTja TJA_5P {
get {
return dtx[4];
return tja[4];
}
set {
if ((dtx[4] != null) && (app != null)) {
dtx[4].DeActivate();
dtx[4].ReleaseManagedResource();
dtx[4].ReleaseUnmanagedResource();
app.listトップレベルActivities.Remove(dtx[4]);
if ((tja[4] != null) && (app != null)) {
tja[4].DeActivate();
tja[4].ReleaseManagedResource();
tja[4].ReleaseUnmanagedResource();
app.listTopLevelActivities.Remove(tja[4]);
}
dtx[4] = value;
if ((dtx[4] != null) && (app != null)) {
app.listトップレベルActivities.Add(dtx[4]);
tja[4] = value;
if ((tja[4] != null) && (app != null)) {
app.listTopLevelActivities.Add(tja[4]);
}
}
}
public static CDTX GetDTX(int player) {
public static CTja GetDTX(int player) {
switch (player) {
case 0:
return OpenTaiko.DTX;
return OpenTaiko.TJA;
case 1:
return OpenTaiko.DTX_2P;
return OpenTaiko.TJA_2P;
case 2:
return OpenTaiko.DTX_3P;
return OpenTaiko.TJA_3P;
case 3:
return OpenTaiko.DTX_4P;
return OpenTaiko.TJA_4P;
case 4:
return OpenTaiko.DTX_5P;
return OpenTaiko.TJA_5P;
}
return null;
}
@ -471,14 +471,14 @@ internal class OpenTaiko : Game {
this.bマウスカーソル表示中 = false;
}
if (this.listトップレベルActivities != null) {
foreach (CActivity activity in this.listトップレベルActivities)
if (this.listTopLevelActivities != null) {
foreach (CActivity activity in this.listTopLevelActivities)
activity.CreateUnmanagedResource();
}
}
protected override void UnloadContent() {
if (this.listトップレベルActivities != null) {
foreach (CActivity activity in this.listトップレベルActivities)
if (this.listTopLevelActivities != null) {
foreach (CActivity activity in this.listTopLevelActivities)
activity.ReleaseUnmanagedResource();
}
}
@ -1115,10 +1115,10 @@ internal class OpenTaiko : Game {
#region [ ESC押下時は ]
if (this.n進行描画の戻り値 == (int)ESongLoadingScreenReturnValue.LoadCanceled) {
//DTX.t全チップの再生停止();
if (DTX != null) {
DTX.DeActivate();
DTX.ReleaseManagedResource();
DTX.ReleaseUnmanagedResource();
if (TJA != null) {
TJA.DeActivate();
TJA.ReleaseManagedResource();
TJA.ReleaseUnmanagedResource();
}
// ???
@ -1187,10 +1187,10 @@ for (int i = 0; i < 3; i++) {
switch (this.n進行描画の戻り値) {
case (int)EGameplayScreenReturnValue.ReloadAndReplay:
#region [ DTXファイルを再読み込みして ]
DTX.t全チップの再生停止();
DTX.DeActivate();
DTX.ReleaseManagedResource();
DTX.ReleaseUnmanagedResource();
TJA.t全チップの再生停止();
TJA.DeActivate();
TJA.ReleaseManagedResource();
TJA.ReleaseUnmanagedResource();
r現在のステージ.DeActivate();
if (!ConfigIni.PreAssetsLoading) {
r現在のステージ.ReleaseManagedResource();
@ -1219,10 +1219,10 @@ for (int i = 0; i < 3; i++) {
#region [ ]
//-----------------------------
DTX.t全チップの再生停止();
DTX.DeActivate();
DTX.ReleaseManagedResource();
DTX.ReleaseUnmanagedResource();
TJA.t全チップの再生停止();
TJA.DeActivate();
TJA.ReleaseManagedResource();
TJA.ReleaseUnmanagedResource();
r現在のステージ.DeActivate();
if (!ConfigIni.PreAssetsLoading) {
r現在のステージ.ReleaseManagedResource();
@ -1251,10 +1251,10 @@ for (int i = 0; i < 3; i++) {
#region [ (StageFailed) ]
//-----------------------------
DTX.t全チップの再生停止();
DTX.DeActivate();
DTX.ReleaseManagedResource();
DTX.ReleaseUnmanagedResource();
TJA.t全チップの再生停止();
TJA.DeActivate();
TJA.ReleaseManagedResource();
TJA.ReleaseUnmanagedResource();
r現在のステージ.DeActivate();
if (!ConfigIni.PreAssetsLoading) {
r現在のステージ.ReleaseManagedResource();
@ -1313,10 +1313,10 @@ for (int i = 0; i < 3; i++) {
//-----------------------------
if (this.n進行描画の戻り値 != 0) {
//DTX.t全チップの再生一時停止();
DTX.t全チップの再生停止とミキサーからの削除();
DTX.DeActivate();
DTX.ReleaseManagedResource();
DTX.ReleaseUnmanagedResource();
TJA.t全チップの再生停止とミキサーからの削除();
TJA.DeActivate();
TJA.ReleaseManagedResource();
TJA.ReleaseUnmanagedResource();
r現在のステージ.DeActivate();
if (!ConfigIni.PreAssetsLoading) {
r現在のステージ.ReleaseManagedResource();
@ -1505,9 +1505,9 @@ for (int i = 0; i < 3; i++) {
Camera *= Matrix4X4.CreateTranslation(fCamXOffset / 1280, fCamYOffset / 720, 1f);
if (OpenTaiko.DTX != null) {
if (OpenTaiko.TJA != null) {
//object rendering
foreach (KeyValuePair<string, CSongObject> pair in OpenTaiko.DTX.listObj) {
foreach (KeyValuePair<string, CSongObject> pair in OpenTaiko.TJA.listObj) {
pair.Value.tDraw();
}
}
@ -1754,11 +1754,11 @@ for (int i = 0; i < 3; i++) {
private bool b終了処理完了済み;
public bool bネットワークに接続中 { get; private set; } = false;
private long ms = long.MinValue;
private static CDTX[] dtx = new CDTX[5];
private static CTja[] tja = new CTja[5];
public static TextureLoader Tx = new TextureLoader();
public List<CActivity> listトップレベルActivities;
public List<CActivity> listTopLevelActivities;
private int n進行描画の戻り値;
private string strWindowTitle
// ayo komi isn't this useless code? - tfd500
@ -1830,7 +1830,7 @@ for (int i = 0; i < 3; i++) {
//---------------------
#endregion
DTX = null;
TJA = null;
#region [ Skin ]
//---------------------
@ -2086,22 +2086,22 @@ for (int i = 0; i < 3; i++) {
stage終了 = new CStage終了();
NamePlate = new CNamePlate();
SaveFile = 0;
this.listトップレベルActivities = new List<CActivity>();
this.listトップレベルActivities.Add(actEnumSongs);
this.listトップレベルActivities.Add(actTextConsole);
this.listトップレベルActivities.Add(stage起動);
this.listトップレベルActivities.Add(stageタイトル);
this.listトップレベルActivities.Add(stageコンフィグ);
this.listトップレベルActivities.Add(stageSongSelect);
this.listトップレベルActivities.Add(stage段位選択);
this.listトップレベルActivities.Add(stageHeya);
this.listトップレベルActivities.Add(stageOnlineLounge);
this.listトップレベルActivities.Add(stageTowerSelect);
this.listトップレベルActivities.Add(stage曲読み込み);
this.listトップレベルActivities.Add(stage演奏ドラム画面);
this.listトップレベルActivities.Add(stage結果);
this.listトップレベルActivities.Add(stageChangeSkin);
this.listトップレベルActivities.Add(stage終了);
this.listTopLevelActivities = new List<CActivity>();
this.listTopLevelActivities.Add(actEnumSongs);
this.listTopLevelActivities.Add(actTextConsole);
this.listTopLevelActivities.Add(stage起動);
this.listTopLevelActivities.Add(stageタイトル);
this.listTopLevelActivities.Add(stageコンフィグ);
this.listTopLevelActivities.Add(stageSongSelect);
this.listTopLevelActivities.Add(stage段位選択);
this.listTopLevelActivities.Add(stageHeya);
this.listTopLevelActivities.Add(stageOnlineLounge);
this.listTopLevelActivities.Add(stageTowerSelect);
this.listTopLevelActivities.Add(stage曲読み込み);
this.listTopLevelActivities.Add(stage演奏ドラム画面);
this.listTopLevelActivities.Add(stage結果);
this.listTopLevelActivities.Add(stageChangeSkin);
this.listTopLevelActivities.Add(stage終了);
//---------------------
#endregion

View File

@ -80,10 +80,10 @@ class CSongReplay {
public void tDanInputSongResults(int songNo) {
if (songNo >= DanSongCount) return;
if (songNo < 0) return;
IndividualGoodCount[songNo] = OpenTaiko.stage演奏ドラム画面.n[songNo];
IndividualOkCount[songNo] = OpenTaiko.stage演奏ドラム画面.n[songNo];
IndividualBadCount[songNo] = OpenTaiko.stage演奏ドラム画面.n不可[songNo];
IndividualRollCount[songNo] = OpenTaiko.stage演奏ドラム画面.n連打[songNo];
IndividualGoodCount[songNo] = OpenTaiko.stage演奏ドラム画面.nGood[songNo];
IndividualOkCount[songNo] = OpenTaiko.stage演奏ドラム画面.nOk[songNo];
IndividualBadCount[songNo] = OpenTaiko.stage演奏ドラム画面.nBad[songNo];
IndividualRollCount[songNo] = OpenTaiko.stage演奏ドラム画面.nRoll[songNo];
IndividualMaxCombo[songNo] = OpenTaiko.stage演奏ドラム画面.nHighestCombo[songNo];
IndividualBoomCount[songNo] = OpenTaiko.stage演奏ドラム画面.nMine[songNo];
IndividualADLibCount[songNo] = OpenTaiko.stage演奏ドラム画面.nADLIB[songNo];
@ -259,7 +259,7 @@ class CSongReplay {
OkCount = OpenTaiko.stage演奏ドラム画面.CChartScore[storedPlayer].nGood;
BadCount = OpenTaiko.stage演奏ドラム画面.CChartScore[storedPlayer].nMiss;
RollCount = OpenTaiko.stage演奏ドラム画面.GetRoll(storedPlayer);
MaxCombo = OpenTaiko.stage演奏ドラム画面.actCombo.n現在のコンボ数.[storedPlayer];
MaxCombo = OpenTaiko.stage演奏ドラム画面.actCombo.nCurrentCombo.[storedPlayer];
BoomCount = OpenTaiko.stage演奏ドラム画面.CChartScore[storedPlayer].nMine;
ADLibCount = OpenTaiko.stage演奏ドラム画面.CChartScore[storedPlayer].nADLIB;
Score = OpenTaiko.stage演奏ドラム画面.CChartScore[storedPlayer].nScore;

View File

@ -315,7 +315,7 @@ internal class DBSaves {
currentPlay.HighScoreGoodCount = chartScore.nGreat;
currentPlay.HighScoreOkCount = chartScore.nGood;
currentPlay.HighScoreBadCount = chartScore.nMiss;
currentPlay.HighScoreMaxCombo = OpenTaiko.stage演奏ドラム画面.actCombo.n現在のコンボ数.[player];
currentPlay.HighScoreMaxCombo = OpenTaiko.stage演奏ドラム画面.actCombo.nCurrentCombo.[player];
currentPlay.HighScoreRollCount = chartScore.nRoll;
currentPlay.HighScoreADLibCount = chartScore.nADLIB;
currentPlay.HighScoreBoomCount = chartScore.nMine;

View File

@ -420,13 +420,13 @@ class HGaugeMethods {
public static float UNSAFE_KillZonePercent(int player) {
var chara = OpenTaiko.Tx.Characters[OpenTaiko.SaveFileInstances[OpenTaiko.GetActualPlayer(player)].data.Character];
CDTX[] dtxs =
CTja[] dtxs =
{
OpenTaiko.DTX,
OpenTaiko.DTX_2P,
OpenTaiko.DTX_3P,
OpenTaiko.DTX_4P,
OpenTaiko.DTX_5P
OpenTaiko.TJA,
OpenTaiko.TJA_2P,
OpenTaiko.TJA_3P,
OpenTaiko.TJA_4P,
OpenTaiko.TJA_5P
};
// Total hits and perfect hits
@ -448,13 +448,13 @@ class HGaugeMethods {
public static void UNSAFE_DrawGaugeFast(int player, int opacity, int rainbowTextureIndex, int soulFlameIndex) {
var chara = OpenTaiko.Tx.Characters[OpenTaiko.SaveFileInstances[OpenTaiko.GetActualPlayer(player)].data.Character];
CDTX[] dtxs =
CTja[] dtxs =
{
OpenTaiko.DTX,
OpenTaiko.DTX_2P,
OpenTaiko.DTX_3P,
OpenTaiko.DTX_4P,
OpenTaiko.DTX_5P
OpenTaiko.TJA,
OpenTaiko.TJA_2P,
OpenTaiko.TJA_3P,
OpenTaiko.TJA_4P,
OpenTaiko.TJA_5P
};
// Set box
@ -595,13 +595,13 @@ class HGaugeMethods {
public static void UNSAFE_DrawResultGaugeFast(int player, int shiftPos, int pos, int segmentsDisplayed, int rainbowTextureIndex, int soulFlameIndex, int uioffset_x) {
var chara = OpenTaiko.Tx.Characters[OpenTaiko.SaveFileInstances[OpenTaiko.GetActualPlayer(player)].data.Character];
CDTX[] dtxs =
CTja[] dtxs =
{
OpenTaiko.DTX,
OpenTaiko.DTX_2P,
OpenTaiko.DTX_3P,
OpenTaiko.DTX_4P,
OpenTaiko.DTX_5P
OpenTaiko.TJA,
OpenTaiko.TJA_2P,
OpenTaiko.TJA_3P,
OpenTaiko.TJA_4P,
OpenTaiko.TJA_5P
};
// Set box

View File

@ -41,10 +41,10 @@ class HScenePreset {
: null;
if (sectionIsValid
&& OpenTaiko.DTX.scenePreset != null
&& ((Dictionary<string, DBSkinPreset.SkinScene>)_ps).ContainsKey(OpenTaiko.DTX.scenePreset)) // If currently selected song has valid SCENEPRESET metadata within TJA
&& OpenTaiko.TJA.scenePreset != null
&& ((Dictionary<string, DBSkinPreset.SkinScene>)_ps).ContainsKey(OpenTaiko.TJA.scenePreset)) // If currently selected song has valid SCENEPRESET metadata within TJA
{
preset = ((Dictionary<string, DBSkinPreset.SkinScene>)_ps)[OpenTaiko.DTX.scenePreset];
preset = ((Dictionary<string, DBSkinPreset.SkinScene>)_ps)[OpenTaiko.TJA.scenePreset];
} else if (sectionIsValid
&& OpenTaiko.stageSongSelect.rChoosenSong.strScenePreset != null
&& ((Dictionary<string, DBSkinPreset.SkinScene>)_ps).ContainsKey(OpenTaiko.stageSongSelect.rChoosenSong.strScenePreset)) {

View File

@ -60,7 +60,7 @@ internal class CScore {
public STDGBVALUE<int> ;
public STHISTORY ;
public bool ;
public CDTX.E種別 ;
public CTja.E種別 ;
public double Bpm;
public double BaseBpm;
public double MinBpm;
@ -77,7 +77,7 @@ internal class CScore {
public int[] nレベル;
public int[] nクリア; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ
public int[] nスコアランク; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極
public CDTX.ELevelIcon[] nLevelIcon;
public CTja.ELevelIcon[] nLevelIcon;
// Tower lifes
public int nLife;
@ -243,7 +243,7 @@ internal class CScore {
this...7 = "";
this.. = false;
this.. = new ST譜面情報.STSKILL();
this.. = CDTX.E種別.DTX;
this.. = CTja.E種別.DTX;
this..Bpm = 120.0;
this..MinBpm = 120.0;
this..MaxBpm = 120.0;
@ -257,7 +257,7 @@ internal class CScore {
this..nハイスコア = new int[(int)Difficulty.Total];
this..strサブタイトル = "";
this..nレベル = new int[(int)Difficulty.Total] { -1, -1, -1, -1, -1, -1, -1 };
this..nLevelIcon = new CDTX.ELevelIcon[(int)Difficulty.Total] { CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone };
this..nLevelIcon = new CTja.ELevelIcon[(int)Difficulty.Total] { CTja.ELevelIcon.eNone, CTja.ELevelIcon.eNone, CTja.ELevelIcon.eNone, CTja.ELevelIcon.eNone, CTja.ELevelIcon.eNone, CTja.ELevelIcon.eNone, CTja.ELevelIcon.eNone };
this..nクリア = new int[5];
this..nスコアランク = new int[5];
this..nExamResult = new List<int[]> { };

View File

@ -56,17 +56,17 @@ internal class CSongListNode {
public CLocalizationData ldSubtitle = new CLocalizationData();
public string strMaker = "";
public string[] strNotesDesigner = new string[(int)Difficulty.Total] { "", "", "", "", "", "", "" };
public CDTX.ESide nSide = CDTX.ESide.eEx;
public CTja.ESide nSide = CTja.ESide.eEx;
public bool bExplicit = false;
public bool bMovie = false;
public int[] nLevel = new int[(int)Difficulty.Total] { 0, 0, 0, 0, 0, 0, 0 };
public CDTX.ELevelIcon[] nLevelIcon = new CDTX.ELevelIcon[(int)Difficulty.Total] { CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone, CDTX.ELevelIcon.eNone };
public CTja.ELevelIcon[] nLevelIcon = new CTja.ELevelIcon[(int)Difficulty.Total] { CTja.ELevelIcon.eNone, CTja.ELevelIcon.eNone, CTja.ELevelIcon.eNone, CTja.ELevelIcon.eNone, CTja.ELevelIcon.eNone, CTja.ELevelIcon.eNone, CTja.ELevelIcon.eNone };
// Branches
public bool bBranch = false;
// Dan
public List<CDTX.DanSongs> DanSongs;
public List<CTja.DanSongs> DanSongs;
public Dan_C[] Dan_C;
// Tower Lives

View File

@ -146,7 +146,7 @@ internal class CSongs管理 {
bool b = false;
for (int n = 0; n < (int)Difficulty.Total; n++) {
CDTX dtx = new CDTX(fileinfo.FullName, false, 1.0, 0, 1);
CTja dtx = new CTja(fileinfo.FullName, false, 1.0, 0, 1);
if (dtx.b譜面が存在する[n]) {
c曲リストード.difficultiesCount++;
c曲リストード.rParentNode = node親;
@ -183,9 +183,9 @@ internal class CSongs管理 {
c曲リストード.nTotalFloor = 0;
for (int i = 0; i < dtx.listChip.Count; i++) {
CDTX.CChip pChip = dtx.listChip[i];
CChip pChip = dtx.listChip[i];
if (pChip.n整数値_内部番号 > c曲リストード.nTotalFloor && pChip.nチャンネル番号 == 0x50) c曲リストード.nTotalFloor = pChip.n整数値_内部番号;
if (pChip.n整数値_内部番号 > c曲リストード.nTotalFloor && pChip.nChannelNo == 0x50) c曲リストード.nTotalFloor = pChip.n整数値_内部番号;
}
c曲リストード.nTotalFloor++;
@ -282,7 +282,7 @@ internal class CSongs管理 {
this.n検索された曲ード数++;
} else {
CDTX dtx = new CDTX(filePath, false, 1.0, 0, 0);
CTja dtx = new CTja(filePath, false, 1.0, 0, 0);
CSongListNode c曲リストード = new CSongListNode();
c曲リストード.nodeType = CSongListNode.ENodeType.SCORE;
@ -607,7 +607,7 @@ internal class CSongs管理 {
//-----------------
#endregion
private void LoadChartInfo(CSongListNode c曲リストード, CDTX cdtx, int i) {
private void LoadChartInfo(CSongListNode c曲リストード, CTja cdtx, int i) {
if ((c曲リストード.score[i] != null) && !c曲リストード.score[i].bSongDBにキャッシュがあった) {
#region [ DTX Cスコア. ]
//-----------------
@ -654,9 +654,9 @@ internal class CSongs管理 {
c曲リストード.score[i]..nTotalFloor = 0;
for (int k = 0; k < cdtx.listChip.Count; k++) {
CDTX.CChip pChip = cdtx.listChip[k];
CChip pChip = cdtx.listChip[k];
if (pChip.n整数値_内部番号 > c曲リストード.score[i]..nTotalFloor && pChip.nチャンネル番号 == 0x50)
if (pChip.n整数値_内部番号 > c曲リストード.score[i]..nTotalFloor && pChip.nChannelNo == 0x50)
c曲リストード.score[i]..nTotalFloor = pChip.n整数値_内部番号;
}
c曲リストード.score[i]..nTotalFloor++;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,354 @@
using FDK;
using static OpenTaiko.CTja;
namespace OpenTaiko;
internal class CChip : IComparable<CChip>, ICloneable {
public EScrollMode eScrollMode;
public bool bHit;
public bool bVisible = true;
public bool bHideBarLine = true;
public bool bProcessed = false;
public bool bShow;
public bool bShowRoll;
public bool bBranch = false;
public double dbChipSizeRatio = 1.0;
public double db実数値;
public double dbBPM;
public float fNow_Measure_s = 4.0f;//強制分岐のために追加.2020.04.21.akasoko26
public float fNow_Measure_m = 4.0f;//強制分岐のために追加.2020.04.21.akasoko26
public bool IsEndedBranching = false;//分岐が終わった時の連打譜面が非可視化になってしまうためフラグを追加.2020.04.21.akasoko26
public double dbSCROLL;
public double dbSCROLL_Y;
public ECourse nBranch;
public int nSenote;
public int nState;
public int nRollCount;
public int nBalloon;
public int nProcessTime;
public int nScrollDirection;
public int nDisplayPriority; //(特殊)現状連打との判断目的で使用
public ENoteState eNoteState;
public int nChannelNo;
public int VideoStartTimeMs;
public int nHorizontalChipDistance;
public int nNoteTipDistance_X;
public int nNoteTipDistance_Y;
public int n整数値;
public int n文字数 = 16;
public int n整数値_内部番号;
public int nOpacity = 255;
public int n発声位置;
public double nBranchCondition1_Professional;
public double nBranchCondition2_Master;
public EBranchConditionType eBranchCondition;
public double db発声位置; // 発声時刻を格納していた変数のうちのつをfloat型からdouble型に変更。(kairera0467)
public double fBMSCROLLTime;
public double fBMSCROLLTime_end;
public int n発声時刻ms;
public double n分岐時刻ms;
public double db発声時刻ms;
public int nNoteEndPosition;
public int nNoteEndTimems;
public int nーツ出現時刻ms;
public int nーツ移動開始時刻ms;
public int n分岐回数;
public int n連打音符State;
public int nLag; // 2011.2.1 yyagi
public double db発声時刻;
public double db判定終了時刻;//連打系音符で使用
public double dbProcess_Time;
public int nPlayerSide;
public bool bGOGOTIME = false; //2018.03.11 k1airera0467 ゴーゴータイム内のチップであるか
public int nListPosition;
public bool IsFixedSENote;
public bool IsHitted = false;
public bool IsMissed = false;
//EXTENDED COMMANDS
public int fCamTimeMs;
public string strCamEaseType;
public Easing.CalcType fCamMoveType;
public float fCamScrollStartX;
public float fCamScrollStartY;
public float fCamScrollEndX;
public float fCamScrollEndY;
public float fCamRotationStart;
public float fCamRotationEnd;
public float fCamZoomStart;
public float fCamZoomEnd;
public float fCamScaleStartX;
public float fCamScaleStartY;
public float fCamScaleEndX;
public float fCamScaleEndY;
public Color4 borderColor;
public int fObjTimeMs;
public string strObjName;
public string strObjEaseType;
public Easing.CalcType objCalcType;
public float fObjX;
public float fObjY;
public float fObjStart;
public float fObjEnd;
public CSongObject obj;
public string strTargetTxName;
public string strNewPath;
public string strConfigValue;
public double dbAnimInterval;
public int intFrame;
public EGameType eGameType;
//
public bool b自動再生音チャンネルである {
get {
int num = this.nChannelNo;
if ((((num != 1) && ((0x61 > num) || (num > 0x69))) && ((0x70 > num) || (num > 0x79))) && ((0x80 > num) || (num > 0x89))) {
return ((0x90 <= num) && (num <= 0x92));
}
return true;
}
}
public bool b演奏終了後も再生が続くチップである; // #32248 2013.10.14 yyagi
public CCounter RollDelay; // 18.9.22 AioiLight Add 連打時に赤くなるやつのタイマー
public CCounter RollInputTime; // 18.9.22 AioiLight Add 連打入力後、RollDelayが作動するまでのタイマー
public int RollEffectLevel; // 18.9.22 AioiLight Add 連打時に赤くなるやつの度合い
public CChip() {
this.nHorizontalChipDistance = 0;
}
public void t初期化() {
this.bBranch = false;
this.nChannelNo = 0;
this.n整数値 = 0; //整数値をList上の番号として用いる。
this.n整数値_内部番号 = 0;
this.db実数値 = 0.0;
this.n発声位置 = 0;
this.db発声位置 = 0.0D;
this.n発声時刻ms = 0;
this.db発声時刻ms = 0.0D;
this.fBMSCROLLTime = 0;
this.nNoteEndPosition = 0;
this.nNoteEndTimems = 0;
this.nDisplayPriority = 0;
this.nLag = -999;
this.b演奏終了後も再生が続くチップである = false;
this.nListPosition = 0; // Unused
this.dbChipSizeRatio = 1.0; // Unused
this.bHit = false;
this.IsMissed = false;
this.bVisible = true;
this.nOpacity = 0xff;
this.nHorizontalChipDistance = 0;
this.nNoteTipDistance_X = 0;
this.nNoteTipDistance_Y = 0;
this.dbBPM = 120.0;
this.fNow_Measure_m = 4.0f;
this.fNow_Measure_s = 4.0f;
this.nScrollDirection = 0;
this.dbSCROLL = 1.0;
this.dbSCROLL_Y = 0.0f;
}
public override string ToString() {
//2016.10.07 kairera0467 近日中に再編成予定
string[] chToStr =
{
//システム
"??", "バックコーラス", "小節長変更", "BPM変更", "??", "??", "??", "??",
"BPM変更(拡張)", "??", "??", "??", "??", "??", "??", "??",
//太鼓1P(移動予定)
"??", "ドン", "カツ", "ドン(大)", "カツ(大)", "連打", "連打(大)", "ふうせん連打",
"連打終点", "芋", "ドン(手)", "カッ(手)", "Mine", "??", "??", "AD-LIB",
//太鼓予備
"??", "??", "??", "??", "??", "??", "??", "??",
"??", "??", "??", "??", "??", "??", "??", "??",
//太鼓予備
"??", "??", "??", "??", "??", "??", "??", "??",
"??", "??", "??", "??", "??", "??", "??", "??",
//太鼓予備
"??", "??", "??", "??", "??", "??", "??", "??",
"??", "??", "??", "??", "??", "??", "??", "??",
//システム
"小節線", "拍線", "??", "??", "AVI", "??", "??", "??",
"??", "??", "??", "??", "??", "??", "??", "??",
//システム(移動予定)
"SCROLL", "DELAY", "ゴーゴータイム開始", "ゴーゴータイム終了", "カメラ移動開始(縦)", "カメラ移動終了(縦)", "カメラ移動開始(横)", "カメラ移動終了(横)",
"カメラズーム開始", "カメラズーム終了", "カメラ回転開始", "カメラ回転終了", "カメラスケーリング開始(横)", "カメラスケーリング終了(横)", "カメラスケーリング開始(縦)", "カメラスケーリング終了(縦)",
"ボーダーカラー変更", "??", "??", "??", "??", "??", "??", "??",
"??", "??", "??", "??", "??", "??", "??", "??",
"??", "??", "??", "??", "??", "??", "??", "??",
"??", "??", "??", "??", "??", "??", "??", "??",
//太鼓1P、システム(現行)
"??", "??", "??", "太鼓_赤", "太鼓_青", "太鼓_赤(大)", "太鼓_青(大)", "太鼓_黄",
"太鼓_黄(大)", "太鼓_風船", "太鼓_連打末端", "太鼓_芋", "??", "SCROLL", "ゴーゴータイム開始", "ゴーゴータイム終了",
"??", "??", "??", "??", "??", "??", "??", "??",
"??", "??", "??", "??", "??", "??", "??", "太鼓 AD-LIB",
"??", "??", "??", "??", "??", "??", "??", "??",
"??", "??", "??", "??", "??", "??", "??", "??",
"??", "??", "??", "??", "0xC4", "0xC5", "0xC6", "??",
"??", "??", "0xCA", "??", "??", "??", "??", "0xCF",
//システム(現行)
"0xD0", "??", "??", "??", "??", "??", "??", "??",
"??", "??", "ミキサー追加", "ミキサー削除", "DELAY", "譜面分岐リセット", "譜面分岐アニメ", "譜面分岐内部処理",
//システム(現行)
"小節線ON/OFF", "分岐固定", "判定枠移動", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"0xF0", "歌詞", "??", "SUDDEN", "??", "??", "??", "??",
"??", "??", "??", "??", "??", "??", "??", "??", "譜面終了",
// Extra notes
"KaDon", "??", "??", "??", "??", "??", "??", "??",
"??", "??", "??", "??", "??", "??", "??", "??",
};
return string.Format("CChip: 位置:{0:D4}.{1:D3}, 時刻{2:D6}, Ch:{3:X2}({4}), Pn:{5}({11})(内部{6}), Pd:{7}, Sz:{8}, BMScroll:{9}, Auto:{10}, コース:{11}",
this.n発声位置 / 384, this.n発声位置 % 384,
this.n発声時刻ms,
this.nChannelNo, chToStr[this.nChannelNo],
this.n整数値, this.n整数値_内部番号,
this.db実数値,
this.dbChipSizeRatio,
this.fBMSCROLLTime,
this.b自動再生音チャンネルである,
this.nBranch,
CTja.tZZ(this.n整数値));
}
/// <summary>
/// チップの再生長を取得する。現状、WAVチップとBGAチップでのみ使用可能。
/// </summary>
/// <returns>再生長(ms)</returns>
public int GetDuration() {
int nDuration = 0;
if (this.nChannelNo == 0x01) // WAV
{
CTja.CWAV wc;
OpenTaiko.TJA.listWAV.TryGetValue(this.n整数値_内部番号, out wc);
if (wc == null) {
nDuration = 0;
} else {
nDuration = (wc.rSound[0] == null) ? 0 : wc.rSound[0].TotalPlayTime;
}
} else if (this.nChannelNo == 0x54) // AVI
{
CVideoDecoder wc;
OpenTaiko.TJA.listVD.TryGetValue(this.n整数値_内部番号, out wc);
if (wc == null) {
nDuration = 0;
} else {
nDuration = (int)(wc.Duration * 1000);
}
}
double _db再生速度 = OpenTaiko.TJA.db再生速度;
return (int)(nDuration / _db再生速度);
}
#region [ IComparable ]
//-----------------
private static readonly byte[] n優先度 = new byte[] {
5, 5, 3, 7, 5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, //0x00
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x10
7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, //0x20
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x30
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x40
9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x50
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x60
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x70
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x80
5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 9, 9, //0x90
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0xA0
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0xB0
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0xC0
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 4, 4, //0xD0
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0xE0
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0xF0
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x100
};
public int CompareTo(CChip other) {
// まずは位置で比較。
//BGMチップだけ発声位置
//if( this.nチャンネル番号 == 0x01 || this.nチャンネル番号 == 0x02 )
//{
// if( this.n発声位置 < other.n発声位置 )
// return -1;
// if( this.n発声位置 > other.n発声位置 )
// return 1;
//}
//if( this.n発声位置 < other.n発声位置 )
// return -1;
//if( this.n発声位置 > other.n発声位置 )
// return 1;
//譜面解析メソッドV4では発声時刻msで比較する。
var n発声時刻msCompareToResult = 0;
n発声時刻msCompareToResult = this.n発声時刻ms.CompareTo(other.n発声時刻ms);
if (n発声時刻msCompareToResult != 0) {
return n発声時刻msCompareToResult;
}
n発声時刻msCompareToResult = this.db発声時刻ms.CompareTo(other.db発声時刻ms);
if (n発声時刻msCompareToResult != 0) {
return n発声時刻msCompareToResult;
}
// 位置が同じなら優先度で比較。
return n優先度[this.nChannelNo].CompareTo(n優先度[other.nChannelNo]);
}
//-----------------
#endregion
/// <summary>
/// shallow copy。
/// </summary>
/// <returns></returns>
public object Clone() {
return MemberwiseClone();
}
}

View File

@ -4,7 +4,7 @@ using System.Net;
using System.Text.RegularExpressions;
using FDK;
using SkiaSharp;
using static OpenTaiko.CDTX;
using static OpenTaiko.CTja;
namespace OpenTaiko;

View File

@ -1249,7 +1249,7 @@ class TextureLoader {
#endregion
if (OpenTaiko.ConfigIni.PreAssetsLoading) {
foreach (var act in OpenTaiko.app.listトップレベルActivities) {
foreach (var act in OpenTaiko.app.listTopLevelActivities) {
act.CreateManagedResource();
act.CreateUnmanagedResource();
}
@ -2268,7 +2268,7 @@ class TextureLoader {
//if (TJAPlayer3.ConfigIni.PreAssetsLoading)
{
foreach (var act in OpenTaiko.app.listトップレベルActivities) {
foreach (var act in OpenTaiko.app.listTopLevelActivities) {
act.ReleaseManagedResource();
act.ReleaseUnmanagedResource();
}

View File

@ -255,7 +255,7 @@ class CActSelect段位リスト : CStage {
public int[] n曲難易度;
public int[] n曲レベル;
public CSongListNode.ENodeType eード種別;
public List<CDTX.DanSongs> List_DanSongs;
public List<CTja.DanSongs> List_DanSongs;
public CTexture txBarCenter;
public CTexture txDanPlate;

View File

@ -35,7 +35,6 @@ internal class CActSelectPopupMenu : CActivity {
}
public virtual void tActivatePopupMenu(EInstrumentPad einst) {
nItemSelecting = -1; // #24757 2011.4.1 yyagi: Clear sorting status in each stating menu.
this.eInst = einst;
this.bIsActivePopupMenu = true;
this.bIsSelectingIntItem = false;
this.bGotoDetailConfig = false;
@ -242,20 +241,13 @@ internal class CActSelectPopupMenu : CActivity {
#region [ : ]
// E楽器パート eInst = E楽器パート.UNKNOWN;
ESortAction eAction = ESortAction.END;
if (OpenTaiko.Pad.bPressed(EInstrumentPad.Guitar, EPad.Decide)) {
eInst = EInstrumentPad.Guitar;
eAction = ESortAction.Decide;
} else if (OpenTaiko.Pad.bPressed(EInstrumentPad.Bass, EPad.Decide)) {
eInst = EInstrumentPad.Bass;
eAction = ESortAction.Decide;
} else if (
OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.Decide) // #24756 2011.4.1 yyagi: Add condition "Drum-Decide" to enable CY in Sort Menu.
if (
OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.Decide)
|| OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RD)
|| OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LC)
|| OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.LRed)
|| OpenTaiko.Pad.bPressed(EInstrumentPad.Drums, EPad.RRed)
|| (OpenTaiko.ConfigIni.bEnterIsNotUsedInKeyAssignments && OpenTaiko.InputManager.Keyboard.KeyPressed((int)SlimDXKeys.Key.Return))) {
eInst = EInstrumentPad.Drums;
eAction = ESortAction.Decide;
}
if (eAction == ESortAction.Decide) // 決定
@ -371,7 +363,6 @@ internal class CActSelectPopupMenu : CActivity {
protected bool bEsc有効;
internal int n現在の選択行;
internal EInstrumentPad eInst = EInstrumentPad.Unknown;
//private CTexture txPopupMenuBackground;
//private CTexture txCursor;

View File

@ -1757,7 +1757,7 @@ internal class CActSelect曲リスト : CActivity {
if (diff == 5) {
var _sidet = OpenTaiko.Tx.SongSelect_Tower_Side;
if (_sidet != null) {
var _side = (OpenTaiko.stageSongSelect.rNowSelectedSong.nSide == CDTX.ESide.eNormal) ? 0 : 1;
var _side = (OpenTaiko.stageSongSelect.rNowSelectedSong.nSide == CTja.ESide.eNormal) ? 0 : 1;
var _sc = _sidet.sz画像サイズ.Width / 2;
_sidet.t2D描画(
OpenTaiko.Skin.SongSelect_Tower_Side[0],
@ -2261,7 +2261,7 @@ internal class CActSelect曲リスト : CActivity {
public bool BoxCharaChanged;
public int[] ar難易度;
public CDTX.ELevelIcon[] nLevelIcon;
public CTja.ELevelIcon[] nLevelIcon;
public bool[] b分岐;
public string strジャンル;
public string strサブタイトル;
@ -2955,9 +2955,9 @@ internal class CActSelect曲リスト : CActivity {
}
}
public void tDisplayLevelIcon(int x, int y, CDTX.ELevelIcon icon, CTexture iconTex = null) {
public void tDisplayLevelIcon(int x, int y, CTja.ELevelIcon icon, CTexture iconTex = null) {
var _tex = (iconTex != null) ? iconTex : OpenTaiko.Tx.SongSelect_Level_Number_Big_Icon;
if (icon != CDTX.ELevelIcon.eNone &&
if (icon != CTja.ELevelIcon.eNone &&
_tex != null) {
var __width = _tex.sz画像サイズ.Width / 3;
var __height = _tex.sz画像サイズ.Height;
@ -2970,7 +2970,7 @@ internal class CActSelect曲リスト : CActivity {
}
}
private void t小文字表示(int x, int y, int num, int diff, CDTX.ELevelIcon icon) {
private void t小文字表示(int x, int y, int num, int diff, CTja.ELevelIcon icon) {
int[] nums = CConversion.SeparateDigits(num);
float[] icon_coords = new float[2] { -999, -999 };
for (int j = 0; j < nums.Length; j++) {

View File

@ -527,7 +527,7 @@ internal class CActSelect難易度選択画面 : CActivity {
}
private STレベル数字[] st小文字位置 = new STレベル数字[10];
private void t小文字表示(int num, float x, float y, int diff, CDTX.ELevelIcon icon) {
private void t小文字表示(int num, float x, float y, int diff, CTja.ELevelIcon icon) {
int[] nums = CConversion.SeparateDigits(num);
float[] icon_coords = new float[2] { -999, -999 };
for (int j = 0; j < nums.Length; j++) {

View File

@ -340,32 +340,32 @@ internal class CStage曲読み込み : CStage {
TimeSpan span;
str = OpenTaiko.stageSongSelect.r確定されたスコア..;
if ((OpenTaiko.DTX != null) && OpenTaiko.DTX.IsActivated)
OpenTaiko.DTX.DeActivate();
if ((OpenTaiko.TJA != null) && OpenTaiko.TJA.IsActivated)
OpenTaiko.TJA.DeActivate();
//if( CDTXMania.DTX == null )
{
OpenTaiko.DTX = new CDTX(str, false, 1.0, 0, 0, 0, true, OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0]);
OpenTaiko.TJA = new CTja(str, false, 1.0, 0, 0, 0, true, OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0]);
if (OpenTaiko.ConfigIni.nPlayerCount >= 2)
OpenTaiko.DTX_2P = new CDTX(str, false, 1.0, 0, 0, 1, true, OpenTaiko.stageSongSelect.nChoosenSongDifficulty[1]);
OpenTaiko.TJA_2P = new CTja(str, false, 1.0, 0, 0, 1, true, OpenTaiko.stageSongSelect.nChoosenSongDifficulty[1]);
if (OpenTaiko.ConfigIni.nPlayerCount >= 3)
OpenTaiko.DTX_3P = new CDTX(str, false, 1.0, 0, 0, 2, true, OpenTaiko.stageSongSelect.nChoosenSongDifficulty[2]);
OpenTaiko.TJA_3P = new CTja(str, false, 1.0, 0, 0, 2, true, OpenTaiko.stageSongSelect.nChoosenSongDifficulty[2]);
if (OpenTaiko.ConfigIni.nPlayerCount >= 4)
OpenTaiko.DTX_4P = new CDTX(str, false, 1.0, 0, 0, 3, true, OpenTaiko.stageSongSelect.nChoosenSongDifficulty[3]);
OpenTaiko.TJA_4P = new CTja(str, false, 1.0, 0, 0, 3, true, OpenTaiko.stageSongSelect.nChoosenSongDifficulty[3]);
if (OpenTaiko.ConfigIni.nPlayerCount >= 5)
OpenTaiko.DTX_5P = new CDTX(str, false, 1.0, 0, 0, 4, true, OpenTaiko.stageSongSelect.nChoosenSongDifficulty[4]);
OpenTaiko.TJA_5P = new CTja(str, false, 1.0, 0, 0, 4, true, OpenTaiko.stageSongSelect.nChoosenSongDifficulty[4]);
if (OpenTaiko.DTX.listErrors.Count != 0) {
if (OpenTaiko.TJA.listErrors.Count != 0) {
string message = "";
foreach (var text in OpenTaiko.DTX.listErrors) {
foreach (var text in OpenTaiko.TJA.listErrors) {
OpenTaiko.VisualLogManager.PushCard(CVisualLogManager.ELogCardType.LogError, text);
//System.Windows.Forms.MessageBox.Show(text, "譜面にエラーが見つかりました");
}
}
Trace.TraceInformation("---- Song information -----------------");
Trace.TraceInformation("TITLE: {0}", OpenTaiko.DTX.TITLE.GetString(""));
Trace.TraceInformation("FILE: {0}", OpenTaiko.DTX.strファイル名の絶対パス);
Trace.TraceInformation("TITLE: {0}", OpenTaiko.TJA.TITLE.GetString(""));
Trace.TraceInformation("FILE: {0}", OpenTaiko.TJA.strファイル名の絶対パス);
Trace.TraceInformation("---------------------------");
span = (TimeSpan)(DateTime.Now - timeBeginLoad);
@ -373,25 +373,25 @@ internal class CStage曲読み込み : CStage {
// 段位認定モード用。
#region [dan setup]
if (OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Dan && OpenTaiko.DTX.List_DanSongs != null) {
if (OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Dan && OpenTaiko.TJA.List_DanSongs != null) {
var titleForeColor = OpenTaiko.Skin.Game_DanC_Title_ForeColor;
var titleBackColor = OpenTaiko.Skin.Game_DanC_Title_BackColor;
var subtitleForeColor = OpenTaiko.Skin.Game_DanC_SubTitle_ForeColor;
var subtitleBackColor = OpenTaiko.Skin.Game_DanC_SubTitle_BackColor;
for (int i = 0; i < OpenTaiko.DTX.List_DanSongs.Count; i++) {
if (!string.IsNullOrEmpty(OpenTaiko.DTX.List_DanSongs[i].Title)) {
using (var bmpSongTitle = pfDanTitle.DrawText(OpenTaiko.DTX.List_DanSongs[i].Title, titleForeColor, titleBackColor, null, 30)) {
OpenTaiko.DTX.List_DanSongs[i].TitleTex = OpenTaiko.tテクスチャの生成(bmpSongTitle, false);
OpenTaiko.DTX.List_DanSongs[i].TitleTex.vcScaleRatio.X = OpenTaiko.GetSongNameXScaling(ref OpenTaiko.DTX.List_DanSongs[i].TitleTex, OpenTaiko.Skin.Game_DanC_Title_MaxWidth);
for (int i = 0; i < OpenTaiko.TJA.List_DanSongs.Count; i++) {
if (!string.IsNullOrEmpty(OpenTaiko.TJA.List_DanSongs[i].Title)) {
using (var bmpSongTitle = pfDanTitle.DrawText(OpenTaiko.TJA.List_DanSongs[i].Title, titleForeColor, titleBackColor, null, 30)) {
OpenTaiko.TJA.List_DanSongs[i].TitleTex = OpenTaiko.tテクスチャの生成(bmpSongTitle, false);
OpenTaiko.TJA.List_DanSongs[i].TitleTex.vcScaleRatio.X = OpenTaiko.GetSongNameXScaling(ref OpenTaiko.TJA.List_DanSongs[i].TitleTex, OpenTaiko.Skin.Game_DanC_Title_MaxWidth);
}
}
if (!string.IsNullOrEmpty(OpenTaiko.DTX.List_DanSongs[i].SubTitle)) {
using (var bmpSongSubTitle = pfDanSubTitle.DrawText(OpenTaiko.DTX.List_DanSongs[i].SubTitle, subtitleForeColor, subtitleBackColor, null, 30)) {
OpenTaiko.DTX.List_DanSongs[i].SubTitleTex = OpenTaiko.tテクスチャの生成(bmpSongSubTitle, false);
OpenTaiko.DTX.List_DanSongs[i].SubTitleTex.vcScaleRatio.X = OpenTaiko.GetSongNameXScaling(ref OpenTaiko.DTX.List_DanSongs[i].SubTitleTex, OpenTaiko.Skin.Game_DanC_SubTitle_MaxWidth);
if (!string.IsNullOrEmpty(OpenTaiko.TJA.List_DanSongs[i].SubTitle)) {
using (var bmpSongSubTitle = pfDanSubTitle.DrawText(OpenTaiko.TJA.List_DanSongs[i].SubTitle, subtitleForeColor, subtitleBackColor, null, 30)) {
OpenTaiko.TJA.List_DanSongs[i].SubTitleTex = OpenTaiko.tテクスチャの生成(bmpSongSubTitle, false);
OpenTaiko.TJA.List_DanSongs[i].SubTitleTex.vcScaleRatio.X = OpenTaiko.GetSongNameXScaling(ref OpenTaiko.TJA.List_DanSongs[i].SubTitleTex, OpenTaiko.Skin.Game_DanC_SubTitle_MaxWidth);
}
}
@ -414,23 +414,23 @@ internal class CStage曲読み込み : CStage {
case CStage.EPhase.SongLoading_LoadWAVFile: {
int looptime = (OpenTaiko.ConfigIni.bEnableVSync) ? 3 : 1; // VSyncWait=ON時は1frame(1/60s)あたり3つ読むようにする
for (int i = 0; i < looptime && nWAVcount <= OpenTaiko.DTX.listWAV.Count; i++) {
if (OpenTaiko.DTX.listWAV[nWAVcount].listこのWAVを使用するチャンネル番号の集合.Count > 0) // #28674 2012.5.8 yyagi
for (int i = 0; i < looptime && nWAVcount <= OpenTaiko.TJA.listWAV.Count; i++) {
if (OpenTaiko.TJA.listWAV[nWAVcount].listこのWAVを使用するチャンネル番号の集合.Count > 0) // #28674 2012.5.8 yyagi
{
OpenTaiko.DTX.tWAVの読み込み(OpenTaiko.DTX.listWAV[nWAVcount]);
OpenTaiko.TJA.tWAVの読み込み(OpenTaiko.TJA.listWAV[nWAVcount]);
}
nWAVcount++;
}
if (nWAVcount > OpenTaiko.DTX.listWAV.Count) {
if (nWAVcount > OpenTaiko.TJA.listWAV.Count) {
TimeSpan span = (TimeSpan)(DateTime.Now - timeBeginLoadWAV);
Trace.TraceInformation("Song loading time({0,4}): {1}", OpenTaiko.DTX.listWAV.Count, span.ToString());
Trace.TraceInformation("Song loading time({0,4}): {1}", OpenTaiko.TJA.listWAV.Count, span.ToString());
timeBeginLoadWAV = DateTime.Now;
if (OpenTaiko.ConfigIni.bDynamicBassMixerManagement) {
OpenTaiko.DTX.PlanToAddMixerChannel();
OpenTaiko.TJA.PlanToAddMixerChannel();
}
var _dtx = new CDTX[5] { OpenTaiko.DTX, OpenTaiko.DTX_2P, OpenTaiko.DTX_3P, OpenTaiko.DTX_4P, OpenTaiko.DTX_5P };
var _dtx = new CTja[5] { OpenTaiko.TJA, OpenTaiko.TJA_2P, OpenTaiko.TJA_3P, OpenTaiko.TJA_4P, OpenTaiko.TJA_5P };
for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) {
_dtx[i]?.tRandomizeTaikoChips(i);
@ -452,7 +452,7 @@ internal class CStage曲読み込み : CStage {
DateTime timeBeginLoadBMPAVI = DateTime.Now;
if (OpenTaiko.ConfigIni.bEnableAVI)
OpenTaiko.DTX.tAVIの読み込み();
OpenTaiko.TJA.tAVIの読み込み();
span = (TimeSpan)(DateTime.Now - timeBeginLoadBMPAVI);
span = (TimeSpan)(DateTime.Now - timeBeginLoad);

View File

@ -0,0 +1,74 @@
using FDK;
namespace OpenTaiko;
internal class CActTaikoScrollSpeed : CActivity {
// Properties
public double[] dbConfigScrollSpeed = new double[5];
// Constructor
public CActTaikoScrollSpeed() {
base.IsDeActivated = true;
}
// CActivity implementation
public override void Activate() {
for (int i = 0; i < 5; i++) {
this.dbConfigScrollSpeed[i] = (double)OpenTaiko.ConfigIni.nScrollSpeed[OpenTaiko.GetActualPlayer(i)];
this.nScrollExclusiveTimer[i] = -1;
}
base.Activate();
}
public override unsafe int Draw() {
if (!base.IsDeActivated) {
if (base.IsFirstDraw) {
for (int i = 0; i < 5; i++) {
this.nScrollExclusiveTimer[i] = (long)(SoundManager.PlayTimer.NowTime * OpenTaiko.ConfigIni.SongPlaybackSpeed);
}
base.IsFirstDraw = false;
}
long nNowTime = SoundManager.PlayTimer.NowTime;
for (int i = 0; i < 5; i++) {
double dbScrollSpeed = (double)OpenTaiko.ConfigIni.nScrollSpeed[OpenTaiko.GetActualPlayer(i)];
if (nNowTime < this.nScrollExclusiveTimer[i]) {
this.nScrollExclusiveTimer[i] = nNowTime;
}
while ((nNowTime - this.nScrollExclusiveTimer[i]) >= 2) // 1 loop per 2 ms
{
if (this.dbConfigScrollSpeed[i] < dbScrollSpeed) {
this.dbConfigScrollSpeed[i] += 0.012;
if (this.dbConfigScrollSpeed[i] > dbScrollSpeed) {
this.dbConfigScrollSpeed[i] = dbScrollSpeed;
}
} else if (this.dbConfigScrollSpeed[i] > dbScrollSpeed) {
this.dbConfigScrollSpeed[i] -= 0.012;
if (this.dbConfigScrollSpeed[i] < dbScrollSpeed) {
this.dbConfigScrollSpeed[i] = dbScrollSpeed;
}
}
this.nScrollExclusiveTimer[i] += 2;
}
}
}
return 0;
}
#region [ private ]
//-----------------
private long[] nScrollExclusiveTimer = new long[5];
//-----------------
#endregion
}

View File

@ -6,7 +6,7 @@ namespace OpenTaiko;
internal class CAct演奏Combo共通 : CActivity {
// Properties
public STCOMBO n現在のコンボ数;
public STCOMBO nCurrentCombo;
public struct STCOMBO {
public CAct演奏Combo共通 act;
@ -141,7 +141,7 @@ internal class CAct演奏Combo共通 : CActivity {
//protected CTexture txCOMBO太鼓;
//protected CTexture txCOMBO太鼓_でかいやつ;
//protected CTexture txコンボラメ;
public CCounter[] ctコンボ加算;
public CCounter[] ctComboAddCounter;
public CCounter ctコンボラメ;
protected float[,] nコンボ拡大率_座標 = new float[,]{
@ -323,7 +323,7 @@ internal class CAct演奏Combo共通 : CActivity {
int[] n位の数 = new int[10]; // 表示は10桁もあれば足りるだろう
this.ctコンボラメ.TickLoop();
this.ctコンボ加算[nPlayer].Tick();
this.ctComboAddCounter[nPlayer].Tick();
#region [ nCombo値を桁数ごとに n位の数[] nCombo値=125 n位の数 = { 5,2,1,0,0,0,0,0,0,0 } ]
//-----------------
@ -454,7 +454,7 @@ internal class CAct演奏Combo共通 : CActivity {
if (n桁数 <= 1) {
if (OpenTaiko.Tx.Taiko_Combo[0] != null) {
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale[this.ctコンボ加算[nPlayer].CurrentValue];
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale[this.ctComboAddCounter[nPlayer].CurrentValue];
OpenTaiko.Tx.Taiko_Combo[0].vcScaleRatio.Y = OpenTaiko.Skin.Game_Taiko_Combo_Scale[0] + yScalling;
OpenTaiko.Tx.Taiko_Combo[0].vcScaleRatio.X = OpenTaiko.Skin.Game_Taiko_Combo_Scale[0];
OpenTaiko.Tx.Taiko_Combo[0].t2D拡大率考慮下中心基準描画(rightX, combo_y, new Rectangle(n位の数[i] * OpenTaiko.Skin.Game_Taiko_Combo_Size[0], 0, OpenTaiko.Skin.Game_Taiko_Combo_Size[0], OpenTaiko.Skin.Game_Taiko_Combo_Size[1]));
@ -463,14 +463,14 @@ internal class CAct演奏Combo共通 : CActivity {
//int[] arComboX = { CDTXMania.Skin.Game_Taiko_Combo_X[nPlayer] + CDTXMania.Skin.Game_Taiko_Combo_Padding[0], CDTXMania.Skin.Game_Taiko_Combo_X[nPlayer] - CDTXMania.Skin.Game_Taiko_Combo_Padding[0] };
if (nCombo値 < 50) {
if (OpenTaiko.Tx.Taiko_Combo[0] != null) {
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale[this.ctコンボ加算[nPlayer].CurrentValue];
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale[this.ctComboAddCounter[nPlayer].CurrentValue];
OpenTaiko.Tx.Taiko_Combo[0].vcScaleRatio.Y = OpenTaiko.Skin.Game_Taiko_Combo_Scale[0] + yScalling;
OpenTaiko.Tx.Taiko_Combo[0].vcScaleRatio.X = OpenTaiko.Skin.Game_Taiko_Combo_Scale[0];
OpenTaiko.Tx.Taiko_Combo[0].t2D拡大率考慮下中心基準描画(rightX - OpenTaiko.Skin.Game_Taiko_Combo_Padding[0] * i, combo_y, new Rectangle(n位の数[i] * OpenTaiko.Skin.Game_Taiko_Combo_Size[0], 0, OpenTaiko.Skin.Game_Taiko_Combo_Size[0], OpenTaiko.Skin.Game_Taiko_Combo_Size[1]));
}
} else {
if (OpenTaiko.Tx.Taiko_Combo[2] != null) {
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale[this.ctコンボ加算[nPlayer].CurrentValue];
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale[this.ctComboAddCounter[nPlayer].CurrentValue];
OpenTaiko.Tx.Taiko_Combo[2].vcScaleRatio.Y = OpenTaiko.Skin.Game_Taiko_Combo_Scale[0] + yScalling;
OpenTaiko.Tx.Taiko_Combo[2].vcScaleRatio.X = OpenTaiko.Skin.Game_Taiko_Combo_Scale[0];
OpenTaiko.Tx.Taiko_Combo[2].t2D拡大率考慮下中心基準描画(rightX - OpenTaiko.Skin.Game_Taiko_Combo_Padding[0] * i, combo_y, new Rectangle(n位の数[i] * OpenTaiko.Skin.Game_Taiko_Combo_Size[0], 0, OpenTaiko.Skin.Game_Taiko_Combo_Size[0], OpenTaiko.Skin.Game_Taiko_Combo_Size[1]));
@ -480,32 +480,32 @@ internal class CAct演奏Combo共通 : CActivity {
}
} else if (n桁数 == 3) {
if (nCombo値 >= 300 && OpenTaiko.Tx.Taiko_Combo[3] != null) {
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale_Ex[this.ctコンボ加算[nPlayer].CurrentValue, 0];
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale_Ex[this.ctComboAddCounter[nPlayer].CurrentValue, 0];
OpenTaiko.Tx.Taiko_Combo[3].vcScaleRatio.Y = OpenTaiko.Skin.Game_Taiko_Combo_Scale[1] + yScalling;
OpenTaiko.Tx.Taiko_Combo[3].vcScaleRatio.X = OpenTaiko.Skin.Game_Taiko_Combo_Scale[1];
var yJumping = OpenTaiko.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].CurrentValue, 1] : 0;
var yJumping = OpenTaiko.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctComboAddCounter[nPlayer].CurrentValue, 1] : 0;
OpenTaiko.Tx.Taiko_Combo[3].t2D拡大率考慮下中心基準描画(rightX - OpenTaiko.Skin.Game_Taiko_Combo_Padding[1] * i, combo_ex_y + yJumping, new Rectangle(n位の数[i] * OpenTaiko.Skin.Game_Taiko_Combo_Size_Ex[0], 0, OpenTaiko.Skin.Game_Taiko_Combo_Size_Ex[0], OpenTaiko.Skin.Game_Taiko_Combo_Size_Ex[1]));
} else if (OpenTaiko.Tx.Taiko_Combo[1] != null) {
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale_Ex[this.ctコンボ加算[nPlayer].CurrentValue, 0];
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale_Ex[this.ctComboAddCounter[nPlayer].CurrentValue, 0];
OpenTaiko.Tx.Taiko_Combo[1].vcScaleRatio.Y = OpenTaiko.Skin.Game_Taiko_Combo_Scale[1] + yScalling;
OpenTaiko.Tx.Taiko_Combo[1].vcScaleRatio.X = OpenTaiko.Skin.Game_Taiko_Combo_Scale[1];
var yJumping = OpenTaiko.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].CurrentValue, 1] : 0;
var yJumping = OpenTaiko.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctComboAddCounter[nPlayer].CurrentValue, 1] : 0;
OpenTaiko.Tx.Taiko_Combo[1].t2D拡大率考慮下中心基準描画(rightX - OpenTaiko.Skin.Game_Taiko_Combo_Padding[1] * i, combo_ex_y + yJumping, new Rectangle(n位の数[i] * OpenTaiko.Skin.Game_Taiko_Combo_Size_Ex[0], 0, OpenTaiko.Skin.Game_Taiko_Combo_Size_Ex[0], OpenTaiko.Skin.Game_Taiko_Combo_Size_Ex[1]));
}
if (!OpenTaiko.ConfigIni.SimpleMode) showComboEffect(1, i, rightX, combo_ex_y, nPlayer);
} else {
if (nCombo値 >= 300 && OpenTaiko.Tx.Taiko_Combo[3] != null) {
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale_Ex[this.ctコンボ加算[nPlayer].CurrentValue, 0];
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale_Ex[this.ctComboAddCounter[nPlayer].CurrentValue, 0];
OpenTaiko.Tx.Taiko_Combo[3].vcScaleRatio.Y = 1.0f + yScalling;
OpenTaiko.Tx.Taiko_Combo[3].vcScaleRatio.X = OpenTaiko.Skin.Game_Taiko_Combo_Scale[2];
var yJumping = OpenTaiko.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].CurrentValue, 1] : 0;
var yJumping = OpenTaiko.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctComboAddCounter[nPlayer].CurrentValue, 1] : 0;
OpenTaiko.Tx.Taiko_Combo[3].t2D拡大率考慮下中心基準描画(rightX - OpenTaiko.Skin.Game_Taiko_Combo_Padding[2] * i, combo_ex_y + yJumping, new Rectangle(n位の数[i] * OpenTaiko.Skin.Game_Taiko_Combo_Size_Ex[0], 0, OpenTaiko.Skin.Game_Taiko_Combo_Size_Ex[0], OpenTaiko.Skin.Game_Taiko_Combo_Size_Ex[1]));
} else if (OpenTaiko.Tx.Taiko_Combo[1] != null) {
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale_Ex[this.ctコンボ加算[nPlayer].CurrentValue, 0];
var yScalling = OpenTaiko.ConfigIni.SimpleMode ? 0 : ComboScale_Ex[this.ctComboAddCounter[nPlayer].CurrentValue, 0];
OpenTaiko.Tx.Taiko_Combo[1].vcScaleRatio.Y = 1.0f + yScalling;
OpenTaiko.Tx.Taiko_Combo[1].vcScaleRatio.X = OpenTaiko.Skin.Game_Taiko_Combo_Scale[2];
var yJumping = OpenTaiko.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].CurrentValue, 1] : 0;
var yJumping = OpenTaiko.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctComboAddCounter[nPlayer].CurrentValue, 1] : 0;
OpenTaiko.Tx.Taiko_Combo[1].t2D拡大率考慮下中心基準描画(rightX - OpenTaiko.Skin.Game_Taiko_Combo_Padding[2] * i, combo_ex_y + yJumping, new Rectangle(n位の数[i] * OpenTaiko.Skin.Game_Taiko_Combo_Size_Ex[0], 0, OpenTaiko.Skin.Game_Taiko_Combo_Size_Ex[0], OpenTaiko.Skin.Game_Taiko_Combo_Size_Ex[1]));
}
@ -521,10 +521,10 @@ internal class CAct演奏Combo共通 : CActivity {
// CActivity 実装
public override void Activate() {
this.n現在のコンボ数 = new STCOMBO() { act = this };
this.n現在のコンボ数. = new int[5];
this.nCurrentCombo = new STCOMBO() { act = this };
this.nCurrentCombo. = new int[5];
this.status = new CSTATUS();
this.ctコンボ加算 = new CCounter[5];
this.ctComboAddCounter = new CCounter[5];
for (int i = 0; i < 5; i++) {
this.status[i].e現在のモード = EMode.;
this.status[i].nCOMBO値 = 0;
@ -534,7 +534,7 @@ internal class CAct演奏Combo共通 : CActivity {
this.status[i].nジャンプインデックス値 = 99999;
this.status[i].n前回の時刻_ジャンプ用 = -1;
this.status[i].nコンボが切れた時刻 = -1;
this.ctコンボ加算[i] = new CCounter(0, 12, 12, OpenTaiko.Timer);
this.ctComboAddCounter[i] = new CCounter(0, 12, 12, OpenTaiko.Timer);
}
this.ctコンボラメ = new CCounter(0, 35, 16, OpenTaiko.Timer);
base.Activate();

View File

@ -10,7 +10,7 @@ internal class CAct演奏Combo音声 : CActivity {
}
// メソッド
public void t再生(int nCombo, int player) {
public void tPlay(int nCombo, int player) {
if (VoiceIndex[player] < ListCombo[player].Count) {
var index = ListCombo[player][VoiceIndex[player]];

View File

@ -68,7 +68,7 @@ internal class CAct演奏PauseMenu : CActSelectPopupMenu {
SoundManager.PlayTimer.Resume();
OpenTaiko.Timer.Resume();
OpenTaiko.DTX.t全チップの再生再開();
OpenTaiko.TJA.t全チップの再生再開();
OpenTaiko.stage演奏ドラム画面.actAVI.tPauseControl();
CActSelectPopupMenu.b選択した = true;
this.tDeativatePopupMenu();

View File

@ -1,7 +1,7 @@
using FDK;
namespace OpenTaiko;
namespace OpenTaiko;
/// <summary>
/// CAct演奏Drumsゲージ と CAct演奏Gutiarゲージ のbaseクラス。ダメージ計算やDanger/Failed判断もこのクラスで行う。
///
@ -9,18 +9,18 @@ namespace OpenTaiko;
/// _STAGE FAILED OFF時にゲージ回復を止める
/// _黒→閉店までの差を大きくする。
/// </summary>
internal class CAct演奏ゲージ共通 : CActivity {
// Properties
public CActLVLNFont actLVLNFont { get; protected set; }
// コンストラクタ
public CAct演奏ゲージ共通() {
//actLVLNFont = new CActLVLNFont(); // On活性化()に移動
//actLVLNFont.On活性化();
}
// CActivity 実装
internal class CAct演奏ゲージ共通 : CActivity {
// Properties
public CActLVLNFont actLVLNFont { get; protected set; }
// コンストラクタ
public CAct演奏ゲージ共通() {
//actLVLNFont = new CActLVLNFont(); // On活性化()に移動
//actLVLNFont.On活性化();
}
// CActivity 実装
public override void Activate() {
for (int i = 0; i < 3; i++) {
dbゲージ増加量[i] = new float[5];
@ -28,11 +28,11 @@ internal class CAct演奏ゲージ共通 : CActivity {
dbゲージ増加量_Branch[i, n] = new float[5];
}
}
this.DTX[0] = OpenTaiko.DTX;
this.DTX[1] = OpenTaiko.DTX_2P;
this.DTX[2] = OpenTaiko.DTX_3P;
this.DTX[3] = OpenTaiko.DTX_4P;
this.DTX[4] = OpenTaiko.DTX_5P;
this.DTX[0] = OpenTaiko.TJA;
this.DTX[1] = OpenTaiko.TJA_2P;
this.DTX[2] = OpenTaiko.TJA_3P;
this.DTX[3] = OpenTaiko.TJA_4P;
this.DTX[4] = OpenTaiko.TJA_5P;
actLVLNFont = new CActLVLNFont();
actLVLNFont.Activate();
base.Activate();
@ -49,29 +49,29 @@ internal class CAct演奏ゲージ共通 : CActivity {
const double GAUGE_ZERO = 0.0;
const double GAUGE_DANGER = 0.3;
public bool bRisky // Riskyモードか否か
public bool bRisky // Riskyモードか否か
{
get;
private set;
}
public int nRiskyTimes_Initial // Risky初期値
public int nRiskyTimes_Initial // Risky初期値
{
get;
private set;
}
public int nRiskyTimes // 残Miss回数
public int nRiskyTimes // 残Miss回数
{
get;
private set;
}
public bool IsFailed(EInstrumentPad part) // 閉店状態になったかどうか
public bool IsFailed(EInstrumentPad part) // 閉店状態になったかどうか
{
if (bRisky) {
return (nRiskyTimes <= 0);
}
return this.db現在のゲージ値[(int)part] <= GAUGE_MIN;
}
public bool IsDanger(EInstrumentPad part) // DANGERかどうか
public bool IsDanger(EInstrumentPad part) // DANGERかどうか
{
if (bRisky) {
switch (nRiskyTimes_Initial) {
@ -85,15 +85,15 @@ internal class CAct演奏ゲージ共通 : CActivity {
}
}
return (this.db現在のゲージ値[(int)part] <= GAUGE_DANGER);
}
}
/// <summary>
/// ゲージの初期化
/// </summary>
/// <param name="nRiskyTimes_Initial_">Riskyの初期値(0でRisky未使用)</param>
public void Init(int nRiskyTimes_InitialVal, int nPlayer) // ゲージ初期化
{
//ダメージ値の計算
public void Init(int nRiskyTimes_InitialVal, int nPlayer) // ゲージ初期化
{
//ダメージ値の計算
{
var chara = OpenTaiko.Tx.Characters[OpenTaiko.SaveFileInstances[OpenTaiko.GetActualPlayer(nPlayer)].data.Character];
switch (chara.effect.tGetGaugeType()) {
@ -106,9 +106,9 @@ internal class CAct演奏ゲージ共通 : CActivity {
this.db現在のゲージ値[nPlayer] = 100;
break;
}
}
//ゲージのMAXまでの最低コンボ数を計算
}
//ゲージのMAXまでの最低コンボ数を計算
float dbGaugeMaxComboValue = 0;
float[] dbGaugeMaxComboValue_branch = new float[3];
@ -149,10 +149,10 @@ internal class CAct演奏ゲージ共通 : CActivity {
gaugeRate = this.fGaugeMaxRate[2];
dbDamageRate = 2.0f;
break;
}
}
#region [(Unbloated) Gauge max combo values]
if (this.DTX[nPlayer].bチップがある.Branch) {
dbGaugeMaxComboValue = this.DTX[nPlayer].nーツ数[3] * (gaugeRate / 100.0f);
for (int i = 0; i < 3; i++) {
@ -160,10 +160,10 @@ internal class CAct演奏ゲージ共通 : CActivity {
}
} else {
dbGaugeMaxComboValue = this.DTX[nPlayer].nーツ数[3] * (gaugeRate / 100.0f);
}
}
#endregion
float multiplicationFactor = 1f;
if (nanidou == (int)Difficulty.Tower)
multiplicationFactor = 0f;
@ -174,11 +174,11 @@ internal class CAct演奏ゲージ共通 : CActivity {
nGaugeRankValue = (10000.0f / dbGaugeMaxComboValue) * multiplicationFactor;
for (int i = 0; i < 3; i++) {
nGaugeRankValue_branch[i] = (10000.0f / dbGaugeMaxComboValue_branch[i]) * multiplicationFactor;
}
//ゲージ値計算
//実機に近い計算
}
//ゲージ値計算
//実機に近い計算
this.dbゲージ増加量[0][nPlayer] = (float)nGaugeRankValue / 100.0f;
this.dbゲージ増加量[1][nPlayer] = (float)(nGaugeRankValue / 100.0f) * 0.5f;
this.dbゲージ増加量[2][nPlayer] = (float)(nGaugeRankValue / 100.0f) * dbDamageRate;
@ -187,21 +187,21 @@ internal class CAct演奏ゲージ共通 : CActivity {
this.dbゲージ増加量_Branch[i, 0][nPlayer] = (float)nGaugeRankValue_branch[i] / 100.0f;
this.dbゲージ増加量_Branch[i, 1][nPlayer] = (float)(nGaugeRankValue_branch[i] / 100.0f) * 0.5f;
this.dbゲージ増加量_Branch[i, 2][nPlayer] = (float)(nGaugeRankValue_branch[i] / 100.0f) * dbDamageRate;
}
//this.dbゲージ増加量[ 0 ] = CDTXMania.DTX.bチップがある.Branch ? ( 130.0 / CDTXMania.DTX.nーツ数[ 0 ] ) : ( 130.0 / CDTXMania.DTX.nーツ数[ 3 ] );
//this.dbゲージ増加量[ 1 ] = CDTXMania.DTX.bチップがある.Branch ? ( 65.0 / CDTXMania.DTX.nーツ数[ 0 ] ) : 65.0 / CDTXMania.DTX.nーツ数[ 3 ];
//this.dbゲージ増加量[ 2 ] = CDTXMania.DTX.bチップがある.Branch ? ( -260.0 / CDTXMania.DTX.nーツ数[ 0 ] ) : -260.0 / CDTXMania.DTX.nーツ数[ 3 ];
//2015.03.26 kairera0467 計算を初期化時にするよう修正。
}
//this.dbゲージ増加量[ 0 ] = CDTXMania.DTX.bチップがある.Branch ? ( 130.0 / CDTXMania.DTX.nーツ数[ 0 ] ) : ( 130.0 / CDTXMania.DTX.nーツ数[ 3 ] );
//this.dbゲージ増加量[ 1 ] = CDTXMania.DTX.bチップがある.Branch ? ( 65.0 / CDTXMania.DTX.nーツ数[ 0 ] ) : 65.0 / CDTXMania.DTX.nーツ数[ 3 ];
//this.dbゲージ増加量[ 2 ] = CDTXMania.DTX.bチップがある.Branch ? ( -260.0 / CDTXMania.DTX.nーツ数[ 0 ] ) : -260.0 / CDTXMania.DTX.nーツ数[ 3 ];
//2015.03.26 kairera0467 計算を初期化時にするよう修正。
#region [ Handling infinity cases ]
float fIsDontInfinty = 0.4f;//適当に0.4で
float fIsDontInfinty = 0.4f;//適当に0.4で
float[] fAddVolume = new float[] { 1.0f, 0.5f, dbDamageRate };
for (int i = 0; i < 3; i++) {
for (int l = 0; l < 3; l++) {
if (!double.IsInfinity(nGaugeRankValue_branch[i] / 100.0f))//値がInfintyかチェック
if (!double.IsInfinity(nGaugeRankValue_branch[i] / 100.0f))//値がInfintyかチェック
{
fIsDontInfinty = (float)(nGaugeRankValue_branch[i] / 100.0f);
this.dbゲージ増加量_Branch[i, l][nPlayer] = fIsDontInfinty * fAddVolume[l];
@ -210,17 +210,17 @@ internal class CAct演奏ゲージ共通 : CActivity {
}
for (int i = 0; i < 3; i++) {
for (int l = 0; l < 3; l++) {
if (double.IsInfinity(nGaugeRankValue_branch[i] / 100.0f))//値がInfintyかチェック
{
//Infintyだった場合はInfintyではない値 * 3.0をしてその値を利用する。
if (double.IsInfinity(nGaugeRankValue_branch[i] / 100.0f))//値がInfintyかチェック
{
//Infintyだった場合はInfintyではない値 * 3.0をしてその値を利用する。
this.dbゲージ増加量_Branch[i, l][nPlayer] = (fIsDontInfinty * fAddVolume[l]) * 3f;
}
}
}
}
#endregion
#region [Rounding process]
var increase = new float[] { dbゲージ増加量[0][nPlayer], dbゲージ増加量[1][nPlayer], dbゲージ増加量[2][nPlayer] };
var increaseBranch = new float[3, 3];
for (int i = 0; i < 3; i++) {
@ -230,8 +230,8 @@ internal class CAct演奏ゲージ共通 : CActivity {
}
switch (this.DTX[nPlayer].GaugeIncreaseMode) {
case GaugeIncreaseMode.Normal:
case GaugeIncreaseMode.Floor:
// 切り捨て
case GaugeIncreaseMode.Floor:
// 切り捨て
for (int i = 0; i < 3; i++) {
increase[i] = (float)Math.Truncate(increase[i] * 10000.0f) / 10000.0f;
}
@ -241,8 +241,8 @@ internal class CAct演奏ゲージ共通 : CActivity {
increaseBranch[i, 2] = (float)Math.Truncate(increaseBranch[i, 2] * 10000.0f) / 10000.0f;
}
break;
case GaugeIncreaseMode.Round:
// 四捨五入
case GaugeIncreaseMode.Round:
// 四捨五入
for (int i = 0; i < 3; i++) {
increase[i] = (float)Math.Round(increase[i] * 10000.0f) / 10000.0f;
}
@ -252,8 +252,8 @@ internal class CAct演奏ゲージ共通 : CActivity {
increaseBranch[i, 2] = (float)Math.Round(increaseBranch[i, 2] * 10000.0f) / 10000.0f;
}
break;
case GaugeIncreaseMode.Ceiling:
// 切り上げ
case GaugeIncreaseMode.Ceiling:
// 切り上げ
for (int i = 0; i < 3; i++) {
increase[i] = (float)Math.Ceiling(increase[i] * 10000.0f) / 10000.0f;
}
@ -264,8 +264,8 @@ internal class CAct演奏ゲージ共通 : CActivity {
}
break;
case GaugeIncreaseMode.NotFix:
default:
// 丸めない
default:
// 丸めない
break;
}
@ -304,14 +304,14 @@ internal class CAct演奏ゲージ共通 : CActivity {
dbゲージ増加量_Branch[i, 2][nPlayer] = increaseBranch[i, 2] * HGaugeMethods.ExtremeGaugeFillRatio;
break;
}
}
}
#endregion
}
}
#region [ DAMAGE ]
#if true // DAMAGELEVELTUNING
#region [ DAMAGELEVELTUNING ]
// ----------------------------------
// ----------------------------------
public float[,] fDamageGaugeDelta = { // #23625 2011.1.10 ickw_284: tuned damage/recover factors
// drums, guitar, bass
{ 0.004f, 0.006f, 0.006f, 0.004f },
@ -324,9 +324,9 @@ internal class CAct演奏ゲージ共通 : CActivity {
0.5f, 1.0f, 1.5f
};
public float[][] dbゲージ増加量 = new float[3][];
//譜面レベル, 判定
public float[][] dbゲージ増加量 = new float[3][];
//譜面レベル, 判定
public float[,][] dbゲージ増加量_Branch = new float[3, 3][];
@ -338,14 +338,14 @@ internal class CAct演奏ゲージ共通 : CActivity {
78.5f, // 11
80.5f, // 12
82f, // 13+
};//おおよその値。
// ----------------------------------
};//おおよその値。
// ----------------------------------
#endregion
#endif
public void MineDamage(int nPlayer) {
this.db現在のゲージ値[nPlayer] = Math.Max(0, this.db現在のゲージ値[nPlayer] - HGaugeMethods.BombDamage);
}
@ -354,9 +354,9 @@ internal class CAct演奏ゲージ共通 : CActivity {
this.db現在のゲージ値[nPlayer] = Math.Max(0, this.db現在のゲージ値[nPlayer] - HGaugeMethods.FuserollDamage);
}
public void Damage(EInstrumentPad screenmode, EInstrumentPad part, ENoteJudge e今回の判定, int nPlayer) {
public void Damage(EInstrumentPad screenmode, ENoteJudge e今回の判定, int nPlayer) {
float fDamage;
int nコース = (int)OpenTaiko.stage演奏ドラム画面.n現在のコース[nPlayer];
int nコース = (int)OpenTaiko.stage演奏ドラム画面.nCurrentBranch[nPlayer];
switch (e今回の判定) {
case ENoteJudge.Perfect:
@ -426,20 +426,20 @@ internal class CAct演奏ゲージ共通 : CActivity {
if (this.db現在のゲージ値[nPlayer] >= 100.0)
this.db現在のゲージ値[nPlayer] = 100.0;
else if (this.db現在のゲージ値[nPlayer] <= 0.0)
this.db現在のゲージ値[nPlayer] = 0.0;
//CDTXMania.stage演奏ドラム画面.nGauge = fDamage;
this.db現在のゲージ値[nPlayer] = 0.0;
//CDTXMania.stage演奏ドラム画面.nGauge = fDamage;
}
public virtual void Start(int nLane, ENoteJudge judge, int player) {
}
//-----------------
}
//-----------------
#endregion
private CDTX[] DTX = new CDTX[5];
private CTja[] DTX = new CTja[5];
public double[] db現在のゲージ値 = new double[5];
protected CCounter ct炎;
protected CCounter ct虹アニメ;

View File

@ -1,78 +0,0 @@
using FDK;
namespace OpenTaiko;
internal class CAct演奏スクロール速度 : CActivity {
// Properties
public double[] db現在の譜面スクロール速度 = new double[5];
// コンストラクタ
public CAct演奏スクロール速度() {
base.IsDeActivated = true;
}
// CActivity 実装
public override void Activate() {
for (int i = 0; i < 5; i++) {
this.db現在の譜面スクロール速度[i] = (double)OpenTaiko.ConfigIni.nScrollSpeed[OpenTaiko.GetActualPlayer(i)];
this.n速度変更制御タイマ[i] = -1;
}
base.Activate();
}
public override unsafe int Draw() {
if (!base.IsDeActivated) {
if (base.IsFirstDraw) {
//this.n速度変更制御タイマ.Drums = this.n速度変更制御タイマ.Guitar = this.n速度変更制御タイマ.Bass = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
for (int i = 0; i < 5; i++) {
this.n速度変更制御タイマ[i] = (long)(SoundManager.PlayTimer.NowTime * OpenTaiko.ConfigIni.SongPlaybackSpeed);
}
base.IsFirstDraw = false;
}
long n現在時刻 = SoundManager.PlayTimer.NowTime;
for (int i = 0; i < 5; i++) {
double db譜面スクロールスピード = (double)OpenTaiko.ConfigIni.nScrollSpeed[OpenTaiko.GetActualPlayer(i)];
if (n現在時刻 < this.n速度変更制御タイマ[i]) {
this.n速度変更制御タイマ[i] = n現在時刻;
}
while ((n現在時刻 - this.n速度変更制御タイマ[i]) >= 2) // 2msに1回ループ
{
if (this.db現在の譜面スクロール速度[i] < db譜面スクロールスピード) // Config.iniのスクロール速度を変えると、それに追いつくように実画面のスクロール速度を変える
{
this.db現在の譜面スクロール速度[i] += 0.012;
if (this.db現在の譜面スクロール速度[i] > db譜面スクロールスピード) {
this.db現在の譜面スクロール速度[i] = db譜面スクロールスピード;
}
} else if (this.db現在の譜面スクロール速度[i] > db譜面スクロールスピード) {
this.db現在の譜面スクロール速度[i] -= 0.012;
if (this.db現在の譜面スクロール速度[i] < db譜面スクロールスピード) {
this.db現在の譜面スクロール速度[i] = db譜面スクロールスピード;
}
}
this.n速度変更制御タイマ[i] += 2;
}
}
}
return 0;
}
// その他
#region [ private ]
//-----------------
private long[] n速度変更制御タイマ = new long[5];
//-----------------
#endregion
}

View File

@ -16,7 +16,7 @@ internal class CAct演奏スコア共通 : CActivity {
protected CCounter ctTimer;
public CCounter[] ct点数アニメタイマ;
public CCounter[] ctボーナス加算タイマ;
public CCounter[] ctBonusAddTimer;
protected STスコア[] stScore;
protected int nNowDisplayedAddScore;
@ -257,9 +257,9 @@ internal class CAct演奏スコア共通 : CActivity {
for (int i = 0; i < 5; i++) {
this.ct点数アニメタイマ[i] = new CCounter();
}
this.ctボーナス加算タイマ = new CCounter[5];
this.ctBonusAddTimer = new CCounter[5];
for (int i = 0; i < 5; i++) {
this.ctボーナス加算タイマ[i] = new CCounter();
this.ctBonusAddTimer[i] = new CCounter();
}
base.Activate();
}

View File

@ -22,18 +22,18 @@ internal class CAct演奏演奏情報 : CActivity {
public override void Activate() {
for (int i = 0; i < 5; i++) {
NowMeasure[i] = 0;
this.dbBPM[i] = OpenTaiko.DTX.BASEBPM;
this.dbBPM[i] = OpenTaiko.TJA.BASEBPM;
}
this.dbSCROLL = 1.0;
_chipCounts[0] = OpenTaiko.DTX.listChip.Where(num => NotesManager.IsMissableNote(num)).Count();
_chipCounts[1] = OpenTaiko.DTX.listChip_Branch[2].Where(num => NotesManager.IsMissableNote(num)).Count();
_chipCounts[0] = OpenTaiko.TJA.listChip.Where(num => NotesManager.IsMissableNote(num)).Count();
_chipCounts[1] = OpenTaiko.TJA.listChip_Branch[2].Where(num => NotesManager.IsMissableNote(num)).Count();
NotesTextN = string.Format("NoteN: {0:####0}", OpenTaiko.DTX.nーツ数_Branch[0]);
NotesTextE = string.Format("NoteE: {0:####0}", OpenTaiko.DTX.nーツ数_Branch[1]);
NotesTextM = string.Format("NoteM: {0:####0}", OpenTaiko.DTX.nーツ数_Branch[2]);
NotesTextC = string.Format("NoteC: {0:####0}", OpenTaiko.DTX.nーツ数[3]);
ScoreModeText = string.Format("SCOREMODE: {0:####0}", OpenTaiko.DTX.nScoreModeTmp);
NotesTextN = string.Format("NoteN: {0:####0}", OpenTaiko.TJA.nーツ数_Branch[0]);
NotesTextE = string.Format("NoteE: {0:####0}", OpenTaiko.TJA.nーツ数_Branch[1]);
NotesTextM = string.Format("NoteM: {0:####0}", OpenTaiko.TJA.nーツ数_Branch[2]);
NotesTextC = string.Format("NoteC: {0:####0}", OpenTaiko.TJA.nーツ数[3]);
ScoreModeText = string.Format("SCOREMODE: {0:####0}", OpenTaiko.TJA.nScoreModeTmp);
ListChipText = string.Format("ListChip: {0:####0}", _chipCounts[0]);
ListChipMText = string.Format("ListChipM: {0:####0}", _chipCounts[1]);
@ -45,9 +45,9 @@ internal class CAct演奏演奏情報 : CActivity {
public void t進行描画(int x, int y) {
if (!base.IsDeActivated) {
y += 0x153;
OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, string.Format("Song/G. Offset:{0:####0}/{1:####0} ms", OpenTaiko.DTX.nBGMAdjust, OpenTaiko.ConfigIni.nGlobalOffsetMs));
OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, string.Format("Song/G. Offset:{0:####0}/{1:####0} ms", OpenTaiko.TJA.nBGMAdjust, OpenTaiko.ConfigIni.nGlobalOffsetMs));
y -= 0x10;
int num = (OpenTaiko.DTX.listChip.Count > 0) ? OpenTaiko.DTX.listChip[OpenTaiko.DTX.listChip.Count - 1].n発声時刻ms : 0;
int num = (OpenTaiko.TJA.listChip.Count > 0) ? OpenTaiko.TJA.listChip[OpenTaiko.TJA.listChip.Count - 1].n発声時刻ms : 0;
string str = "Time: " + ((((double)(SoundManager.PlayTimer.NowTime * OpenTaiko.ConfigIni.SongPlaybackSpeed)) / 1000.0)).ToString("####0.00") + " / " + ((((double)num) / 1000.0)).ToString("####0.00");
OpenTaiko.actTextConsole.Print(x, y, CTextConsole.EFontType.White, str);
y -= 0x10;

View File

@ -1,168 +0,0 @@
using FDK;
namespace OpenTaiko;
public class CInvisibleChip : IDisposable {
/// <summary>ミス後表示する時間(ms)</summary>
public int nDisplayTimeMs {
get;
set;
}
/// <summary>表示期間終了後、フェードアウトする時間</summary>
public int nFadeoutTimeMs {
get;
set;
}
/// <summary>楽器ごとのInvisibleモード</summary>
public STDGBVALUE<EInvisible> eInvisibleMode;
#region [ ]
public CInvisibleChip() {
Initialize(3000, 2000);
}
/// <summary>
/// コンストラクタ
/// </summary>
/// <param name="_dbDisplayTime">ミス時再表示する時間(秒)</param>
/// <param name="_dbFadeoutTime">再表示後フェードアウトする時間(秒)</param>
public CInvisibleChip(int _nDisplayTimeMs, int _nFadeoutTimeMs) {
Initialize(_nDisplayTimeMs, _nFadeoutTimeMs);
}
private void Initialize(int _nDisplayTimeMs, int _nFadeoutTimeMs) {
nDisplayTimeMs = _nDisplayTimeMs;
nFadeoutTimeMs = _nFadeoutTimeMs;
Reset();
}
#endregion
/// <summary>
/// 内部状態を初期化する
/// </summary>
public void Reset() {
for (int i = 0; i < 5; i++) {
ccounter[i] = new CCounter();
b演奏チップがつでもバーを通過した[i] = false;
}
}
/// <summary>
/// まだSemi-Invisibleを開始していなければ、開始する
/// </summary>
/// <param name="eInst"></param>
public void StartSemiInvisible(EInstrumentPad eInst) {
int nInst = (int)eInst;
if (!b演奏チップがつでもバーを通過した[nInst]) {
b演奏チップがつでもバーを通過した[nInst] = true;
if (this.eInvisibleMode[nInst] == EInvisible.Semi) {
ShowChipTemporally(eInst);
ccounter[nInst].CurrentValue = nDisplayTimeMs;
}
}
}
/// <summary>
/// 一時的にチップを表示するモードを開始する
/// </summary>
/// <param name="eInst">楽器パート</param>
public void ShowChipTemporally(EInstrumentPad eInst) {
ccounter[(int)eInst].Start(0, nDisplayTimeMs + nFadeoutTimeMs + 1, 1, OpenTaiko.Timer);
}
/// <summary>
/// チップの表示/非表示の状態
/// </summary>
public enum EChipInvisibleState {
SHOW, // Missなどしてチップを表示中
FADEOUT, // 表示期間終了後、フェードアウト中
INVISIBLE // 完全非表示
}
internal EChipInvisibleState SetInvisibleStatus(ref CDTX.CChip cc) {
if (cc.e楽器パート == EInstrumentPad.Unknown) {
return EChipInvisibleState.SHOW;
}
int nInst = (int)cc.e楽器パート;
EChipInvisibleState retcode = EChipInvisibleState.SHOW;
ccounter[nInst].Tick();
switch (eInvisibleMode[nInst]) {
case EInvisible.Off:
cc.b可視 = true;
retcode = EChipInvisibleState.SHOW;
break;
case EInvisible.Full:
cc.b可視 = false;
retcode = EChipInvisibleState.INVISIBLE;
break;
case EInvisible.Semi:
if (!b演奏チップがつでもバーを通過した[nInst]) // まだ1つもチップがバーを通過していない時は、チップを表示する
{
cc.b可視 = true;
cc.n透明度 = 255;
return EChipInvisibleState.SHOW;
}
if (ccounter[nInst].CurrentValue <= 0 || ccounter[nInst].CurrentValue > nDisplayTimeMs + nFadeoutTimeMs)
// まだ一度もMissっていない or フェードアウトしきった後
{
cc.b可視 = false;
cc.n透明度 = 255;
retcode = EChipInvisibleState.INVISIBLE;
} else if (ccounter[nInst].CurrentValue < nDisplayTimeMs) // 表示期間
{
cc.b可視 = true;
cc.n透明度 = 255;
retcode = EChipInvisibleState.SHOW;
} else if (ccounter[nInst].CurrentValue < nDisplayTimeMs + nFadeoutTimeMs) // フェードアウト期間
{
cc.b可視 = true;
cc.n透明度 = 255 - (int)(Convert.ToDouble(ccounter[nInst].CurrentValue - nDisplayTimeMs) / nFadeoutTimeMs * 255.0);
retcode = EChipInvisibleState.FADEOUT;
}
break;
default:
cc.b可視 = true;
cc.n透明度 = 255;
retcode = EChipInvisibleState.SHOW;
break;
}
return retcode;
}
#region [ Dispose-Finalize ]
//-----------------
public void Dispose() {
this.Dispose(true);
GC.SuppressFinalize(this);
}
protected void Dispose(bool disposeManagedObjects) {
if (this.bDispose完了済み)
return;
if (disposeManagedObjects) {
// (A) Managed リソースの解放
for (int i = 0; i < 5; i++) {
// ctInvisibleTimer[ i ].Dispose();
ccounter[i].Stop();
ccounter[i] = null;
}
}
// (B) Unamanaged リソースの解放
this.bDispose完了済み = true;
}
~CInvisibleChip() {
this.Dispose(false);
}
//-----------------
#endregion
private CCounter[] ccounter = new CCounter[5];
private bool bDispose完了済み = false;
private bool[] b演奏チップがつでもバーを通過した = new bool[5];
}

View File

@ -11,12 +11,12 @@ internal static class CLagLogger {
private static readonly List<int> LagValues = new List<int>(2000);
public static void Add(int nPlayer, CDTX.CChip pChip) {
public static void Add(int nPlayer, CChip pChip) {
if (nPlayer != 0) {
return;
}
switch (pChip.nチャンネル番号) {
switch (pChip.nChannelNo) {
case 0x15:
case 0x16:
case 0x17:

File diff suppressed because it is too large Load Diff

View File

@ -172,7 +172,7 @@ internal class CActImplBalloon : CActivity {
} else {
if (n連打数 == 0 && OpenTaiko.stage演奏ドラム画面.actChara.b風船連打中[player]) {
OpenTaiko.stage演奏ドラム画面.actChara.b風船連打中[player] = false;
OpenTaiko.stage演奏ドラム画面.b連打中[player] = false;
OpenTaiko.stage演奏ドラム画面.bCurrentlyDrumRoll[player] = false;
}
}

View File

@ -183,11 +183,11 @@ internal class CActImplGauge : CAct演奏ゲージ共通 {
if (OpenTaiko.Tx.Gauge_Dan[2] != null) {
for (int i = 0; i < OpenTaiko.DTX.Dan_C.Length; i++) {
if (OpenTaiko.DTX.Dan_C[i] != null) {
Dan_C dan_c = OpenTaiko.DTX.List_DanSongs[OpenTaiko.stage演奏ドラム画面.actDan.NowCymbolShowingNumber].Dan_C[i] != null ?
OpenTaiko.DTX.List_DanSongs[OpenTaiko.stage演奏ドラム画面.actDan.NowCymbolShowingNumber].Dan_C[i] :
OpenTaiko.DTX.Dan_C[i];
for (int i = 0; i < OpenTaiko.TJA.Dan_C.Length; i++) {
if (OpenTaiko.TJA.Dan_C[i] != null) {
Dan_C dan_c = OpenTaiko.TJA.List_DanSongs[OpenTaiko.stage演奏ドラム画面.actDan.NowCymbolShowingNumber].Dan_C[i] != null ?
OpenTaiko.TJA.List_DanSongs[OpenTaiko.stage演奏ドラム画面.actDan.NowCymbolShowingNumber].Dan_C[i] :
OpenTaiko.TJA.Dan_C[i];
if (dan_c.GetExamType() == Exam.Type.Gauge) {
OpenTaiko.Tx.Gauge_Dan[2].t2D描画(gauge_x[0] + (dan_c.GetValue(false) / 2 * nWidth), gauge_y[0],
@ -219,10 +219,10 @@ internal class CActImplGauge : CAct演奏ゲージ共通 {
else
OpenTaiko.Tx.Gauge_Dan[1]?.t2D描画(x, y, new Rectangle(0, 0, nRectX[0], OpenTaiko.Skin.Game_Gauge_Rect[3]));
for (int i = 0; i < OpenTaiko.DTX.Dan_C.Length; i++) {
Dan_C dan_c = OpenTaiko.DTX.List_DanSongs[OpenTaiko.stage演奏ドラム画面.actDan.NowCymbolShowingNumber].Dan_C[i] != null ?
OpenTaiko.DTX.List_DanSongs[OpenTaiko.stage演奏ドラム画面.actDan.NowCymbolShowingNumber].Dan_C[i] :
OpenTaiko.DTX.Dan_C[i];
for (int i = 0; i < OpenTaiko.TJA.Dan_C.Length; i++) {
Dan_C dan_c = OpenTaiko.TJA.List_DanSongs[OpenTaiko.stage演奏ドラム画面.actDan.NowCymbolShowingNumber].Dan_C[i] != null ?
OpenTaiko.TJA.List_DanSongs[OpenTaiko.stage演奏ドラム画面.actDan.NowCymbolShowingNumber].Dan_C[i] :
OpenTaiko.TJA.Dan_C[i];
if (dan_c != null && dan_c.GetExamType() == Exam.Type.Gauge && db現在のゲージ値[0] >= dan_c.GetValue(false)) {
OpenTaiko.Tx.Gauge_Dan[3].Opacity = 255;

View File

@ -9,12 +9,12 @@ internal class CActImplLane : CActivity {
public override void Activate() {
this.ct分岐アニメ進行 = new CCounter[5];
this.nBefore = new CDTX.ECourse[5];
this.nAfter = new CDTX.ECourse[5];
this.nBefore = new CTja.ECourse[5];
this.nAfter = new CTja.ECourse[5];
for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) {
this.ct分岐アニメ進行[i] = new CCounter();
this.nBefore = new CDTX.ECourse[5];
this.nAfter = new CDTX.ECourse[5];
this.nBefore = new CTja.ECourse[5];
this.nAfter = new CTja.ECourse[5];
this.bState[i] = false;
}
if (OpenTaiko.Tx.Lane_Base[0] != null)
@ -87,13 +87,13 @@ internal class CActImplLane : CActivity {
} else if (this.ct分岐アニメ進行[i].IsTicked && !_laneNull) {
#region[ _レベルアップ ]
//普通→玄人
if (nBefore[i] == 0 && nAfter[i] == CDTX.ECourse.eNormal) {
if (nBefore[i] == 0 && nAfter[i] == CTja.ECourse.eNormal) {
OpenTaiko.Tx.Lane_Base[1].Opacity = this.ct分岐アニメ進行[i].CurrentValue > 100 ? 255 : ((this.ct分岐アニメ進行[i].CurrentValue * 0xff) / 100);
OpenTaiko.Tx.Lane_Base[0].t2D描画(x[i], y[i]);
OpenTaiko.Tx.Lane_Base[1].t2D描画(x[i], y[i]);
}
//普通→達人
if (nBefore[i] == 0 && nAfter[i] == CDTX.ECourse.eMaster) {
if (nBefore[i] == 0 && nAfter[i] == CTja.ECourse.eMaster) {
OpenTaiko.Tx.Lane_Base[0].t2D描画(x[i], y[i]);
if (this.ct分岐アニメ進行[i].CurrentValue < 100) {
OpenTaiko.Tx.Lane_Base[1].Opacity = this.ct分岐アニメ進行[i].CurrentValue > 100 ? 255 : ((this.ct分岐アニメ進行[i].CurrentValue * 0xff) / 100);
@ -110,7 +110,7 @@ internal class CActImplLane : CActivity {
#endregion
#region[ _レベルアップ ]
if (nBefore[i] == CDTX.ECourse.eExpert && nAfter[i] == CDTX.ECourse.eMaster) {
if (nBefore[i] == CTja.ECourse.eExpert && nAfter[i] == CTja.ECourse.eMaster) {
OpenTaiko.Tx.Lane_Base[1].t2D描画(x[i], y[i]);
OpenTaiko.Tx.Lane_Base[2].Opacity = this.ct分岐アニメ進行[i].CurrentValue > 100 ? 255 : ((this.ct分岐アニメ進行[i].CurrentValue * 0xff) / 100);
OpenTaiko.Tx.Lane_Base[2].t2D描画(x[i], y[i]);
@ -118,7 +118,7 @@ internal class CActImplLane : CActivity {
#endregion
#region[ _レベルダウン ]
if (nBefore[i] == CDTX.ECourse.eExpert && nAfter[i] == CDTX.ECourse.eNormal) {
if (nBefore[i] == CTja.ECourse.eExpert && nAfter[i] == CTja.ECourse.eNormal) {
OpenTaiko.Tx.Lane_Base[1].t2D描画(x[i], y[i]);
OpenTaiko.Tx.Lane_Base[0].Opacity = this.ct分岐アニメ進行[i].CurrentValue > 100 ? 255 : ((this.ct分岐アニメ進行[i].CurrentValue * 0xff) / 100);
OpenTaiko.Tx.Lane_Base[0].t2D描画(x[i], y[i]);
@ -126,7 +126,7 @@ internal class CActImplLane : CActivity {
#endregion
#region[ _レベルダウン ]
if (nBefore[i] == CDTX.ECourse.eMaster && nAfter[i] == CDTX.ECourse.eNormal) {
if (nBefore[i] == CTja.ECourse.eMaster && nAfter[i] == CTja.ECourse.eNormal) {
OpenTaiko.Tx.Lane_Base[2].t2D描画(x[i], y[i]);
if (this.ct分岐アニメ進行[i].CurrentValue < 100) {
OpenTaiko.Tx.Lane_Base[1].Opacity = this.ct分岐アニメ進行[i].CurrentValue > 100 ? 255 : ((this.ct分岐アニメ進行[i].CurrentValue * 0xff) / 100);
@ -140,7 +140,7 @@ internal class CActImplLane : CActivity {
OpenTaiko.Tx.Lane_Base[0].t2D描画(x[i], y[i]);
}
}
if (nBefore[i] == CDTX.ECourse.eMaster && nAfter[i] == CDTX.ECourse.eExpert) {
if (nBefore[i] == CTja.ECourse.eMaster && nAfter[i] == CTja.ECourse.eExpert) {
OpenTaiko.Tx.Lane_Base[2].t2D描画(x[i], y[i]);
OpenTaiko.Tx.Lane_Base[2].Opacity = this.ct分岐アニメ進行[i].CurrentValue > 100 ? 255 : ((this.ct分岐アニメ進行[i].CurrentValue * 0xff) / 100);
OpenTaiko.Tx.Lane_Base[2].t2D描画(x[i], y[i]);
@ -152,7 +152,7 @@ internal class CActImplLane : CActivity {
return base.Draw();
}
public virtual void t分岐レイヤー_コース変化(CDTX.ECourse n現在, CDTX.ECourse n次回, int player) {
public virtual void t分岐レイヤー_コース変化(CTja.ECourse n現在, CTja.ECourse n次回, int player) {
if (n現在 == n次回) {
return;
}
@ -168,8 +168,8 @@ internal class CActImplLane : CActivity {
//-----------------
public bool[] bState = new bool[5];
public CCounter[] ct分岐アニメ進行 = new CCounter[5];
private CDTX.ECourse[] nBefore;
private CDTX.ECourse[] nAfter;
private CTja.ECourse[] nBefore;
private CTja.ECourse[] nAfter;
private int[] n透明度 = new int[5];
//private CTexture[] tx普通譜面 = new CTexture[2];
//private CTexture[] tx玄人譜面 = new CTexture[2];

View File

@ -125,20 +125,20 @@ internal class CActImplLaneTaiko : CActivity {
for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) {
if (OpenTaiko.stage演奏ドラム画面.bUseBranch[i] == true) {
#region[ ]
switch (OpenTaiko.stage演奏ドラム画面.nレーン用表示コース[i]) {
case CDTX.ECourse.eNormal:
switch (OpenTaiko.stage演奏ドラム画面.nDisplayedBranchLane[i]) {
case CTja.ECourse.eNormal:
if (OpenTaiko.Tx.Lane_Base[0] != null) {
OpenTaiko.Tx.Lane_Base[0].Opacity = 255;
OpenTaiko.Tx.Lane_Base[0].t2D描画(x[i], y[i]);
}
break;
case CDTX.ECourse.eExpert:
case CTja.ECourse.eExpert:
if (OpenTaiko.Tx.Lane_Base[1] != null) {
OpenTaiko.Tx.Lane_Base[1].Opacity = 255;
OpenTaiko.Tx.Lane_Base[1].t2D描画(x[i], y[i]);
}
break;
case CDTX.ECourse.eMaster:
case CTja.ECourse.eMaster:
if (OpenTaiko.Tx.Lane_Base[2] != null) {
OpenTaiko.Tx.Lane_Base[2].Opacity = 255;
OpenTaiko.Tx.Lane_Base[2].t2D描画(x[i], y[i]);
@ -159,7 +159,7 @@ internal class CActImplLaneTaiko : CActivity {
#region[ _レベルアップ ]
//普通→玄人
if (this.stBranch[i].nBefore == CDTX.ECourse.eNormal && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) {
if (this.stBranch[i].nBefore == CTja.ECourse.eNormal && this.stBranch[i].nAfter == CTja.ECourse.eExpert) {
if (OpenTaiko.Tx.Lane_Base[0] != null && OpenTaiko.Tx.Lane_Base[1] != null) {
OpenTaiko.Tx.Lane_Base[0].t2D描画(x[i], y[i]);
OpenTaiko.Tx.Lane_Base[1].Opacity = this.stBranch[i].nBranchレイヤー透明度;
@ -167,7 +167,7 @@ internal class CActImplLaneTaiko : CActivity {
}
}
//普通→達人
if (this.stBranch[i].nBefore == CDTX.ECourse.eNormal && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) {
if (this.stBranch[i].nBefore == CTja.ECourse.eNormal && this.stBranch[i].nAfter == CTja.ECourse.eMaster) {
if (this.stBranch[i].ct分岐アニメ進行.CurrentValue < 100) {
n透明度 = ((100 - this.stBranch[i].ct分岐アニメ進行.CurrentValue) * 0xff) / 100;
}
@ -179,7 +179,7 @@ internal class CActImplLaneTaiko : CActivity {
}
#endregion
#region[ _レベルアップ ]
if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) {
if (this.stBranch[i].nBefore == CTja.ECourse.eExpert && this.stBranch[i].nAfter == CTja.ECourse.eMaster) {
if (OpenTaiko.Tx.Lane_Base[1] != null && OpenTaiko.Tx.Lane_Base[2] != null) {
OpenTaiko.Tx.Lane_Base[1].t2D描画(x[i], y[i]);
OpenTaiko.Tx.Lane_Base[2].t2D描画(x[i], y[i]);
@ -188,7 +188,7 @@ internal class CActImplLaneTaiko : CActivity {
}
#endregion
#region[ _レベルダウン ]
if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) {
if (this.stBranch[i].nBefore == CTja.ECourse.eExpert && this.stBranch[i].nAfter == CTja.ECourse.eNormal) {
if (OpenTaiko.Tx.Lane_Base[1] != null && OpenTaiko.Tx.Lane_Base[0] != null) {
OpenTaiko.Tx.Lane_Base[1].t2D描画(x[i], y[i]);
OpenTaiko.Tx.Lane_Base[0].t2D描画(x[i], y[i]);
@ -197,7 +197,7 @@ internal class CActImplLaneTaiko : CActivity {
}
#endregion
#region[ _レベルダウン ]
if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) {
if (this.stBranch[i].nBefore == CTja.ECourse.eMaster && this.stBranch[i].nAfter == CTja.ECourse.eNormal) {
if (OpenTaiko.Tx.Lane_Base[2] != null && OpenTaiko.Tx.Lane_Base[0] != null) {
OpenTaiko.Tx.Lane_Base[2].t2D描画(x[i], y[i]);
OpenTaiko.Tx.Lane_Base[0].t2D描画(x[i], y[i]);
@ -257,32 +257,32 @@ internal class CActImplLaneTaiko : CActivity {
#endregion
if (OpenTaiko.ConfigIni.SimpleMode) {
switch (OpenTaiko.stage演奏ドラム画面.nレーン用表示コース[i]) {
case CDTX.ECourse.eNormal:
switch (OpenTaiko.stage演奏ドラム画面.nDisplayedBranchLane[i]) {
case CTja.ECourse.eNormal:
OpenTaiko.Tx.Lane_Text[0].Opacity = 255;
OpenTaiko.Tx.Lane_Text[0].t2D描画(x[i], y[i]);
break;
case CDTX.ECourse.eExpert:
case CTja.ECourse.eExpert:
OpenTaiko.Tx.Lane_Text[1].Opacity = 255;
OpenTaiko.Tx.Lane_Text[1].t2D描画(x[i], y[i]);
break;
case CDTX.ECourse.eMaster:
case CTja.ECourse.eMaster:
OpenTaiko.Tx.Lane_Text[2].Opacity = 255;
OpenTaiko.Tx.Lane_Text[2].t2D描画(x[i], y[i]);
break;
}
} else if (OpenTaiko.ConfigIni.nBranchAnime == 0 && !_laneNull) {
if (!this.stBranch[i].ct分岐アニメ進行.IsTicked) {
switch (OpenTaiko.stage演奏ドラム画面.nレーン用表示コース[i]) {
case CDTX.ECourse.eNormal:
switch (OpenTaiko.stage演奏ドラム画面.nDisplayedBranchLane[i]) {
case CTja.ECourse.eNormal:
OpenTaiko.Tx.Lane_Text[0].Opacity = 255;
OpenTaiko.Tx.Lane_Text[0].t2D描画(x[i], y[i]);
break;
case CDTX.ECourse.eExpert:
case CTja.ECourse.eExpert:
OpenTaiko.Tx.Lane_Text[1].Opacity = 255;
OpenTaiko.Tx.Lane_Text[1].t2D描画(x[i], y[i]);
break;
case CDTX.ECourse.eMaster:
case CTja.ECourse.eMaster:
OpenTaiko.Tx.Lane_Text[2].Opacity = 255;
OpenTaiko.Tx.Lane_Text[2].t2D描画(x[i], y[i]);
break;
@ -291,7 +291,7 @@ internal class CActImplLaneTaiko : CActivity {
if (this.stBranch[i].ct分岐アニメ進行.IsTicked) {
#region[ _レベルアップ ]
//普通→玄人
if (this.stBranch[i].nBefore == 0 && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) {
if (this.stBranch[i].nBefore == 0 && this.stBranch[i].nAfter == CTja.ECourse.eExpert) {
OpenTaiko.Tx.Lane_Text[0].Opacity = 255;
OpenTaiko.Tx.Lane_Text[1].Opacity = 255;
OpenTaiko.Tx.Lane_Text[2].Opacity = 255;
@ -311,7 +311,7 @@ internal class CActImplLaneTaiko : CActivity {
}
//普通→達人
if (this.stBranch[i].nBefore == 0 && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) {
if (this.stBranch[i].nBefore == 0 && this.stBranch[i].nAfter == CTja.ECourse.eMaster) {
OpenTaiko.Tx.Lane_Text[0].Opacity = 255;
OpenTaiko.Tx.Lane_Text[1].Opacity = 255;
OpenTaiko.Tx.Lane_Text[2].Opacity = 255;
@ -346,7 +346,7 @@ internal class CActImplLaneTaiko : CActivity {
#endregion
#region[ _レベルアップ ]
//玄人→達人
if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) {
if (this.stBranch[i].nBefore == CTja.ECourse.eExpert && this.stBranch[i].nAfter == CTja.ECourse.eMaster) {
OpenTaiko.Tx.Lane_Text[0].Opacity = 255;
OpenTaiko.Tx.Lane_Text[1].Opacity = 255;
OpenTaiko.Tx.Lane_Text[2].Opacity = 255;
@ -362,7 +362,7 @@ internal class CActImplLaneTaiko : CActivity {
}
#endregion
#region[ _レベルダウン ]
if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) {
if (this.stBranch[i].nBefore == CTja.ECourse.eExpert && this.stBranch[i].nAfter == CTja.ECourse.eNormal) {
OpenTaiko.Tx.Lane_Text[0].Opacity = 255;
OpenTaiko.Tx.Lane_Text[1].Opacity = 255;
OpenTaiko.Tx.Lane_Text[2].Opacity = 255;
@ -378,7 +378,7 @@ internal class CActImplLaneTaiko : CActivity {
}
#endregion
#region[ _レベルダウン ]
if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) {
if (this.stBranch[i].nBefore == CTja.ECourse.eMaster && this.stBranch[i].nAfter == CTja.ECourse.eNormal) {
OpenTaiko.Tx.Lane_Text[0].Opacity = 255;
OpenTaiko.Tx.Lane_Text[1].Opacity = 255;
OpenTaiko.Tx.Lane_Text[2].Opacity = 255;
@ -403,7 +403,7 @@ internal class CActImplLaneTaiko : CActivity {
OpenTaiko.Tx.Lane_Text[0].t2D描画(x[i], y[i]);
}
}
if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) {
if (this.stBranch[i].nBefore == CTja.ECourse.eMaster && this.stBranch[i].nAfter == CTja.ECourse.eExpert) {
OpenTaiko.Tx.Lane_Text[0].Opacity = 255;
OpenTaiko.Tx.Lane_Text[1].Opacity = 255;
OpenTaiko.Tx.Lane_Text[2].Opacity = 255;
@ -426,16 +426,16 @@ internal class CActImplLaneTaiko : CActivity {
}
if (this.stBranch[i].nY座標 == 0) {
switch (OpenTaiko.stage演奏ドラム画面.nレーン用表示コース[i]) {
case CDTX.ECourse.eNormal:
switch (OpenTaiko.stage演奏ドラム画面.nDisplayedBranchLane[i]) {
case CTja.ECourse.eNormal:
OpenTaiko.Tx.Lane_Text[0].Opacity = 255;
OpenTaiko.Tx.Lane_Text[0].t2D描画(x[i], y[i]);
break;
case CDTX.ECourse.eExpert:
case CTja.ECourse.eExpert:
OpenTaiko.Tx.Lane_Text[1].Opacity = 255;
OpenTaiko.Tx.Lane_Text[1].t2D描画(x[i], y[i]);
break;
case CDTX.ECourse.eMaster:
case CTja.ECourse.eMaster:
OpenTaiko.Tx.Lane_Text[2].Opacity = 255;
OpenTaiko.Tx.Lane_Text[2].t2D描画(x[i], y[i]);
break;
@ -445,13 +445,13 @@ internal class CActImplLaneTaiko : CActivity {
if (this.stBranch[i].nY座標 != 0) {
#region[ _レベルアップ ]
//普通→玄人
if (this.stBranch[i].nBefore == CDTX.ECourse.eNormal && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) {
if (this.stBranch[i].nBefore == CTja.ECourse.eNormal && this.stBranch[i].nAfter == CTja.ECourse.eExpert) {
OpenTaiko.Tx.Lane_Text[0].t2D描画(x[i], y[i] - this.stBranch[i].nY座標);
OpenTaiko.Tx.Lane_Text[1].t2D描画(x[i], (y[i] + 20) - this.stBranch[i].nY座標);
OpenTaiko.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 == CTja.ECourse.eNormal && this.stBranch[i].nAfter == CTja.ECourse.eMaster) {
OpenTaiko.Tx.Lane_Text[0].t2D描画(x[i], y[i] - this.stBranch[i].nY座標);
OpenTaiko.Tx.Lane_Text[2].t2D描画(x[i], (y[i] + 20) - this.stBranch[i].nY座標);
OpenTaiko.Tx.Lane_Text[0].Opacity = this.stBranch[i].nBranchレイヤー透明度;
@ -459,26 +459,26 @@ internal class CActImplLaneTaiko : CActivity {
#endregion
#region[ _レベルアップ ]
//玄人→達人
if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) {
if (this.stBranch[i].nBefore == CTja.ECourse.eExpert && this.stBranch[i].nAfter == CTja.ECourse.eMaster) {
OpenTaiko.Tx.Lane_Text[1].t2D描画(x[i], y[i] - this.stBranch[i].nY座標);
OpenTaiko.Tx.Lane_Text[2].t2D描画(x[i], (y[i] + 20) - this.stBranch[i].nY座標);
OpenTaiko.Tx.Lane_Text[1].Opacity = this.stBranch[i].nBranchレイヤー透明度;
}
#endregion
#region[ _レベルダウン ]
if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) {
if (this.stBranch[i].nBefore == CTja.ECourse.eExpert && this.stBranch[i].nAfter == CTja.ECourse.eNormal) {
OpenTaiko.Tx.Lane_Text[1].t2D描画(x[i], y[i] + this.stBranch[i].nY座標);
OpenTaiko.Tx.Lane_Text[0].t2D描画(x[i], (y[i] - 24) + this.stBranch[i].nY座標);
OpenTaiko.Tx.Lane_Text[1].Opacity = this.stBranch[i].nBranchレイヤー透明度;
}
#endregion
#region[ _レベルダウン ]
if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) {
if (this.stBranch[i].nBefore == CTja.ECourse.eMaster && this.stBranch[i].nAfter == CTja.ECourse.eNormal) {
OpenTaiko.Tx.Lane_Text[2].t2D描画(x[i], y[i] + this.stBranch[i].nY座標);
OpenTaiko.Tx.Lane_Text[0].t2D描画(x[i], (y[i] - 24) + this.stBranch[i].nY座標);
OpenTaiko.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 == CTja.ECourse.eMaster && this.stBranch[i].nAfter == CTja.ECourse.eExpert) {
OpenTaiko.Tx.Lane_Text[2].t2D描画(x[i], y[i] + this.stBranch[i].nY座標);
OpenTaiko.Tx.Lane_Text[1].t2D描画(x[i], (y[i] - 24) + this.stBranch[i].nY座標);
OpenTaiko.Tx.Lane_Text[2].Opacity = this.stBranch[i].nBranchレイヤー透明度;
@ -607,7 +607,7 @@ internal class CActImplLaneTaiko : CActivity {
if (OpenTaiko.ConfigIni.bEnableAVI && OpenTaiko.DTX.listVD.Count > 0 && OpenTaiko.stage演奏ドラム画面.ShowVideo) {
if (OpenTaiko.ConfigIni.bEnableAVI && OpenTaiko.TJA.listVD.Count > 0 && OpenTaiko.stage演奏ドラム画面.ShowVideo) {
if (OpenTaiko.Tx.Lane_Background_Main != null) OpenTaiko.Tx.Lane_Background_Main.Opacity = OpenTaiko.ConfigIni.nBGAlpha;
if (OpenTaiko.Tx.Lane_Background_AI != null) OpenTaiko.Tx.Lane_Background_AI.Opacity = OpenTaiko.ConfigIni.nBGAlpha;
if (OpenTaiko.Tx.Lane_Background_Sub != null) OpenTaiko.Tx.Lane_Background_Sub.Opacity = OpenTaiko.ConfigIni.nBGAlpha;
@ -775,7 +775,7 @@ internal class CActImplLaneTaiko : CActivity {
}
public void t分岐レイヤー_コース変化(CDTX.ECourse n現在, CDTX.ECourse n次回, int nPlayer) {
public void t分岐レイヤー_コース変化(CTja.ECourse n現在, CTja.ECourse n次回, int nPlayer) {
if (n現在 == n次回) {
return;
}
@ -851,8 +851,8 @@ internal class CActImplLaneTaiko : CActivity {
[StructLayout(LayoutKind.Sequential)]
public struct STBRANCH {
public CCounter ct分岐アニメ進行;
public CDTX.ECourse nBefore;
public CDTX.ECourse nAfter;
public CTja.ECourse nBefore;
public CTja.ECourse nAfter;
public long nフラッシュ制御タイマ;
public int nBranchレイヤー透明度;

View File

@ -22,8 +22,8 @@ internal class CActImplMtaiko : CActivity {
this.ctレベルアップダウン = new CCounter[5];
ctSymbolFlash = new CCounter[5];
this.After = new CDTX.ECourse[5];
this.Before = new CDTX.ECourse[5];
this.After = new CTja.ECourse[5];
this.Before = new CTja.ECourse[5];
for (int i = 0; i < 5; i++) {
this.ctレベルアップダウン[i] = new CCounter();
BackSymbolEvent(i);
@ -463,7 +463,7 @@ internal class CActImplMtaiko : CActivity {
}
public void tBranchEvent(CDTX.ECourse Before, CDTX.ECourse After, int player) {
public void tBranchEvent(CTja.ECourse Before, CTja.ECourse After, int player) {
if (After != Before)
this.ctレベルアップダウン[player] = new CCounter(0, 1000, 1, OpenTaiko.Timer);
@ -569,8 +569,8 @@ internal class CActImplMtaiko : CActivity {
//譜面分岐
private CCounter[] ctレベルアップダウン;
public CDTX.ECourse[] After;
public CDTX.ECourse[] Before;
public CTja.ECourse[] After;
public CTja.ECourse[] Before;
private CCounter[] ctSymbolFlash = new CCounter[5];
//-----------------
#endregion

View File

@ -13,7 +13,7 @@ internal class CActImplRunner : CActivity {
base.IsDeActivated = true;
}
public void Start(int Player, bool IsMiss, CDTX.CChip pChip) {
public void Start(int Player, bool IsMiss, CChip pChip) {
if (Runner != null && !OpenTaiko.ConfigIni.SimpleMode) {
while (stRunners[Index].b使用中) {
Index += 1;
@ -22,7 +22,7 @@ internal class CActImplRunner : CActivity {
break; // 2018.6.15 IMARER 無限ループが発生するので修正
}
}
if (pChip.nチャンネル番号 < 0x15 || (pChip.nチャンネル番号 >= 0x1A)) {
if (pChip.nChannelNo < 0x15 || (pChip.nChannelNo >= 0x1A)) {
if (!stRunners[Index].b使用中) {
stRunners[Index].b使用中 = true;
stRunners[Index].nPlayer = Player;

View File

@ -32,11 +32,11 @@ internal class CActImplScore : CAct演奏スコア共通 {
}
for (int i = 0; i < 5; i++) {
if (!this.ctボーナス加算タイマ[i].IsStoped) {
this.ctボーナス加算タイマ[i].Tick();
if (this.ctボーナス加算タイマ[i].IsEnded) {
if (!this.ctBonusAddTimer[i].IsStoped) {
this.ctBonusAddTimer[i].Tick();
if (this.ctBonusAddTimer[i].IsEnded) {
OpenTaiko.stage演奏ドラム画面.actScore.BonusAdd(i);
this.ctボーナス加算タイマ[i].Stop();
this.ctBonusAddTimer[i].Stop();
}
}
}

View File

@ -15,7 +15,7 @@ class CActImplTrainingMode : CActivity {
base.Activate();
CDTX dTX = OpenTaiko.DTX;
CTja dTX = OpenTaiko.TJA;
var measureCount = 1;
var bIsInGoGo = false;
@ -23,15 +23,15 @@ class CActImplTrainingMode : CActivity {
int endtime = 1;
int bgmlength = 1;
for (int index = 0; index < OpenTaiko.DTX.listChip.Count; index++) {
if (OpenTaiko.DTX.listChip[index].nチャンネル番号 == 0xff) {
endtime = OpenTaiko.DTX.listChip[index].n発声時刻ms;
for (int index = 0; index < OpenTaiko.TJA.listChip.Count; index++) {
if (OpenTaiko.TJA.listChip[index].nChannelNo == 0xff) {
endtime = OpenTaiko.TJA.listChip[index].n発声時刻ms;
break;
}
}
for (int index = 0; index < OpenTaiko.DTX.listChip.Count; index++) {
if (OpenTaiko.DTX.listChip[index].nチャンネル番号 == 0x01) {
bgmlength = OpenTaiko.DTX.listChip[index].GetDuration() + OpenTaiko.DTX.listChip[index].n発声時刻ms;
for (int index = 0; index < OpenTaiko.TJA.listChip.Count; index++) {
if (OpenTaiko.TJA.listChip[index].nChannelNo == 0x01) {
bgmlength = OpenTaiko.TJA.listChip[index].GetDuration() + OpenTaiko.TJA.listChip[index].n発声時刻ms;
break;
}
}
@ -42,11 +42,11 @@ class CActImplTrainingMode : CActivity {
JumpPointList = new List<STJUMPP>();
for (int i = 0; i < dTX.listChip.Count; i++) {
CDTX.CChip pChip = dTX.listChip[i];
CChip pChip = dTX.listChip[i];
if (pChip.n整数値_内部番号 > measureCount && pChip.nチャンネル番号 == 0x50) measureCount = pChip.n整数値_内部番号;
if (pChip.n整数値_内部番号 > measureCount && pChip.nChannelNo == 0x50) measureCount = pChip.n整数値_内部番号;
if (pChip.nチャンネル番号 == 0x9E && !bIsInGoGo) {
if (pChip.nChannelNo == 0x9E && !bIsInGoGo) {
bIsInGoGo = true;
var current = ((double)(pChip.db発声時刻ms * OpenTaiko.ConfigIni.SongPlaybackSpeed));
@ -55,7 +55,7 @@ class CActImplTrainingMode : CActivity {
this.gogoXList.Add((int)(width * (current / length)));
}
if (pChip.nチャンネル番号 == 0x9F && bIsInGoGo) {
if (pChip.nChannelNo == 0x9F && bIsInGoGo) {
bIsInGoGo = false;
}
}
@ -263,8 +263,8 @@ class CActImplTrainingMode : CActivity {
if (this.ctBackgroundScrollTimer != null) {
this.ctBackgroundScrollTimer.TickLoop();
double TexSize = OpenTaiko.Skin.Resolution[0] / OpenTaiko.Tx.Tokkun_Background_Up.szTextureSize.Width;
// 1280をテクスチャサイズで割ったものを切り上げて、プラス+1足す。
double TexSize = OpenTaiko.Skin.Resolution[0] / OpenTaiko.Tx.Tokkun_Background_Up.szTextureSize.Width;
// 1280をテクスチャサイズで割ったものを切り上げて、プラス+1足す。
int ForLoop = (int)Math.Ceiling(TexSize) + 1;
OpenTaiko.Tx.Tokkun_Background_Up.t2D描画(0 - this.ctBackgroundScrollTimer.CurrentValue, OpenTaiko.Skin.Background_Scroll_Y[0]);
for (int l = 1; l < ForLoop + 1; l++) {
@ -325,7 +325,7 @@ class CActImplTrainingMode : CActivity {
}
public void tPausePlay() {
CDTX dTX = OpenTaiko.DTX;
CTja dTX = OpenTaiko.TJA;
this.nスクロール後ms = SoundManager.PlayTimer.NowTimeMs;
@ -333,15 +333,15 @@ class CActImplTrainingMode : CActivity {
SoundManager.PlayTimer.Pause();
for (int i = 0; i < dTX.listChip.Count; i++) {
CDTX.CChip pChip = dTX.listChip[i];
CChip pChip = dTX.listChip[i];
pChip.bHit = false;
if (dTX.listChip[i].nチャンネル番号 != 0x50) {
if (dTX.listChip[i].nChannelNo != 0x50) {
pChip.bShow = true;
pChip.b可視 = true;
pChip.bVisible = true;
}
}
OpenTaiko.DTX.t全チップの再生一時停止();
OpenTaiko.TJA.t全チップの再生一時停止();
OpenTaiko.stage演奏ドラム画面.bPAUSE = true;
OpenTaiko.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] = this.nCurrentMeasure;
this.bTrainingPAUSE = true;
@ -351,12 +351,12 @@ class CActImplTrainingMode : CActivity {
}
public void tResumePlay() {
CDTX dTX = OpenTaiko.DTX;
CTja dTX = OpenTaiko.TJA;
this.bCurrentlyScrolling = false;
SoundManager.PlayTimer.NowTimeMs = this.nスクロール後ms;
int n演奏開始Chip = OpenTaiko.stage演奏ドラム画面.n現在のトップChip;
int n演奏開始Chip = OpenTaiko.stage演奏ドラム画面.nCurrentTopChip;
int finalStartBar;
finalStartBar = this.nCurrentMeasure - 2;
@ -365,29 +365,29 @@ class CActImplTrainingMode : CActivity {
OpenTaiko.stage演奏ドラム画面.t演奏位置の変更(finalStartBar, 0);
int n少し戻ってから演奏開始Chip = OpenTaiko.stage演奏ドラム画面.n現在のトップChip;
int n少し戻ってから演奏開始Chip = OpenTaiko.stage演奏ドラム画面.nCurrentTopChip;
OpenTaiko.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] = 0;
OpenTaiko.stage演奏ドラム画面.t数値の初期化(true, true);
OpenTaiko.stage演奏ドラム画面.Activate();
if (OpenTaiko.ConfigIni.bTokkunMode && OpenTaiko.stage演奏ドラム画面.actBalloon.KusudamaIsActive) OpenTaiko.stage演奏ドラム画面.actBalloon.KusuMiss();
for (int i = 0; i < dTX.listChip.Count; i++) {
//if (i < n演奏開始Chip && (dTX.listChip[i].nチャンネル番号 > 0x10 && dTX.listChip[i].nチャンネル番号 < 0x20)) //2020.07.08 ノーツだけ消す。 null参照回避のために順番変更
for (int i = 0; i < dTX.listChip.Count; i++) {
//if (i < n演奏開始Chip && (dTX.listChip[i].nチャンネル番号 > 0x10 && dTX.listChip[i].nチャンネル番号 < 0x20)) //2020.07.08 ノーツだけ消す。 null参照回避のために順番変更
if (i < n演奏開始Chip && NotesManager.IsHittableNote(dTX.listChip[i])) {
dTX.listChip[i].bHit = true;
dTX.listChip[i].IsHitted = true;
dTX.listChip[i].b可視 = false;
dTX.listChip[i].bVisible = false;
dTX.listChip[i].bShow = false;
}
if (i < n少し戻ってから演奏開始Chip && dTX.listChip[i].nチャンネル番号 == 0x01) {
if (i < n少し戻ってから演奏開始Chip && dTX.listChip[i].nChannelNo == 0x01) {
dTX.listChip[i].bHit = true;
dTX.listChip[i].IsHitted = true;
dTX.listChip[i].b可視 = false;
dTX.listChip[i].bVisible = false;
dTX.listChip[i].bShow = false;
}
if (dTX.listChip[i].nチャンネル番号 == 0x50 && dTX.listChip[i].n整数値_内部番号 < finalStartBar) {
if (dTX.listChip[i].nChannelNo == 0x50 && dTX.listChip[i].n整数値_内部番号 < finalStartBar) {
dTX.listChip[i].bHit = true;
dTX.listChip[i].IsHitted = true;
}
@ -404,32 +404,32 @@ class CActImplTrainingMode : CActivity {
public void tMatchWithTheChartDisplayPosition(bool doScroll) {
this.nスクロール前ms = SoundManager.PlayTimer.NowTimeMs;
CDTX dTX = OpenTaiko.DTX;
CTja dTX = OpenTaiko.TJA;
bool bSuccessSeek = false;
for (int i = 0; i < dTX.listChip.Count; i++) {
CDTX.CChip pChip = dTX.listChip[i];
CChip pChip = dTX.listChip[i];
if (pChip.nチャンネル番号 == 0x50 && pChip.n整数値_内部番号 > nCurrentMeasure - 1) {
if (pChip.nChannelNo == 0x50 && pChip.n整数値_内部番号 > nCurrentMeasure - 1) {
bSuccessSeek = true;
OpenTaiko.stage演奏ドラム画面.n現在のトップChip = i;
OpenTaiko.stage演奏ドラム画面.nCurrentTopChip = i;
break;
}
}
if (!bSuccessSeek) {
OpenTaiko.stage演奏ドラム画面.n現在のトップChip = 0;
OpenTaiko.stage演奏ドラム画面.nCurrentTopChip = 0;
} else {
while (dTX.listChip[OpenTaiko.stage演奏ドラム画面.n現在のトップChip].n発声時刻ms == dTX.listChip[OpenTaiko.stage演奏ドラム画面.n現在のトップChip - 1].n発声時刻ms && OpenTaiko.stage演奏ドラム画面.n現在のトップChip != 0)
OpenTaiko.stage演奏ドラム画面.n現在のトップChip--;
while (dTX.listChip[OpenTaiko.stage演奏ドラム画面.nCurrentTopChip].n発声時刻ms == dTX.listChip[OpenTaiko.stage演奏ドラム画面.nCurrentTopChip - 1].n発声時刻ms && OpenTaiko.stage演奏ドラム画面.nCurrentTopChip != 0)
OpenTaiko.stage演奏ドラム画面.nCurrentTopChip--;
}
if (doScroll) {
this.nスクロール後ms = (long)(dTX.listChip[OpenTaiko.stage演奏ドラム画面.n現在のトップChip].n発声時刻ms / OpenTaiko.ConfigIni.SongPlaybackSpeed);
this.nスクロール後ms = (long)(dTX.listChip[OpenTaiko.stage演奏ドラム画面.nCurrentTopChip].n発声時刻ms / OpenTaiko.ConfigIni.SongPlaybackSpeed);
this.bCurrentlyScrolling = true;
this.ctScrollCounter = new CCounter(0, OpenTaiko.Skin.Game_Training_ScrollTime, 1, OpenTaiko.Timer);
} else {
SoundManager.PlayTimer.NowTimeMs = (long)(dTX.listChip[OpenTaiko.stage演奏ドラム画面.n現在のトップChip].n発声時刻ms / OpenTaiko.ConfigIni.SongPlaybackSpeed);
SoundManager.PlayTimer.NowTimeMs = (long)(dTX.listChip[OpenTaiko.stage演奏ドラム画面.nCurrentTopChip].n発声時刻ms / OpenTaiko.ConfigIni.SongPlaybackSpeed);
this.nスクロール後ms = SoundManager.PlayTimer.NowTimeMs;
}
}
@ -457,8 +457,8 @@ class CActImplTrainingMode : CActivity {
}
public int nCurrentMeasure;
public int nMeasureCount;
public int nMeasureCount;
#region [private]
private long nスクロール前ms;
private long nスクロール後ms;
@ -480,8 +480,8 @@ class CActImplTrainingMode : CActivity {
private struct STJUMPP {
public long Time;
public int Measure;
}
}
/// <summary>
///
/// </summary>
@ -500,7 +500,7 @@ class CActImplTrainingMode : CActivity {
t = t - 2;
return (int)(c / 2 * (Math.Sqrt(1 - t * t) + 1) + b);
}
}
}
#endregion
}

View File

@ -87,7 +87,7 @@ internal class CAct演奏Drumsゲームモード : CActivity {
public void t叩ききりまショー_初期化() {
this.st叩ききりまショー = new ST叩ききりまショー();
this.n演奏時間 = (OpenTaiko.DTX.listChip.Count > 0) ? OpenTaiko.DTX.listChip[OpenTaiko.DTX.listChip.Count - 1].n発声時刻ms : 0;
this.n演奏時間 = (OpenTaiko.TJA.listChip.Count > 0) ? OpenTaiko.TJA.listChip[OpenTaiko.TJA.listChip.Count - 1].n発声時刻ms : 0;
this.st叩ききりまショー.ct残り時間 = new CCounter(0, 25000, 1, OpenTaiko.Timer);
this.st叩ききりまショー.ct加算時間表示 = new CCounter();
this.st叩ききりまショー.ct加算審査中 = new CCounter();
@ -248,7 +248,7 @@ internal class CAct演奏Drumsゲームモード : CActivity {
};
//★10の場合超激辛モードになる。
if (OpenTaiko.DTX.LEVELtaiko[OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0]] >= 10) {
if (OpenTaiko.TJA.LEVELtaiko[OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0]] >= 10) {
#region[ ]
this.st叩ききりまショー.b超激辛 = true;
@ -549,8 +549,8 @@ internal class CAct演奏Drumsゲームモード : CActivity {
}
}
#region[ ]
if (OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect != 0 || OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great != 0) {
double db全体精度 = ((double)(OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect + OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great) / this.st叩ききりまショー.n区間ート数) * 100.0;
if (OpenTaiko.stage演奏ドラム画面.nHitCount_ExclAuto.Drums.Perfect != 0 || OpenTaiko.stage演奏ドラム画面.nHitCount_ExclAuto.Drums.Great != 0) {
double db全体精度 = ((double)(OpenTaiko.stage演奏ドラム画面.nHitCount_ExclAuto.Drums.Perfect + OpenTaiko.stage演奏ドラム画面.nHitCount_ExclAuto.Drums.Great) / this.st叩ききりまショー.n区間ート数) * 100.0;
for (int i = 0; i < this.n全体精度ボーナス.Length; i++) {
if (db全体精度 >= this.n全体精度ボーナス[i].ret) {
n延長する時間 += this.n全体精度ボーナス[i].point;
@ -570,8 +570,8 @@ internal class CAct演奏Drumsゲームモード : CActivity {
}
}
#endregion
if (OpenTaiko.stage演奏ドラム画面.actCombo.n現在のコンボ数.[0] != 0) {
double db全体コンボ率 = ((double)OpenTaiko.stage演奏ドラム画面.actCombo.n現在のコンボ数.[0] / this.st叩ききりまショー.n現在通過したート数) * 100.0;
if (OpenTaiko.stage演奏ドラム画面.actCombo.nCurrentCombo.[0] != 0) {
double db全体コンボ率 = ((double)OpenTaiko.stage演奏ドラム画面.actCombo.nCurrentCombo.[0] / this.st叩ききりまショー.n現在通過したート数) * 100.0;
for (int i = 0; i < this.n全体コンボ率ボーナス.Length; i++) {
if (db全体コンボ率 >= this.n全体コンボ率ボーナス[i].ret) {
n延長する時間 += this.n全体コンボ率ボーナス[i].point;
@ -580,7 +580,7 @@ internal class CAct演奏Drumsゲームモード : CActivity {
}
}
double db全体ミス率 = (((double)OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Poor + OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss) / this.st叩ききりまショー.n現在通過したート数) * 100.0;
double db全体ミス率 = (((double)OpenTaiko.stage演奏ドラム画面.nHitCount_ExclAuto.Drums.Poor + OpenTaiko.stage演奏ドラム画面.nHitCount_ExclAuto.Drums.Miss) / this.st叩ききりまショー.n現在通過したート数) * 100.0;
for (int i = 0; i < this.n全体ミス率ボーナス.Length; i++) {
if (db全体ミス率 >= this.n全体ミス率ボーナス[i].ret) {
n延長する時間 += this.n全体ミス率ボーナス[i].point;

View File

@ -61,16 +61,16 @@ internal class Dan_Cert : CActivity {
ScreenPoint = new double[] { OpenTaiko.Skin.Game_Lane_X[0] - OpenTaiko.Tx.DanC_Screen.szTextureSize.Width / 2, OpenTaiko.Skin.Resolution[0] };
OpenTaiko.stage演奏ドラム画面.ReSetScore(OpenTaiko.DTX.List_DanSongs[NowShowingNumber].ScoreInit, OpenTaiko.DTX.List_DanSongs[NowShowingNumber].ScoreDiff);
OpenTaiko.stage演奏ドラム画面.ReSetScore(OpenTaiko.TJA.List_DanSongs[NowShowingNumber].ScoreInit, OpenTaiko.TJA.List_DanSongs[NowShowingNumber].ScoreDiff);
OpenTaiko.stage演奏ドラム画面.ftDanReSetScoreNiji(OpenTaiko.DTX.nDan_NotesCount[NowShowingNumber], OpenTaiko.DTX.nDan_BalloonCount[NowShowingNumber]);
OpenTaiko.stage演奏ドラム画面.ftDanReSetBranches(OpenTaiko.DTX.bHasBranchDan[NowShowingNumber]);
OpenTaiko.stage演奏ドラム画面.ftDanReSetScoreNiji(OpenTaiko.TJA.nDan_NotesCount[NowShowingNumber], OpenTaiko.TJA.nDan_BalloonCount[NowShowingNumber]);
OpenTaiko.stage演奏ドラム画面.ftDanReSetBranches(OpenTaiko.TJA.bHasBranchDan[NowShowingNumber]);
IsAnimating = true;
//段位道場
//TJAPlayer3.stage演奏ドラム画面.actPanel.SetPanelString(TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].Title, TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].Genre, 1 + NowShowingNumber + "曲目");
OpenTaiko.stage演奏ドラム画面.actPanel.SetPanelString(OpenTaiko.DTX.List_DanSongs[NowShowingNumber].Title,
OpenTaiko.stage演奏ドラム画面.actPanel.SetPanelString(OpenTaiko.TJA.List_DanSongs[NowShowingNumber].Title,
CLangManager.LangInstance.GetString("TITLE_MODE_DAN"),
1 + NowShowingNumber + "曲目");
@ -80,7 +80,7 @@ internal class Dan_Cert : CActivity {
public override void Activate() {
for (int i = 0; i < CExamInfo.cMaxExam; i++) {
if (OpenTaiko.DTX.Dan_C[i] != null) Challenge[i] = new Dan_C(OpenTaiko.DTX.Dan_C[i]);
if (OpenTaiko.TJA.Dan_C[i] != null) Challenge[i] = new Dan_C(OpenTaiko.TJA.Dan_C[i]);
for (int j = 0; j < OpenTaiko.stageSongSelect.rChoosenSong.DanSongs.Count; j++) {
if (OpenTaiko.stageSongSelect.rChoosenSong.DanSongs[j].Dan_C[i] != null) {
@ -121,7 +121,7 @@ internal class Dan_Cert : CActivity {
if (OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Dan) IsAnimating = true;
Dan_Plate = OpenTaiko.tテクスチャの生成(Path.GetDirectoryName(OpenTaiko.DTX.strファイル名の絶対パス) + @$"{Path.DirectorySeparatorChar}Dan_Plate.png");
Dan_Plate = OpenTaiko.tテクスチャの生成(Path.GetDirectoryName(OpenTaiko.TJA.strファイル名の絶対パス) + @$"{Path.DirectorySeparatorChar}Dan_Plate.png");
base.Activate();
}
@ -134,14 +134,14 @@ internal class Dan_Cert : CActivity {
var oldReached = Challenge[i].GetReached();
var isChangedAmount = false;
int totalGoods = (int)OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Perfect + OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect;
int totalOks = (int)OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Great + OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great;
int totalBads = (int)OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss;
int totalCombo = (int)OpenTaiko.stage演奏ドラム画面.actCombo.n現在のコンボ数.[0];
int totalGoods = (int)OpenTaiko.stage演奏ドラム画面.nHitCount_InclAuto.Drums.Perfect + OpenTaiko.stage演奏ドラム画面.nHitCount_ExclAuto.Drums.Perfect;
int totalOks = (int)OpenTaiko.stage演奏ドラム画面.nHitCount_InclAuto.Drums.Great + OpenTaiko.stage演奏ドラム画面.nHitCount_ExclAuto.Drums.Great;
int totalBads = (int)OpenTaiko.stage演奏ドラム画面.nHitCount_ExclAuto.Drums.Miss;
int totalCombo = (int)OpenTaiko.stage演奏ドラム画面.actCombo.nCurrentCombo.[0];
int individualGoods = OpenTaiko.stage演奏ドラム画面.n[NowShowingNumber];
int individualOks = OpenTaiko.stage演奏ドラム画面.n[NowShowingNumber];
int individualBads = OpenTaiko.stage演奏ドラム画面.n不可[NowShowingNumber];
int individualGoods = OpenTaiko.stage演奏ドラム画面.nGood[NowShowingNumber];
int individualOks = OpenTaiko.stage演奏ドラム画面.nOk[NowShowingNumber];
int individualBads = OpenTaiko.stage演奏ドラム画面.nBad[NowShowingNumber];
int individualCombo = OpenTaiko.stage演奏ドラム画面.nHighestCombo[NowShowingNumber];
int totalADLIBs = OpenTaiko.stage演奏ドラム画面.CChartScore[0].nADLIB;
@ -176,10 +176,10 @@ internal class Dan_Cert : CActivity {
isChangedAmount = Challenge[i].Update((int)OpenTaiko.stage演奏ドラム画面.actScore.GetScore(0));
break;
case Exam.Type.Roll:
isChangedAmount = Challenge[i].Update(ExamChange[i] ? OpenTaiko.stage演奏ドラム画面.n連打[NowShowingNumber] : (int)(OpenTaiko.stage演奏ドラム画面.GetRoll(0)));
isChangedAmount = Challenge[i].Update(ExamChange[i] ? OpenTaiko.stage演奏ドラム画面.nRoll[NowShowingNumber] : (int)(OpenTaiko.stage演奏ドラム画面.GetRoll(0)));
break;
case Exam.Type.Hit:
isChangedAmount = Challenge[i].Update(ExamChange[i] ? OpenTaiko.stage演奏ドラム画面.n[NowShowingNumber] + OpenTaiko.stage演奏ドラム画面.n[NowShowingNumber] + OpenTaiko.stage演奏ドラム画面.n連打[NowShowingNumber] : (int)(OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Perfect + OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect + OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Great + OpenTaiko.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great + OpenTaiko.stage演奏ドラム画面.GetRoll(0)));
isChangedAmount = Challenge[i].Update(ExamChange[i] ? OpenTaiko.stage演奏ドラム画面.nGood[NowShowingNumber] + OpenTaiko.stage演奏ドラム画面.nOk[NowShowingNumber] + OpenTaiko.stage演奏ドラム画面.nRoll[NowShowingNumber] : (int)(OpenTaiko.stage演奏ドラム画面.nHitCount_InclAuto.Drums.Perfect + OpenTaiko.stage演奏ドラム画面.nHitCount_ExclAuto.Drums.Perfect + OpenTaiko.stage演奏ドラム画面.nHitCount_InclAuto.Drums.Great + OpenTaiko.stage演奏ドラム画面.nHitCount_ExclAuto.Drums.Great + OpenTaiko.stage演奏ドラム画面.GetRoll(0)));
break;
case Exam.Type.Combo:
isChangedAmount = Challenge[i].Update(ExamChange[i] ? individualCombo : totalCombo);
@ -205,10 +205,10 @@ internal class Dan_Cert : CActivity {
if (Challenge[i].GetExamRange() == Exam.Range.Less) {
Challenge[i].SetReached(!Challenge[i].IsCleared[0]);
} else {
songsnotesremain[NowShowingNumber] = OpenTaiko.DTX.nDan_NotesCount[NowShowingNumber]
- (OpenTaiko.stage演奏ドラム画面.n[NowShowingNumber]
+ OpenTaiko.stage演奏ドラム画面.n[NowShowingNumber]
+ OpenTaiko.stage演奏ドラム画面.n不可[NowShowingNumber]);
songsnotesremain[NowShowingNumber] = OpenTaiko.TJA.nDan_NotesCount[NowShowingNumber]
- (OpenTaiko.stage演奏ドラム画面.nGood[NowShowingNumber]
+ OpenTaiko.stage演奏ドラム画面.nOk[NowShowingNumber]
+ OpenTaiko.stage演奏ドラム画面.nBad[NowShowingNumber]);
/*
notesremain = TJAPlayer3.DTX.nーツ数[3]
@ -220,7 +220,7 @@ internal class Dan_Cert : CActivity {
+ TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss);
*/
notesremain = OpenTaiko.DTX.nーツ数[3]
notesremain = OpenTaiko.TJA.nーツ数[3]
- (OpenTaiko.stage演奏ドラム画面.CChartScore[0].nGood
+ OpenTaiko.stage演奏ドラム画面.CChartScore[0].nGreat
+ OpenTaiko.stage演奏ドラム画面.CChartScore[0].nMiss);
@ -253,8 +253,8 @@ internal class Dan_Cert : CActivity {
: notesremain < (Challenge[i].Value[0] - Challenge[i].Amount)) Challenge[i].SetReached(true);
break;
case Exam.Type.Combo:
if (notesremain + OpenTaiko.stage演奏ドラム画面.actCombo.n現在のコンボ数.P1 < ((Challenge[i].Value[0]))
&& OpenTaiko.stage演奏ドラム画面.actCombo.n現在のコンボ数.[0] < (Challenge[i].Value[0])) Challenge[i].SetReached(true);
if (notesremain + OpenTaiko.stage演奏ドラム画面.actCombo.nCurrentCombo.P1 < ((Challenge[i].Value[0]))
&& OpenTaiko.stage演奏ドラム画面.actCombo.nCurrentCombo.[0] < (Challenge[i].Value[0])) Challenge[i].SetReached(true);
break;
default:
break;
@ -265,10 +265,10 @@ internal class Dan_Cert : CActivity {
// Check challenge fails at the end of each songs
if (OpenTaiko.DTX.listChip.Count > 0) {
if (OpenTaiko.TJA.listChip.Count > 0) {
if (ExamChange[i]
? OpenTaiko.DTX.pDan_LastChip[NowShowingNumber].n発声時刻ms <= SoundManager.PlayTimer.NowTime//TJAPlayer3.Timer.n現在時刻
: OpenTaiko.DTX.listChip[OpenTaiko.DTX.listChip.Count - 1].n発声時刻ms <= SoundManager.PlayTimer.NowTime)//TJAPlayer3.Timer.n現在時刻)
? OpenTaiko.TJA.pDan_LastChip[NowShowingNumber].n発声時刻ms <= SoundManager.PlayTimer.NowTime//TJAPlayer3.Timer.n現在時刻
: OpenTaiko.TJA.listChip[OpenTaiko.TJA.listChip.Count - 1].n発声時刻ms <= SoundManager.PlayTimer.NowTime)//TJAPlayer3.Timer.n現在時刻)
{
switch (Challenge[i].GetExamType()) {
case Exam.Type.Score:
@ -350,20 +350,20 @@ internal class Dan_Cert : CActivity {
if (Counter_Text.CurrentValue >= 2000) {
for (int i = Counter_Text_Old; i < Counter_Text.CurrentValue; i++) {
if (i % 2 == 0) {
if (OpenTaiko.DTX.List_DanSongs[NowShowingNumber].TitleTex != null) {
OpenTaiko.DTX.List_DanSongs[NowShowingNumber].TitleTex.Opacity--;
if (OpenTaiko.TJA.List_DanSongs[NowShowingNumber].TitleTex != null) {
OpenTaiko.TJA.List_DanSongs[NowShowingNumber].TitleTex.Opacity--;
}
if (OpenTaiko.DTX.List_DanSongs[NowShowingNumber].SubTitleTex != null) {
OpenTaiko.DTX.List_DanSongs[NowShowingNumber].SubTitleTex.Opacity--;
if (OpenTaiko.TJA.List_DanSongs[NowShowingNumber].SubTitleTex != null) {
OpenTaiko.TJA.List_DanSongs[NowShowingNumber].SubTitleTex.Opacity--;
}
}
}
} else {
if (OpenTaiko.DTX.List_DanSongs[NowShowingNumber].TitleTex != null) {
OpenTaiko.DTX.List_DanSongs[NowShowingNumber].TitleTex.Opacity = 255;
if (OpenTaiko.TJA.List_DanSongs[NowShowingNumber].TitleTex != null) {
OpenTaiko.TJA.List_DanSongs[NowShowingNumber].TitleTex.Opacity = 255;
}
if (OpenTaiko.DTX.List_DanSongs[NowShowingNumber].SubTitleTex != null) {
OpenTaiko.DTX.List_DanSongs[NowShowingNumber].SubTitleTex.Opacity = 255;
if (OpenTaiko.TJA.List_DanSongs[NowShowingNumber].SubTitleTex != null) {
OpenTaiko.TJA.List_DanSongs[NowShowingNumber].SubTitleTex.Opacity = 255;
}
}
Counter_Text_Old = Counter_Text.CurrentValue;
@ -430,8 +430,8 @@ internal class Dan_Cert : CActivity {
}
if (Counter_Text != null) {
if (Counter_Text.IsUnEnded) {
var title = OpenTaiko.DTX.List_DanSongs[NowShowingNumber].TitleTex;
var subTitle = OpenTaiko.DTX.List_DanSongs[NowShowingNumber].SubTitleTex;
var title = OpenTaiko.TJA.List_DanSongs[NowShowingNumber].TitleTex;
var subTitle = OpenTaiko.TJA.List_DanSongs[NowShowingNumber].SubTitleTex;
if (subTitle == null)
title?.t2D拡大率考慮中央基準描画(OpenTaiko.Skin.Game_DanC_Title_X[0], OpenTaiko.Skin.Game_DanC_Title_Y[0]);
else {

View File

@ -49,7 +49,7 @@ class NotesManager {
return -1;
}
public static int GetNoteX(CDTX.CChip pChip, double timems, double scroll, int interval, float play_bpm_time, EScrollMode eScrollMode, bool roll) {
public static int GetNoteX(CChip pChip, double timems, double scroll, int interval, float play_bpm_time, EScrollMode eScrollMode, bool roll) {
double hbtime = ((roll ? pChip.fBMSCROLLTime_end : pChip.fBMSCROLLTime) - (play_bpm_time));
double screen_ratio = OpenTaiko.Skin.Resolution[0] / 1280.0;
switch (eScrollMode) {
@ -66,7 +66,7 @@ class NotesManager {
}
}
public static int GetNoteY(CDTX.CChip pChip, double timems, double scroll, int interval, float play_bpm_time, EScrollMode eScrollMode, bool roll) {
public static int GetNoteY(CChip pChip, double timems, double scroll, int interval, float play_bpm_time, EScrollMode eScrollMode, bool roll) {
double hbtime = ((roll ? pChip.fBMSCROLLTime_end : pChip.fBMSCROLLTime) - (play_bpm_time));
double screen_ratio = OpenTaiko.Skin.Resolution[1] / 720.0;
switch (eScrollMode) {
@ -87,7 +87,7 @@ class NotesManager {
#region [Gameplay]
public static bool IsExpectedPad(int stored, int hit, CDTX.CChip chip, EGameType gt) {
public static bool IsExpectedPad(int stored, int hit, CChip chip, EGameType gt) {
var inPad = (EPad)hit;
var onPad = (EPad)stored;
@ -120,56 +120,56 @@ class NotesManager {
#region [General]
public static bool IsCommonNote(CDTX.CChip chip) {
public static bool IsCommonNote(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 >= 0x11 && chip.nチャンネル番号 < 0x18;
return chip.nChannelNo >= 0x11 && chip.nChannelNo < 0x18;
}
public static bool IsMine(CDTX.CChip chip) {
public static bool IsMine(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x1C;
return chip.nChannelNo == 0x1C;
}
public static bool IsDonNote(CDTX.CChip chip) {
public static bool IsDonNote(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x11 || chip.nチャンネル番号 == 0x13 || chip.nチャンネル番号 == 0x1A;
return chip.nChannelNo == 0x11 || chip.nChannelNo == 0x13 || chip.nChannelNo == 0x1A;
}
public static bool IsKaNote(CDTX.CChip chip) {
public static bool IsKaNote(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x12 || chip.nチャンネル番号 == 0x14 || chip.nチャンネル番号 == 0x1B;
return chip.nChannelNo == 0x12 || chip.nChannelNo == 0x14 || chip.nChannelNo == 0x1B;
}
public static bool IsSmallNote(CDTX.CChip chip, bool blue) {
public static bool IsSmallNote(CChip chip, bool blue) {
if (chip == null) return false;
return blue ? chip.nチャンネル番号 == 0x12 : chip.nチャンネル番号 == 0x11;
return blue ? chip.nChannelNo == 0x12 : chip.nChannelNo == 0x11;
}
public static bool IsSmallNote(CDTX.CChip chip) {
public static bool IsSmallNote(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x12 || chip.nチャンネル番号 == 0x11;
return chip.nChannelNo == 0x12 || chip.nChannelNo == 0x11;
}
public static bool IsBigNote(CDTX.CChip chip) {
public static bool IsBigNote(CChip chip) {
if (chip == null) return false;
return (chip.nチャンネル番号 == 0x13 || chip.nチャンネル番号 == 0x14 || chip.nチャンネル番号 == 0x1A || chip.nチャンネル番号 == 0x1B);
return (chip.nChannelNo == 0x13 || chip.nChannelNo == 0x14 || chip.nChannelNo == 0x1A || chip.nChannelNo == 0x1B);
}
public static bool IsBigKaTaiko(CDTX.CChip chip, EGameType gt) {
public static bool IsBigKaTaiko(CChip chip, EGameType gt) {
if (chip == null) return false;
return (chip.nチャンネル番号 == 0x14 || chip.nチャンネル番号 == 0x1B) && gt == EGameType.Taiko;
return (chip.nChannelNo == 0x14 || chip.nChannelNo == 0x1B) && gt == EGameType.Taiko;
}
public static bool IsBigDonTaiko(CDTX.CChip chip, EGameType gt) {
public static bool IsBigDonTaiko(CChip chip, EGameType gt) {
if (chip == null) return false;
return (chip.nチャンネル番号 == 0x13 || chip.nチャンネル番号 == 0x1A) && gt == EGameType.Taiko;
return (chip.nChannelNo == 0x13 || chip.nChannelNo == 0x1A) && gt == EGameType.Taiko;
}
public static bool IsClapKonga(CDTX.CChip chip, EGameType gt) {
public static bool IsClapKonga(CChip chip, EGameType gt) {
if (chip == null) return false;
return (chip.nチャンネル番号 == 0x14 || chip.nチャンネル番号 == 0x1B) && gt == EGameType.Konga;
return (chip.nChannelNo == 0x14 || chip.nChannelNo == 0x1B) && gt == EGameType.Konga;
}
public static bool IsSwapNote(CDTX.CChip chip, EGameType gt) {
public static bool IsSwapNote(CChip chip, EGameType gt) {
if (chip == null) return false;
return (
IsKongaPink(chip, gt) // Konga Pink note
@ -177,87 +177,87 @@ class NotesManager {
);
}
public static bool IsKongaPink(CDTX.CChip chip, EGameType gt) {
public static bool IsKongaPink(CChip chip, EGameType gt) {
if (chip == null) return false;
// Purple notes are treated as Pink in Konga
return (chip.nチャンネル番号 == 0x13 || chip.nチャンネル番号 == 0x1A || IsPurpleNote(chip)) && gt == EGameType.Konga;
return (chip.nChannelNo == 0x13 || chip.nChannelNo == 0x1A || IsPurpleNote(chip)) && gt == EGameType.Konga;
}
public static bool IsPurpleNote(CDTX.CChip chip) {
public static bool IsPurpleNote(CChip chip) {
if (chip == null) return false;
return (chip.nチャンネル番号 == 0x101);
return (chip.nChannelNo == 0x101);
}
public static bool IsYellowRoll(CDTX.CChip chip) {
public static bool IsYellowRoll(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x21;
return chip.nChannelNo == 0x21;
}
public static bool IsClapRoll(CDTX.CChip chip) {
public static bool IsClapRoll(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x20;
return chip.nChannelNo == 0x20;
}
public static bool IsKusudama(CDTX.CChip chip) {
public static bool IsKusudama(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x19;
return chip.nChannelNo == 0x19;
}
public static bool IsFuzeRoll(CDTX.CChip chip) {
public static bool IsFuzeRoll(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x1D;
return chip.nChannelNo == 0x1D;
}
public static bool IsRollEnd(CDTX.CChip chip) {
public static bool IsRollEnd(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x18;
return chip.nChannelNo == 0x18;
}
public static bool IsBalloon(CDTX.CChip chip) {
public static bool IsBalloon(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x17;
return chip.nChannelNo == 0x17;
}
public static bool IsBigRoll(CDTX.CChip chip) {
public static bool IsBigRoll(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x16;
return chip.nChannelNo == 0x16;
}
public static bool IsSmallRoll(CDTX.CChip chip) {
public static bool IsSmallRoll(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x15;
return chip.nChannelNo == 0x15;
}
public static bool IsADLIB(CDTX.CChip chip) {
public static bool IsADLIB(CChip chip) {
if (chip == null) return false;
return chip.nチャンネル番号 == 0x1F;
return chip.nChannelNo == 0x1F;
}
public static bool IsRoll(CDTX.CChip chip) {
public static bool IsRoll(CChip chip) {
if (chip == null) return false;
return IsBigRoll(chip) || IsSmallRoll(chip) || IsClapRoll(chip) || IsYellowRoll(chip);
}
public static bool IsGenericBalloon(CDTX.CChip chip) {
public static bool IsGenericBalloon(CChip chip) {
if (chip == null) return false;
return IsBalloon(chip) || IsKusudama(chip) || IsFuzeRoll(chip);
}
public static bool IsGenericRoll(CDTX.CChip chip) {
public static bool IsGenericRoll(CChip chip) {
if (chip == null) return false;
return (0x15 <= chip.nチャンネル番号 && chip.nチャンネル番号 <= 0x19) ||
(chip.nチャンネル番号 == 0x20 || chip.nチャンネル番号 == 0x21)
|| chip.nチャンネル番号 == 0x1D;
return (0x15 <= chip.nChannelNo && chip.nChannelNo <= 0x19) ||
(chip.nChannelNo == 0x20 || chip.nChannelNo == 0x21)
|| chip.nChannelNo == 0x1D;
}
public static bool IsMissableNote(CDTX.CChip chip) {
public static bool IsMissableNote(CChip chip) {
if (chip == null) return false;
return (0x11 <= chip.nチャンネル番号 && chip.nチャンネル番号 <= 0x14)
|| chip.nチャンネル番号 == 0x1A
|| chip.nチャンネル番号 == 0x1B
|| chip.nチャンネル番号 == 0x101;
return (0x11 <= chip.nChannelNo && chip.nChannelNo <= 0x14)
|| chip.nChannelNo == 0x1A
|| chip.nChannelNo == 0x1B
|| chip.nChannelNo == 0x101;
}
public static bool IsHittableNote(CDTX.CChip chip) {
public static bool IsHittableNote(CChip chip) {
if (chip == null) return false;
return IsMissableNote(chip)
|| IsGenericRoll(chip)
@ -287,7 +287,7 @@ class NotesManager {
}
// Regular display
public static void DisplayNote(int player, int x, int y, CDTX.CChip chip, int frame, int length = -1) {
public static void DisplayNote(int player, int x, int y, CChip chip, int frame, int length = -1) {
if (OpenTaiko.ConfigIni.eSTEALTH[OpenTaiko.GetActualPlayer(player)] != EStealthMode.Off || !chip.bShow)
return;
@ -325,7 +325,7 @@ class NotesManager {
}
// Roll display
public static void DisplayRoll(int player, int x, int y, CDTX.CChip chip, int frame,
public static void DisplayRoll(int player, int x, int y, CChip chip, int frame,
Color4 normalColor, Color4 effectedColor, int x末端, int y末端) {
EGameType _gt = OpenTaiko.ConfigIni.nGameType[OpenTaiko.GetActualPlayer(player)];
@ -417,7 +417,7 @@ class NotesManager {
}
// SENotes
public static void DisplaySENotes(int player, int x, int y, CDTX.CChip chip) {
public static void DisplaySENotes(int player, int x, int y, CChip chip) {
if (OpenTaiko.ConfigIni.eSTEALTH[OpenTaiko.GetActualPlayer(player)] == EStealthMode.Stealth)
return;

View File

@ -249,12 +249,12 @@ class ScriptBG : IDisposable {
}
double timestamp = -1.0;
if (OpenTaiko.DTX != null) {
if (OpenTaiko.TJA != null) {
double timeoffset = OpenTaiko.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Dan ? -2.0 : -8.2;
// Due to the fact that all Dans use DELAY to offset instead of OFFSET, Dan offset can't be properly synced. ¯\_(ツ)_/¯
timestamp = (((double)(SoundManager.PlayTimer.NowTime * OpenTaiko.ConfigIni.SongPlaybackSpeed)) / 1000.0) +
(-(OpenTaiko.ConfigIni.MusicPreTimeMs + OpenTaiko.DTX.nOFFSET) / 1000.0) +
(-(OpenTaiko.ConfigIni.MusicPreTimeMs + OpenTaiko.TJA.nOFFSET) / 1000.0) +
timeoffset;
}

View File

@ -65,12 +65,12 @@ internal class CActResultImage : CActivity {
private CTexture txリザルト画像;
private bool tプレビュー画像の指定があれば構築する() {
if (string.IsNullOrEmpty(OpenTaiko.DTX.PREIMAGE)) {
if (string.IsNullOrEmpty(OpenTaiko.TJA.PREIMAGE)) {
return false;
}
OpenTaiko.tDisposeSafely(ref this.txリザルト画像);
this.r表示するリザルト画像 = null;
string path = OpenTaiko.DTX.strフォルダ名 + OpenTaiko.DTX.PREIMAGE;
string path = OpenTaiko.TJA.strフォルダ名 + OpenTaiko.TJA.PREIMAGE;
if (!File.Exists(path)) {
Trace.TraceWarning("ファイルが存在しません。({0})", new object[] { path });
return false;

View File

@ -460,7 +460,7 @@ internal class CActResultParameterPanel : CActivity {
OpenTaiko.stage演奏ドラム画面.CChartScore[i].nGood,
OpenTaiko.stage演奏ドラム画面.CChartScore[i].nMiss,
OpenTaiko.stage演奏ドラム画面.GetRoll(i),
OpenTaiko.stage演奏ドラム画面.actCombo.n現在のコンボ数.[i],
OpenTaiko.stage演奏ドラム画面.actCombo.nCurrentCombo.[i],
OpenTaiko.stage演奏ドラム画面.CChartScore[i].nADLIB,
OpenTaiko.stage演奏ドラム画面.CChartScore[i].nMine,
};

View File

@ -21,7 +21,7 @@ internal class CActResultSongBar : CActivity {
public override void Activate() {
var title = OpenTaiko.DTX.TITLE.GetString("");
var title = OpenTaiko.TJA.TITLE.GetString("");
using (var bmpSongTitle = pfMusicName.DrawText(title, OpenTaiko.Skin.Result_MusicName_ForeColor, OpenTaiko.Skin.Result_MusicName_BackColor, null, 30)) {
this.txMusicName = OpenTaiko.tテクスチャの生成(bmpSongTitle, false);

View File

@ -39,7 +39,7 @@ internal class CStage結果 : CStage {
public int[] nスコアランク = { 0, 0, 0, 0, 0 }; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極
public int[] nHighScore = { 0, 0, 0, 0, 0 };
public CDTX.CChip[] r空うちドラムチップ;
public CChip[] r空うちドラムチップ;
public STDGBVALUE<CScoreIni.C演奏記録> st演奏記録;
@ -50,7 +50,7 @@ internal class CStage結果 : CStage {
this.st演奏記録.Guitar = new CScoreIni.C演奏記録();
this.st演奏記録.Bass = new CScoreIni.C演奏記録();
this.st演奏記録.Taiko = new CScoreIni.C演奏記録();
this.r空うちドラムチップ = new CDTX.CChip[10];
this.r空うちドラムチップ = new CChip[10];
this.n総合ランク値 = -1;
this.nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 };
base.eStageID = CStage.EStage.Results;
@ -325,7 +325,7 @@ internal class CStage結果 : CStage {
};
int level = OpenTaiko.stageSongSelect.rChoosenSong.nLevel[diff];
CDTX.ELevelIcon levelIcon = OpenTaiko.stageSongSelect.rChoosenSong.nLevelIcon[diff];
CTja.ELevelIcon levelIcon = OpenTaiko.stageSongSelect.rChoosenSong.nLevelIcon[diff];
return (diffArr[Math.Min(diff, 6)] + "Lv." + level + diffArrIcon[(int)levelIcon]);
}
@ -630,7 +630,7 @@ internal class CStage結果 : CStage {
this.ctPhase3 = null;
examsShift = 0;
Dan_Plate = OpenTaiko.tテクスチャの生成(Path.GetDirectoryName(OpenTaiko.DTX.strファイル名の絶対パス) + @$"{Path.DirectorySeparatorChar}Dan_Plate.png");
Dan_Plate = OpenTaiko.tテクスチャの生成(Path.GetDirectoryName(OpenTaiko.TJA.strファイル名の絶対パス) + @$"{Path.DirectorySeparatorChar}Dan_Plate.png");
base.Activate();
@ -1533,7 +1533,7 @@ internal class CStage結果 : CStage {
OpenTaiko.stage演奏ドラム画面.GetRoll(0), 1.0f);
this.actParameterPanel.t小文字表示(OpenTaiko.Skin.DanResult_MaxCombo[0] + offset, OpenTaiko.Skin.DanResult_MaxCombo[1],
OpenTaiko.stage演奏ドラム画面.actCombo.n現在のコンボ数.[0], 1.0f);
OpenTaiko.stage演奏ドラム画面.actCombo.nCurrentCombo.[0], 1.0f);
this.actParameterPanel.t小文字表示(OpenTaiko.Skin.DanResult_TotalHit[0] + offset, OpenTaiko.Skin.DanResult_TotalHit[1],
totalHit, 1.0f);
@ -1596,10 +1596,10 @@ internal class CStage結果 : CStage {
int[] scoresArr =
{
OpenTaiko.stage演奏ドラム画面.n[i],
OpenTaiko.stage演奏ドラム画面.n[i],
OpenTaiko.stage演奏ドラム画面.n不可[i],
OpenTaiko.stage演奏ドラム画面.n連打[i]
OpenTaiko.stage演奏ドラム画面.nGood[i],
OpenTaiko.stage演奏ドラム画面.nOk[i],
OpenTaiko.stage演奏ドラム画面.nBad[i],
OpenTaiko.stage演奏ドラム画面.nRoll[i]
};
int[] num_x = {