1
0
mirror of synced 2024-11-28 09:20:53 +01:00

色々改善 (#444)

This commit is contained in:
Takkkom 2023-02-28 10:27:10 +09:00 committed by GitHub
parent ba2ebde598
commit ecbfe49050
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 160 additions and 32 deletions

View File

@ -746,9 +746,6 @@ namespace TJAPlayer3
this.soundステージクリア音 = new Cシステムサウンド(@"Sounds\Stage clear.ogg", false, true, true, ESoundGroup.Voice); this.soundステージクリア音 = new Cシステムサウンド(@"Sounds\Stage clear.ogg", false, true, true, ESoundGroup.Voice);
this.soundフルコンボ音 = new Cシステムサウンド(@"Sounds\Full combo.ogg", false, false, true, ESoundGroup.Voice); this.soundフルコンボ音 = new Cシステムサウンド(@"Sounds\Full combo.ogg", false, false, true, ESoundGroup.Voice);
this.sound曲読込開始音 = new Cシステムサウンド(@"Sounds\Now loading.ogg", false, true, true, ESoundGroup.Unknown); this.sound曲読込開始音 = new Cシステムサウンド(@"Sounds\Now loading.ogg", false, true, true, ESoundGroup.Unknown);
this.bgm起動画面 = new Cシステムサウンド(@"Sounds\Setup BGM.ogg", true, true, false, ESoundGroup.SongPlayback);
this.bgmオプション画面 = new Cシステムサウンド(@"Sounds\Option BGM.ogg", true, true, false, ESoundGroup.SongPlayback);
this.bgmコンフィグ画面 = new Cシステムサウンド(@"Sounds\Config BGM.ogg", true, true, false, ESoundGroup.SongPlayback);
//this.bgm選曲画面 = new Cシステムサウンド(@"Sounds\Select BGM.ogg", true, true, false, ESoundGroup.SongPlayback); //this.bgm選曲画面 = new Cシステムサウンド(@"Sounds\Select BGM.ogg", true, true, false, ESoundGroup.SongPlayback);
//this.soundSongSelectChara = new Cシステムサウンド(@"Sounds\SongSelect Chara.ogg", false, false, false, ESoundGroup.SongPlayback); //this.soundSongSelectChara = new Cシステムサウンド(@"Sounds\SongSelect Chara.ogg", false, false, false, ESoundGroup.SongPlayback);
this.soundSkip = new Cシステムサウンド(@"Sounds\Skip.ogg", false, false, false, ESoundGroup.SoundEffect); this.soundSkip = new Cシステムサウンド(@"Sounds\Skip.ogg", false, false, false, ESoundGroup.SoundEffect);
@ -764,8 +761,11 @@ namespace TJAPlayer3
this.sound曲決定音 = new Cシステムサウンド(@"Sounds\SongDecide.ogg", false, false, true, ESoundGroup.Voice); this.sound曲決定音 = new Cシステムサウンド(@"Sounds\SongDecide.ogg", false, false, true, ESoundGroup.Voice);
this.soundSongDecide_AI = new Cシステムサウンド(@"Sounds\SongDecide_AI.ogg", false, false, true, ESoundGroup.Voice); this.soundSongDecide_AI = new Cシステムサウンド(@"Sounds\SongDecide_AI.ogg", false, false, true, ESoundGroup.Voice);
this.bgm起動画面 = new Cシステムサウンド(@"Sounds\BGM\Setup.ogg", true, true, false, ESoundGroup.SongPlayback);
this.bgmタイトルイン = new Cシステムサウンド(@"Sounds\BGM\Title_Start.ogg", false, false, true, ESoundGroup.SongPlayback); this.bgmタイトルイン = new Cシステムサウンド(@"Sounds\BGM\Title_Start.ogg", false, false, true, ESoundGroup.SongPlayback);
this.bgmタイトル = new Cシステムサウンド(@"Sounds\BGM\Title.ogg", true, false, true, ESoundGroup.SongPlayback); this.bgmタイトル = new Cシステムサウンド(@"Sounds\BGM\Title.ogg", true, false, true, ESoundGroup.SongPlayback);
this.bgmオプション画面 = new Cシステムサウンド(@"Sounds\BGM\Option.ogg", true, true, false, ESoundGroup.SongPlayback);
this.bgmコンフィグ画面 = new Cシステムサウンド(@"Sounds\BGM\Config.ogg", true, true, false, ESoundGroup.SongPlayback);
this.bgm選曲画面イン = new Cシステムサウンド(@"Sounds\BGM\SongSelect_Start.ogg", false, false, true, ESoundGroup.SongPlayback); this.bgm選曲画面イン = new Cシステムサウンド(@"Sounds\BGM\SongSelect_Start.ogg", false, false, true, ESoundGroup.SongPlayback);
this.bgm選曲画面 = new Cシステムサウンド(@"Sounds\BGM\SongSelect.ogg", true, false, true, ESoundGroup.SongPlayback); this.bgm選曲画面 = new Cシステムサウンド(@"Sounds\BGM\SongSelect.ogg", true, false, true, ESoundGroup.SongPlayback);
this.bgmSongSelect_AI_In = new Cシステムサウンド(@"Sounds\BGM\SongSelect_AI_Start.ogg", false, false, true, ESoundGroup.SongPlayback); this.bgmSongSelect_AI_In = new Cシステムサウンド(@"Sounds\BGM\SongSelect_AI_Start.ogg", false, false, true, ESoundGroup.SongPlayback);

View File

@ -58,6 +58,8 @@ namespace TJAPlayer3
Trace.Indent(); Trace.Indent();
try try
{ {
TJAPlayer3.Skin.bgmコンフィグ画面.t再生する();
this.n現在のメニュー番号 = 0; // this.n現在のメニュー番号 = 0; //
if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName)) if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName))
{ {
@ -87,6 +89,8 @@ namespace TJAPlayer3
Trace.Indent(); Trace.Indent();
try try
{ {
TJAPlayer3.Skin.bgmコンフィグ画面.t停止する();
TJAPlayer3.ConfigIni.t書き出し( TJAPlayer3.strEXEのあるフォルダ + "Config.ini" ); // CONFIGだけ TJAPlayer3.ConfigIni.t書き出し( TJAPlayer3.strEXEのあるフォルダ + "Config.ini" ); // CONFIGだけ
if( this.ftフォント != null ) // 以下OPTIONと共通 if( this.ftフォント != null ) // 以下OPTIONと共通
{ {
@ -373,7 +377,6 @@ namespace TJAPlayer3
case CStage.Eフェーズ._フェードイン: case CStage.Eフェーズ._フェードイン:
if( this.actFIFO.On進行描画() != 0 ) if( this.actFIFO.On進行描画() != 0 )
{ {
TJAPlayer3.Skin.bgmコンフィグ画面.t再生する();
base.eフェーズID = CStage.Eフェーズ._通常状態; base.eフェーズID = CStage.Eフェーズ._通常状態;
} }
break; break;

View File

@ -73,7 +73,7 @@ namespace TJAPlayer3
public C曲リストード r現在選択中の曲 public C曲リストード r現在選択中の曲
{ {
get; get;
private set; set;
} }
public void ResetSongIndex() public void ResetSongIndex()
@ -272,6 +272,12 @@ namespace TJAPlayer3
} }
} }
public void tResetTitleKey()
{
this.ttk選択している曲の曲名 = null;
this.ttk選択している曲のサブタイトル = null;
}
public bool tBOXに入る() public bool tBOXに入る()
{ {
//Trace.TraceInformation( "box enter" ); //Trace.TraceInformation( "box enter" );
@ -2036,10 +2042,10 @@ namespace TJAPlayer3
// Fonts here // Fonts here
//----------------- //-----------------
if (this.stバー情報[nパネル番号].strタイトル文字列 != "" && this.ttk選択している曲の曲名 == null) if (r現在選択中の曲.strタイトル != "" && this.ttk選択している曲の曲名 == null)
this.ttk選択している曲の曲名 = this.ttk曲名テクスチャを生成する(this.stバー情報[nパネル番号].strタイトル文字列, this.stバー情報[nパネル番号].ForeColor, this.stバー情報[nパネル番号].BackColor, stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? this.pfBoxName : this.pfMusicName); this.ttk選択している曲の曲名 = this.ttk曲名テクスチャを生成する(r現在選択中の曲.strタイトル, r現在選択中の曲.ForeColor, r現在選択中の曲.BackColor, r現在選択中の曲.eード種別 == C曲リストード.Eード種別.BOX ? this.pfBoxName : this.pfMusicName);
if (this.stバー情報[nパネル番号].strサブタイトル != "" && this.ttk選択している曲のサブタイトル == null) if (r現在選択中の曲.strサブタイトル != "" && this.ttk選択している曲のサブタイトル == null)
this.ttk選択している曲のサブタイトル = this.ttkサブタイトルテクスチャを生成する(this.stバー情報[nパネル番号].strサブタイトル, this.stバー情報[nパネル番号].ForeColor, this.stバー情報[nパネル番号].BackColor); this.ttk選択している曲のサブタイトル = this.ttkサブタイトルテクスチャを生成する(r現在選択中の曲.strサブタイトル, r現在選択中の曲.ForeColor, r現在選択中の曲.BackColor);
if (this.ttk選択している曲のサブタイトル != null) if (this.ttk選択している曲のサブタイトル != null)
tx選択している曲のサブタイトル = ResolveTitleTexture(ttk選択している曲のサブタイトル, TJAPlayer3.Skin.SongSelect_VerticalText); tx選択している曲のサブタイトル = ResolveTitleTexture(ttk選択している曲のサブタイトル, TJAPlayer3.Skin.SongSelect_VerticalText);
@ -2074,17 +2080,17 @@ namespace TJAPlayer3
} }
tx選択している曲のサブタイトル.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, tx選択している曲のサブタイトル.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device,
xAnime + TJAPlayer3.Skin.SongSelect_Bar_SubTitle_Offset[0] + (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMoveX : centerMoveX / 1.1f), xAnime + TJAPlayer3.Skin.SongSelect_Bar_SubTitle_Offset[0] + (r現在選択中の曲.eード種別 == C曲リストード.Eード種別.BOX ? centerMoveX : centerMoveX / 1.1f),
y + TJAPlayer3.Skin.SongSelect_Bar_SubTitle_Offset[1] - (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMove : centerMove / 1.1f)); y + TJAPlayer3.Skin.SongSelect_Bar_SubTitle_Offset[1] - (r現在選択中の曲.eード種別 == C曲リストード.Eード種別.BOX ? centerMove : centerMove / 1.1f));
if (this.ttk選択している曲の曲名 != null) if (this.ttk選択している曲の曲名 != null)
{ {
ResolveTitleTexture(this.ttk選択している曲の曲名, TJAPlayer3.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, ResolveTitleTexture(this.ttk選択している曲の曲名, TJAPlayer3.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device,
xAnime + GetTitleOffsetX(this.stバー情報[nパネル番号].eバー種別) + xAnime + GetTitleOffsetX(r現在選択中の曲.eード種別) +
(r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMoveX : centerMoveX / 1.1f) : 0), (r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (r現在選択中の曲.eード種別 == C曲リストード.Eード種別.BOX ? centerMoveX : centerMoveX / 1.1f) : 0),
y + GetTitleOffsetY(this.stバー情報[nパネル番号].eバー種別) - y + GetTitleOffsetY(r現在選択中の曲.eード種別) -
(r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMove : centerMove / 1.1f) : 0)); (r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (r現在選択中の曲.eード種別 == C曲リストード.Eード種別.BOX ? centerMove : centerMove / 1.1f) : 0));
} }
} }
else else
@ -2093,10 +2099,10 @@ namespace TJAPlayer3
{ {
ResolveTitleTexture(this.ttk選択している曲の曲名, TJAPlayer3.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, ResolveTitleTexture(this.ttk選択している曲の曲名, TJAPlayer3.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device,
xAnime + GetTitleOffsetX(this.stバー情報[nパネル番号].eバー種別) + xAnime + GetTitleOffsetX(this.stバー情報[nパネル番号].eバー種別) +
(r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMoveX : centerMoveX / 1.1f) : 0), (r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (r現在選択中の曲.eード種別 == C曲リストード.Eード種別.BOX ? centerMoveX : centerMoveX / 1.1f) : 0),
y + GetTitleOffsetY(this.stバー情報[nパネル番号].eバー種別) - y + GetTitleOffsetY(this.stバー情報[nパネル番号].eバー種別) -
(r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMove : centerMove / 1.1f) : 0)); (r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (r現在選択中の曲.eード種別 == C曲リストード.Eード種別.BOX ? centerMove : centerMove / 1.1f) : 0));
} }
} }
//----------------- //-----------------
@ -2487,6 +2493,23 @@ namespace TJAPlayer3
} }
} }
private int GetTitleOffsetX(C曲リストード.Eード種別 node)
{
switch (node)
{
case C曲リストード.Eード種別.SCORE:
return TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0];
case C曲リストード.Eード種別.BOX:
return TJAPlayer3.Skin.SongSelect_Bar_Box_Offset[0];
case C曲リストード.Eード種別.BACKBOX:
return TJAPlayer3.Skin.SongSelect_Bar_BackBox_Offset[0];
case C曲リストード.Eード種別.RANDOM:
return TJAPlayer3.Skin.SongSelect_Bar_Random_Offset[0];
default:
return TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0];
}
}
private int GetTitleOffsetY(Eバー種別 bar) private int GetTitleOffsetY(Eバー種別 bar)
{ {
switch (bar) switch (bar)
@ -2504,6 +2527,23 @@ namespace TJAPlayer3
} }
} }
private int GetTitleOffsetY(C曲リストード.Eード種別 node)
{
switch (node)
{
case C曲リストード.Eード種別.SCORE:
return TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1];
case C曲リストード.Eード種別.BOX:
return TJAPlayer3.Skin.SongSelect_Bar_Box_Offset[1];
case C曲リストード.Eード種別.BACKBOX:
return TJAPlayer3.Skin.SongSelect_Bar_BackBox_Offset[1];
case C曲リストード.Eード種別.RANDOM:
return TJAPlayer3.Skin.SongSelect_Bar_Random_Offset[1];
default:
return TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1];
}
}
private void DrawBarCenter(CTexture texture, int x, int y, int moveX, int move, bool changeColor, bool drawOverlay, bool fullScaleOverlay) private void DrawBarCenter(CTexture texture, int x, int y, int moveX, int move, bool changeColor, bool drawOverlay, bool fullScaleOverlay)
{ {
if (changeColor) if (changeColor)
@ -2772,7 +2812,7 @@ namespace TJAPlayer3
return list[index]; return list[index];
} }
private void tバーの初期化() public void tバーの初期化()
{ {
stバー情報 = new STバー情報[TJAPlayer3.Skin.SongSelect_Bar_Count]; stバー情報 = new STバー情報[TJAPlayer3.Skin.SongSelect_Bar_Count];

View File

@ -173,6 +173,10 @@ namespace TJAPlayer3
{ {
return this.act曲リスト.r現在選択中の曲; return this.act曲リスト.r現在選択中の曲;
} }
set
{
this.act曲リスト.r現在選択中の曲 = value;
}
} }
// コンストラクタ // コンストラクタ
@ -769,7 +773,14 @@ namespace TJAPlayer3
{ {
#region [Trigger context box] #region [Trigger context box]
this.tSelectSongRandomly(); this.tSetSongRandomly();
// Called here
TJAPlayer3.Skin.sound決定音.t再生する();
this.act難易度選択画面.bIsDifficltSelect = true;
this.act難易度選択画面.t選択画面初期化();
this.act曲リスト.ctBarFlash.t開始(0, 2700, TJAPlayer3.Skin.SongSelect_Box_Opening_Interval, TJAPlayer3.Timer);
this.act曲リスト.ctDifficultyIn.t開始(0, 3200, TJAPlayer3.Skin.SongSelect_Box_Opening_Interval, TJAPlayer3.Timer);
//this.ctDonchan_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); //this.ctDonchan_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer);
CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT); CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.SELECT);
@ -1707,6 +1718,82 @@ namespace TJAPlayer3
CSongSelectSongManager.stopSong(); CSongSelectSongManager.stopSong();
} }
private void tSetSongRandomly()
{
var usedDiffs = new int[] { -1, -1, -1, -1, -1 };
var mandatoryDiffs = new List<int>();
#region [Fetch context informations]
if (this.act曲リスト.latestContext == eMenuContext.Random)
{
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
var diff = this.act曲リスト.tMenuContextGetVar(i);
usedDiffs[i] = diff;
if (!mandatoryDiffs.Contains(diff))
mandatoryDiffs.Add(diff);
}
}
#endregion
C曲リストード song = this.act曲リスト.r現在選択中の曲;
song.stackランダム演奏番号.Clear();
song.listランダム用ードリスト = null;
if ((song.stackランダム演奏番号.Count == 0) || (song.listランダム用ードリスト == null))
{
if (song.listランダム用ードリスト == null)
{
song.listランダム用ードリスト = this.t指定された曲が存在する場所の曲を列挙する_子リスト含む(song, ref mandatoryDiffs);
}
int count = song.listランダム用ードリスト.Count;
if (count == 0)
{
return;
}
int[] numArray = new int[count];
for (int i = 0; i < count; i++)
{
numArray[i] = i;
}
for (int j = 0; j < (count * 1.5); j++)
{
int index = TJAPlayer3.Random.Next(count);
int num5 = TJAPlayer3.Random.Next(count);
int num6 = numArray[num5];
numArray[num5] = numArray[index];
numArray[index] = num6;
}
for (int k = 0; k < count; k++)
{
song.stackランダム演奏番号.Push(numArray[k]);
}
if (TJAPlayer3.ConfigIni.bLogDTX詳細ログ出力)
{
StringBuilder builder = new StringBuilder(0x400);
builder.Append(string.Format("ランダムインデックスリストを作成しました: {0}曲: ", song.stackランダム演奏番号.Count));
for (int m = 0; m < count; m++)
{
builder.Append(string.Format("{0} ", numArray[m]));
}
Trace.TraceInformation(builder.ToString());
}
}
// Third assignment
this.r現在選択中の曲 = song.listランダム用ードリスト[song.stackランダム演奏番号.Pop()];
act曲リスト.t現在選択中の曲を元に曲バーを再構成する();
act曲リスト.t選択曲が変更された(false);
act曲リスト.tUpdateCurSong();
act曲リスト.tResetTitleKey();
act曲リスト.tバーの初期化();
t選択曲変更通知();
}
private void t曲を選択する() private void t曲を選択する()
{ {
// First assignation // First assignation

View File

@ -482,7 +482,7 @@ namespace TJAPlayer3
// bIsFinishedPlaying was dependent on 2P in this case // bIsFinishedPlaying was dependent on 2P in this case
this.actDan.On進行描画();
for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
{ {
@ -507,8 +507,6 @@ namespace TJAPlayer3
if (!ifp[i]) bIsFinishedPlaying = false; if (!ifp[i]) bIsFinishedPlaying = false;
} }
this.actDan.On進行描画();
this.actMtaiko.On進行描画(); this.actMtaiko.On進行描画();
if (TJAPlayer3.ConfigIni.bAIBattleMode) if (TJAPlayer3.ConfigIni.bAIBattleMode)