using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Diagnostics;
using FDK;
using System.Drawing;
using System.Linq;
namespace TJAPlayer3
{
// グローバル定数
public enum Eシステムサウンド
{
BGMオプション画面 = 0,
BGMコンフィグ画面,
BGM起動画面,
BGM選曲画面,
SOUNDステージ失敗音,
SOUNDカーソル移動音,
SOUNDゲーム開始音,
SOUNDゲーム終了音,
SOUNDステージクリア音,
SOUNDタイトル音,
SOUNDフルコンボ音,
SOUND歓声音,
SOUND曲読込開始音,
SOUND決定音,
SOUND取消音,
SOUND変更音,
//SOUND赤,
//SOUND青,
SOUND風船,
SOUND曲決定音,
SOUND成績発表,
SOUND特訓再生,
SOUND特訓停止,
sound特訓ジャンプポイント,
sound特訓スキップ音,
SOUND特訓スクロール,
Count // システムサウンド総数の計算用
}
internal class CSkin : IDisposable
{
// クラス
public class Cシステムサウンド : IDisposable
{
// static フィールド
public static CSkin.Cシステムサウンド r最後に再生した排他システムサウンド;
private readonly ESoundGroup _soundGroup;
// フィールド、プロパティ
public bool bPlayed;
public bool bCompact対象;
public bool bループ;
public bool b読み込み未試行;
public bool b読み込み成功;
public bool b排他;
public string strファイル名 = "";
public bool b再生中
{
get
{
if (this.rSound[1 - this.n次に鳴るサウンド番号] == null)
return false;
return this.rSound[1 - this.n次に鳴るサウンド番号].b再生中;
}
}
public int n位置_現在のサウンド
{
get
{
CSound sound = this.rSound[1 - this.n次に鳴るサウンド番号];
if (sound == null)
return 0;
return sound.n位置;
}
set
{
CSound sound = this.rSound[1 - this.n次に鳴るサウンド番号];
if (sound != null)
sound.n位置 = value;
}
}
public int n位置_次に鳴るサウンド
{
get
{
CSound sound = this.rSound[this.n次に鳴るサウンド番号];
if (sound == null)
return 0;
return sound.n位置;
}
set
{
CSound sound = this.rSound[this.n次に鳴るサウンド番号];
if (sound != null)
sound.n位置 = value;
}
}
public int nAutomationLevel_現在のサウンド
{
get
{
CSound sound = this.rSound[1 - this.n次に鳴るサウンド番号];
if (sound == null)
return 0;
return sound.AutomationLevel;
}
set
{
CSound sound = this.rSound[1 - this.n次に鳴るサウンド番号];
if (sound != null)
{
sound.AutomationLevel = value;
}
}
}
public int n長さ_現在のサウンド
{
get
{
CSound sound = this.rSound[1 - this.n次に鳴るサウンド番号];
if (sound == null)
{
return 0;
}
return sound.n総演奏時間ms;
}
}
public int n長さ_次に鳴るサウンド
{
get
{
CSound sound = this.rSound[this.n次に鳴るサウンド番号];
if (sound == null)
{
return 0;
}
return sound.n総演奏時間ms;
}
}
///
/// コンストラクタ
///
///
///
///
///
public Cシステムサウンド(string strファイル名, bool bループ, bool b排他, bool bCompact対象, ESoundGroup soundGroup)
{
this.strファイル名 = strファイル名;
this.bループ = bループ;
this.b排他 = b排他;
this.bCompact対象 = bCompact対象;
_soundGroup = soundGroup;
this.b読み込み未試行 = true;
this.bPlayed = false;
}
// メソッド
public void t読み込み()
{
this.b読み込み未試行 = false;
this.b読み込み成功 = false;
if (string.IsNullOrEmpty(this.strファイル名))
throw new InvalidOperationException("ファイル名が無効です。");
if (!File.Exists(CSkin.Path(this.strファイル名)))
{
Trace.TraceWarning($"ファイルが存在しません。: {this.strファイル名}");
return;
}
//// for( int i = 0; i < 2; i++ ) // #27790 2012.3.10 yyagi 2回読み出しを、1回読みだし+1回メモリコピーに変更
//// {
// try
// {
// this.rSound[ 0 ] = CDTXMania.Sound管理.tサウンドを生成する( CSkin.Path( this.strファイル名 ) );
// }
// catch
// {
// this.rSound[ 0 ] = null;
// throw;
// }
// if ( this.rSound[ 0 ] == null ) // #28243 2012.5.3 yyagi "this.rSound[ 0 ].bストリーム再生する"時もCloneするようにし、rSound[1]がnullにならないよう修正→rSound[1]の再生正常化
// {
// this.rSound[ 1 ] = null;
// }
// else
// {
// this.rSound[ 1 ] = ( CSound ) this.rSound[ 0 ].Clone(); // #27790 2012.3.10 yyagi add: to accelerate loading chip sounds
// CDTXMania.Sound管理.tサウンドを登録する( this.rSound[ 1 ] ); // #28243 2012.5.3 yyagi add (登録漏れによりストリーム再生処理が発生していなかった)
// }
//// }
for (int i = 0; i < 2; i++) // 一旦Cloneを止めてASIO対応に専念
{
try
{
this.rSound[i] = TJAPlayer3.Sound管理?.tサウンドを生成する(CSkin.Path(this.strファイル名), _soundGroup);
}
catch
{
this.rSound[i] = null;
throw;
}
}
this.b読み込み成功 = true;
}
public void t再生する()
{
if (this.b読み込み未試行)
{
try
{
t読み込み();
}
catch (Exception e)
{
Trace.TraceError(e.ToString());
Trace.TraceError("例外が発生しましたが処理を継続します。 (17668977-4686-4aa7-b3f0-e0b9a44975b8)");
this.b読み込み未試行 = false;
}
}
if (this.b排他)
{
if (r最後に再生した排他システムサウンド != null)
r最後に再生した排他システムサウンド.t停止する();
r最後に再生した排他システムサウンド = this;
}
CSound sound = this.rSound[this.n次に鳴るサウンド番号];
if (sound != null)
sound.t再生を開始する(this.bループ);
this.bPlayed = true;
this.n次に鳴るサウンド番号 = 1 - this.n次に鳴るサウンド番号;
}
public void t停止する()
{
this.bPlayed = false;
if (this.rSound[0] != null)
this.rSound[0].t再生を停止する();
if (this.rSound[1] != null)
this.rSound[1].t再生を停止する();
if (r最後に再生した排他システムサウンド == this)
r最後に再生した排他システムサウンド = null;
}
public void tRemoveMixer()
{
if (TJAPlayer3.Sound管理.GetCurrentSoundDeviceType() != "DirectShow")
{
for (int i = 0; i < 2; i++)
{
if (this.rSound[i] != null)
{
TJAPlayer3.Sound管理.RemoveMixer(this.rSound[i]);
}
}
}
}
#region [ IDisposable 実装 ]
//-----------------
public void Dispose()
{
if (!this.bDisposed済み)
{
for (int i = 0; i < 2; i++)
{
if (this.rSound[i] != null)
{
TJAPlayer3.Sound管理.tサウンドを破棄する(this.rSound[i]);
this.rSound[i] = null;
}
}
this.b読み込み成功 = false;
this.bDisposed済み = true;
}
}
//-----------------
#endregion
#region [ private ]
//-----------------
private bool bDisposed済み;
private int n次に鳴るサウンド番号;
private CSound[] rSound = new CSound[2];
//-----------------
#endregion
}
// プロパティ
public CHitSounds hsHitSoundsInformations = null;
public Cシステムサウンド bgmオプション画面 = null;
public Cシステムサウンド bgmコンフィグ画面 = null;
public Cシステムサウンド bgm起動画面 = null;
public Cシステムサウンド soundSTAGEFAILED音 = null;
public Cシステムサウンド soundカーソル移動音 = null;
public Cシステムサウンド soundゲーム開始音 = null;
public Cシステムサウンド soundゲーム終了音 = null;
public Cシステムサウンド soundステージクリア音 = null;
public Cシステムサウンド soundフルコンボ音 = null;
public Cシステムサウンド sound歓声音 = null;
public Cシステムサウンド sound曲読込開始音 = null;
public Cシステムサウンド sound決定音 = null;
public Cシステムサウンド sound取消音 = null;
public Cシステムサウンド sound変更音 = null;
public Cシステムサウンド soundSongSelectChara = null;
public Cシステムサウンド soundSkip = null;
public Cシステムサウンド soundEntry = null;
public Cシステムサウンド soundError = null;
public Cシステムサウンド soundsanka = null;
public Cシステムサウンド soundBomb = null;
//add
public Cシステムサウンド sound曲決定音 = null;
public Cシステムサウンド bgmリザルトイン音 = null;
public Cシステムサウンド bgmリザルト音 = null;
public Cシステムサウンド bgmDanResult = null;
public Cシステムサウンド bgmタイトル = null;
public Cシステムサウンド bgmタイトルイン = null;
public Cシステムサウンド bgm選曲画面 = null;
public Cシステムサウンド bgm選曲画面イン = null;
public Cシステムサウンド bgmリザルト = null;
public Cシステムサウンド bgmリザルトイン = null;
public Cシステムサウンド SoundBanapas = null;
public Cシステムサウンド sound特訓再生音 = null;
public Cシステムサウンド sound特訓停止音 = null;
public Cシステムサウンド sound特訓ジャンプポイント = null;
public Cシステムサウンド sound特訓スキップ音 = null;
public Cシステムサウンド sound特訓スクロール音 = null;
public Cシステムサウンド soundPon = null;
public Cシステムサウンド soundGauge = null;
public Cシステムサウンド soundScoreDon = null;
public Cシステムサウンド soundChallengeVoice = null;
public Cシステムサウンド soundDanSelectStart = null;
public Cシステムサウンド soundDanSongSelectCheck = null;
public Cシステムサウンド soundDanSongSelectIn = null;
public Cシステムサウンド soundDanSelectBGM = null;
public Cシステムサウンド soundDanSongSelect = null;
public Cシステムサウンド soundHeyaBGM = null;
public Cシステムサウンド soundOnlineLoungeBGM = null;
public Cシステムサウンド soundEncyclopediaBGM = null;
public Cシステムサウンド soundTowerSelectBGM = null;
public Cシステムサウンド[] soundModal = null;
public Cシステムサウンド soundCrownIn = null;
public Cシステムサウンド soundRankIn = null;
public Cシステムサウンド soundDonClear = null;
public Cシステムサウンド soundDonFailed = null;
public Cシステムサウンド soundSelectAnnounce = null;
// Tower Sfx
public Cシステムサウンド soundTowerMiss = null;
public Cシステムサウンド bgmTowerResult = null;
//public Cシステムサウンド soundRed = null;
//public Cシステムサウンド soundBlue = null;
public Cシステムサウンド soundBalloon = null;
public readonly int nシステムサウンド数 = (int)Eシステムサウンド.Count;
public Cシステムサウンド this[Eシステムサウンド sound]
{
get
{
switch (sound)
{
case Eシステムサウンド.SOUNDカーソル移動音:
return this.soundカーソル移動音;
case Eシステムサウンド.SOUND決定音:
return this.sound決定音;
case Eシステムサウンド.SOUND変更音:
return this.sound変更音;
case Eシステムサウンド.SOUND取消音:
return this.sound取消音;
case Eシステムサウンド.SOUND歓声音:
return this.sound歓声音;
case Eシステムサウンド.SOUNDステージ失敗音:
return this.soundSTAGEFAILED音;
case Eシステムサウンド.SOUNDゲーム開始音:
return this.soundゲーム開始音;
case Eシステムサウンド.SOUNDゲーム終了音:
return this.soundゲーム終了音;
case Eシステムサウンド.SOUNDステージクリア音:
return this.soundステージクリア音;
case Eシステムサウンド.SOUNDフルコンボ音:
return this.soundフルコンボ音;
case Eシステムサウンド.SOUND曲読込開始音:
return this.sound曲読込開始音;
case Eシステムサウンド.SOUNDタイトル音:
return this.bgmタイトル;
case Eシステムサウンド.BGM起動画面:
return this.bgm起動画面;
case Eシステムサウンド.BGMオプション画面:
return this.bgmオプション画面;
case Eシステムサウンド.BGMコンフィグ画面:
return this.bgmコンフィグ画面;
case Eシステムサウンド.BGM選曲画面:
return this.bgm選曲画面;
//case Eシステムサウンド.SOUND赤:
// return this.soundRed;
//case Eシステムサウンド.SOUND青:
// return this.soundBlue;
case Eシステムサウンド.SOUND風船:
return this.soundBalloon;
case Eシステムサウンド.SOUND曲決定音:
return this.sound曲決定音;
case Eシステムサウンド.SOUND成績発表:
return this.bgmリザルトイン音;
case Eシステムサウンド.SOUND特訓再生:
return this.sound特訓再生音;
case Eシステムサウンド.SOUND特訓停止:
return this.sound特訓停止音;
case Eシステムサウンド.sound特訓ジャンプポイント:
return this.sound特訓ジャンプポイント;
case Eシステムサウンド.sound特訓スキップ音:
return this.sound特訓スキップ音;
case Eシステムサウンド.SOUND特訓スクロール:
return this.sound特訓スクロール音;
}
throw new IndexOutOfRangeException();
}
}
public Cシステムサウンド this[int index]
{
get
{
switch (index)
{
case 0:
return this.soundカーソル移動音;
case 1:
return this.sound決定音;
case 2:
return this.sound変更音;
case 3:
return this.sound取消音;
case 4:
return this.sound歓声音;
case 5:
return this.soundSTAGEFAILED音;
case 6:
return this.soundゲーム開始音;
case 7:
return this.soundゲーム終了音;
case 8:
return this.soundステージクリア音;
case 9:
return this.soundフルコンボ音;
case 10:
return this.sound曲読込開始音;
case 11:
return this.bgmタイトル;
case 12:
return this.bgm起動画面;
case 13:
return this.bgmオプション画面;
case 14:
return this.bgmコンフィグ画面;
case 15:
return this.bgm選曲画面;
case 16:
return this.soundBalloon;
case 17:
return this.sound曲決定音;
case 18:
return this.bgmリザルトイン音;
case 19:
return this.sound特訓再生音;
case 20:
return this.sound特訓停止音;
case 21:
return this.sound特訓スクロール音;
case 22:
return this.sound特訓ジャンプポイント;
case 23:
return this.sound特訓スキップ音;
}
throw new IndexOutOfRangeException();
}
}
// スキンの切り替えについて___
//
// _スキンの種類は大きく分けて2種類。Systemスキンとboxdefスキン。
// 前者はSystem/フォルダにユーザーが自らインストールしておくスキン。
// 後者はbox.defで指定する、曲データ制作者が提示するスキン。
//
// _Config画面で、2種のスキンを区別無く常時使用するよう設定することができる。
// _box.defの#SKINPATH 設定により、boxdefスキンを一時的に使用するよう設定する。
// (box.defの効果の及ばない他のmuxic boxでは、当該boxdefスキンの有効性が無くなる)
//
// これを実現するために___
// _Systemスキンの設定情報と、boxdefスキンの設定情報は、分離して持つ。
// (strSystem~~ と、strBoxDef~~~)
// _Config画面からは前者のみ書き換えできるようにし、
// 選曲画面からは後者のみ書き換えできるようにする。(SetCurrent...())
// _読み出しは両者から行えるようにすると共に
// 選曲画面用に二種の情報を区別しない読み出し方法も提供する(GetCurrent...)
private object lockBoxDefSkin;
public static bool bUseBoxDefSkin = true; // box.defからのスキン変更を許容するか否か
public string strSystemSkinRoot = null;
public string[] strSystemSkinSubfolders = null; // ListだとignoreCaseな検索が面倒なので、配列に逃げる :-)
private string[] _strBoxDefSkinSubfolders = null;
public string[] strBoxDefSkinSubfolders
{
get
{
lock (lockBoxDefSkin)
{
return _strBoxDefSkinSubfolders;
}
}
set
{
lock (lockBoxDefSkin)
{
_strBoxDefSkinSubfolders = value;
}
}
} // 別スレッドからも書き込みアクセスされるため、スレッドセーフなアクセス法を提供
private static string strSystemSkinSubfolderFullName; // Config画面で設定されたスキン
private static string strBoxDefSkinSubfolderFullName = ""; // box.defで指定されているスキン
///
/// スキンパス名をフルパスで取得する
///
/// ユーザー設定用ならtrue, box.defからの設定ならfalse
///
public string GetCurrentSkinSubfolderFullName(bool bFromUserConfig)
{
if (!bUseBoxDefSkin || bFromUserConfig == true || strBoxDefSkinSubfolderFullName == "")
{
return strSystemSkinSubfolderFullName;
}
else
{
return strBoxDefSkinSubfolderFullName;
}
}
///
/// スキンパス名をフルパスで設定する
///
/// スキンパス名
/// ユーザー設定用ならtrue, box.defからの設定ならfalse
public void SetCurrentSkinSubfolderFullName(string value, bool bFromUserConfig)
{
if (bFromUserConfig)
{
strSystemSkinSubfolderFullName = value;
}
else
{
strBoxDefSkinSubfolderFullName = value;
}
}
// コンストラクタ
public CSkin(string _strSkinSubfolderFullName, bool _bUseBoxDefSkin)
{
lockBoxDefSkin = new object();
strSystemSkinSubfolderFullName = _strSkinSubfolderFullName;
bUseBoxDefSkin = _bUseBoxDefSkin;
InitializeSkinPathRoot();
ReloadSkinPaths();
PrepareReloadSkin();
}
public CSkin()
{
lockBoxDefSkin = new object();
InitializeSkinPathRoot();
bUseBoxDefSkin = true;
ReloadSkinPaths();
PrepareReloadSkin();
}
private string InitializeSkinPathRoot()
{
strSystemSkinRoot = System.IO.Path.Combine(TJAPlayer3.strEXEのあるフォルダ, "System" + System.IO.Path.DirectorySeparatorChar);
return strSystemSkinRoot;
}
///
/// Skin(Sounds)を再読込する準備をする(再生停止,Dispose,ファイル名再設定)。
/// あらかじめstrSkinSubfolderを適切に設定しておくこと。
/// その後、ReloadSkinPaths()を実行し、strSkinSubfolderの正当性を確認した上で、本メソッドを呼び出すこと。
/// 本メソッド呼び出し後に、ReloadSkin()を実行することで、システムサウンドを読み込み直す。
/// ReloadSkin()の内容は本メソッド内に含めないこと。起動時はReloadSkin()相当の処理をCEnumSongsで行っているため。
///
public void PrepareReloadSkin()
{
Trace.TraceInformation("SkinPath設定: {0}",
(strBoxDefSkinSubfolderFullName == "") ?
strSystemSkinSubfolderFullName :
strBoxDefSkinSubfolderFullName
);
for (int i = 0; i < nシステムサウンド数; i++)
{
if (this[i] != null && this[i].b読み込み成功)
{
this[i].t停止する();
this[i].Dispose();
}
}
this.soundカーソル移動音 = new Cシステムサウンド(@"Sounds\Move.ogg", false, false, false, ESoundGroup.SoundEffect);
this.sound決定音 = new Cシステムサウンド(@"Sounds\Decide.ogg", false, false, false, ESoundGroup.SoundEffect);
this.sound変更音 = new Cシステムサウンド(@"Sounds\Change.ogg", false, false, false, ESoundGroup.SoundEffect);
this.sound取消音 = new Cシステムサウンド(@"Sounds\Cancel.ogg", false, false, true, ESoundGroup.SoundEffect);
this.sound歓声音 = new Cシステムサウンド(@"Sounds\Audience.ogg", false, false, true, ESoundGroup.SoundEffect);
this.soundSTAGEFAILED音 = new Cシステムサウンド(@"Sounds\Stage failed.ogg", false, true, true, ESoundGroup.Voice);
this.soundゲーム開始音 = new Cシステムサウンド(@"Sounds\Game start.ogg", false, false, false, ESoundGroup.Voice);
this.soundゲーム終了音 = new Cシステムサウンド(@"Sounds\Game end.ogg", false, true, false, 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\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.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.SoundBanapas = new Cシステムサウンド(@"Sounds\Banapas.ogg", false, false, false, ESoundGroup.SoundEffect);
this.soundEntry = new Cシステムサウンド(@"Sounds\Entry.ogg", true, false, false, ESoundGroup.Voice);
this.soundError = new Cシステムサウンド(@"Sounds\Error.ogg", false, false, false, ESoundGroup.SoundEffect);
this.soundsanka = new Cシステムサウンド(@"Sounds\sanka.ogg", false, false, false, ESoundGroup.Voice);
this.soundBomb = new Cシステムサウンド(@"Sounds\Bomb.ogg", false, false, false, ESoundGroup.SoundEffect);
//this.soundRed = new Cシステムサウンド( @"Sounds\dong.ogg", false, false, true, ESoundType.SoundEffect );
//this.soundBlue = new Cシステムサウンド( @"Sounds\ka.ogg", false, false, true, ESoundType.SoundEffect );
this.soundBalloon = new Cシステムサウンド(@"Sounds\balloon.ogg", false, false, true, ESoundGroup.SoundEffect);
this.sound曲決定音 = new Cシステムサウンド(@"Sounds\SongDecide.ogg", false, false, true, ESoundGroup.Voice);
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\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\Result_In.ogg", false, false, true, ESoundGroup.SongPlayback);
this.bgmリザルト音 = new Cシステムサウンド(@"Sounds\BGM\Result.ogg", true, false, true, ESoundGroup.SongPlayback);
this.bgmDanResult = new Cシステムサウンド(@"Sounds\Dan\Dan_Result.ogg", true, false, false, ESoundGroup.SongPlayback);
this.bgmTowerResult = new Cシステムサウンド(@"Sounds\Tower\Tower_Result.ogg", true, false, false, ESoundGroup.SongPlayback);
this.soundTowerMiss = new Cシステムサウンド(@"Sounds\Tower\Miss.wav", false, false, true, ESoundGroup.SoundEffect);
this.soundCrownIn = new Cシステムサウンド(@"Sounds\ResultScreen\CrownIn.ogg", false, false, false, ESoundGroup.SoundEffect);
this.soundRankIn = new Cシステムサウンド(@"Sounds\ResultScreen\RankIn.ogg", false, false, false, ESoundGroup.SoundEffect);
this.soundDonClear = new Cシステムサウンド(@"Sounds\ResultScreen\Donchan_Clear.ogg", false, false,true, ESoundGroup.Voice);
this.soundDonFailed = new Cシステムサウンド(@"Sounds\ResultScreen\Donchan_Miss.ogg", false, false, true, ESoundGroup.Voice);
this.soundSelectAnnounce = new Cシステムサウンド(@"Sounds\DiffSelect.ogg", false, false, true, ESoundGroup.Voice);
this.sound特訓再生音 = new Cシステムサウンド(@"Sounds\Resume.ogg", false, false,false, ESoundGroup.SoundEffect);
this.sound特訓停止音 = new Cシステムサウンド(@"Sounds\Pause.ogg", false, false, false, ESoundGroup.SoundEffect);
this.sound特訓スクロール音 = new Cシステムサウンド(@"Sounds\Scroll.ogg", false, false, false, ESoundGroup.SoundEffect);
this.sound特訓ジャンプポイント = new Cシステムサウンド(@"Sounds\Jump Point.ogg", false, false, false, ESoundGroup.SoundEffect);
this.sound特訓スキップ音 = new Cシステムサウンド(@"Sounds\Traning Skip.ogg", false, false, false, ESoundGroup.SoundEffect);
this.soundPon = new Cシステムサウンド(@"Sounds\Pon.ogg", false, false, false, ESoundGroup.SoundEffect);
this.soundGauge = new Cシステムサウンド(@"Sounds\Gauge.ogg", false, false, false, ESoundGroup.SoundEffect);
this.soundScoreDon = new Cシステムサウンド(@"Sounds\ScoreDon.ogg", false, false, false, ESoundGroup.SoundEffect);
this.soundChallengeVoice = new Cシステムサウンド(@"Sounds\Dan\ChallengeVoice.wav", false, false, false, ESoundGroup.SoundEffect);
this.soundDanSelectStart = new Cシステムサウンド(@"Sounds\Dan\DanSelectStart.wav", false, false, false, ESoundGroup.SoundEffect);
this.soundDanSongSelectCheck = new Cシステムサウンド(@"Sounds\Dan\DanSongSelectCheck.wav", false, false, false, ESoundGroup.SoundEffect);
this.soundDanSongSelectIn = new Cシステムサウンド(@"Sounds\Dan\Dan_In.ogg", false, false, false, ESoundGroup.SoundEffect);
this.soundDanSelectBGM = new Cシステムサウンド(@"Sounds\Dan\DanSelectBGM.wav", true, false, false, ESoundGroup.SongPlayback);
this.soundDanSongSelect = new Cシステムサウンド(@"Sounds\Dan\DanSongSelect.wav", false, false, false, ESoundGroup.SoundEffect);
this.soundHeyaBGM = new Cシステムサウンド(@"Sounds\Heya\BGM.ogg", true, false, false, ESoundGroup.SongPlayback);
this.soundOnlineLoungeBGM = new Cシステムサウンド(@"Sounds\OnlineLounge\BGM.ogg", true, false, false, ESoundGroup.SongPlayback);
this.soundEncyclopediaBGM = new Cシステムサウンド(@"Sounds\Encyclopedia\BGM.ogg", true, false, false, ESoundGroup.SongPlayback);
this.soundTowerSelectBGM = new Cシステムサウンド(@"Sounds\Tower\DanSelectBGM.ogg", true, false, false, ESoundGroup.SongPlayback);
soundModal = new Cシステムサウンド[6];
for (int i = 0; i < soundModal.Length - 1; i++)
{
soundModal[i] = new Cシステムサウンド(@"Sounds\Modals\" + i.ToString() + ".ogg", false, false, false, ESoundGroup.SoundEffect);
}
soundModal[soundModal.Length - 1] = new Cシステムサウンド(@"Sounds\Modals\Coin.ogg", false, false, false, ESoundGroup.SoundEffect);
ReloadSkin();
tReadSkinConfig();
hsHitSoundsInformations = new CHitSounds(Path(@"Sounds\HitSounds\HitSounds.json"));
}
public void ReloadSkin()
{
for (int i = 0; i < nシステムサウンド数; i++)
{
if (!this[i].b排他) // BGM系以外のみ読み込む。(BGM系は必要になったときに読み込む)
{
Cシステムサウンド cシステムサウンド = this[i];
if (!TJAPlayer3.bコンパクトモード || cシステムサウンド.bCompact対象)
{
try
{
cシステムサウンド.t読み込み();
Trace.TraceInformation("システムサウンドを読み込みました。({0})", cシステムサウンド.strファイル名);
}
catch (FileNotFoundException e)
{
Trace.TraceWarning(e.ToString());
Trace.TraceWarning("システムサウンドが存在しません。({0})", cシステムサウンド.strファイル名);
}
catch (Exception e)
{
Trace.TraceWarning(e.ToString());
Trace.TraceWarning("システムサウンドの読み込みに失敗しました。({0})", cシステムサウンド.strファイル名);
}
}
}
}
}
///
/// Skinの一覧を再取得する。
/// System/*****/Graphics (やSounds/) というフォルダ構成を想定している。
/// もし再取得の結果、現在使用中のSkinのパス(strSystemSkinSubfloderFullName)が消えていた場合は、
/// 以下の優先順位で存在確認の上strSystemSkinSubfolderFullNameを再設定する。
/// 1. System/Default/
/// 2. System/*****/ で最初にenumerateされたもの
/// 3. System/ (従来互換)
///
public void ReloadSkinPaths()
{
#region [ まず System/*** をenumerateする ]
string[] tempSkinSubfolders = System.IO.Directory.GetDirectories(strSystemSkinRoot, "*");
strSystemSkinSubfolders = new string[tempSkinSubfolders.Length];
int size = 0;
for (int i = 0; i < tempSkinSubfolders.Length; i++)
{
#region [ 検出したフォルダがスキンフォルダかどうか確認する]
if (!bIsValid(tempSkinSubfolders[i]))
continue;
#endregion
#region [ スキンフォルダと確認できたものを、strSkinSubfoldersに入れる ]
// フォルダ名末尾に必ず\をつけておくこと。さもないとConfig読み出し側(必ず\をつける)とマッチできない
if (tempSkinSubfolders[i][tempSkinSubfolders[i].Length - 1] != System.IO.Path.DirectorySeparatorChar)
{
tempSkinSubfolders[i] += System.IO.Path.DirectorySeparatorChar;
}
strSystemSkinSubfolders[size] = tempSkinSubfolders[i];
Trace.TraceInformation("SkinPath検出: {0}", strSystemSkinSubfolders[size]);
size++;
#endregion
}
Trace.TraceInformation("SkinPath入力: {0}", strSystemSkinSubfolderFullName);
Array.Resize(ref strSystemSkinSubfolders, size);
Array.Sort(strSystemSkinSubfolders); // BinarySearch実行前にSortが必要
#endregion
#region [ 現在のSkinパスがbox.defスキンをCONFIG指定していた場合のために、最初にこれが有効かチェックする。有効ならこれを使う。 ]
if (bIsValid(strSystemSkinSubfolderFullName) &&
Array.BinarySearch(strSystemSkinSubfolders, strSystemSkinSubfolderFullName,
StringComparer.InvariantCultureIgnoreCase) < 0)
{
strBoxDefSkinSubfolders = new string[1] { strSystemSkinSubfolderFullName };
return;
}
#endregion
#region [ 次に、現在のSkinパスが存在するか調べる。あれば終了。]
if (Array.BinarySearch(strSystemSkinSubfolders, strSystemSkinSubfolderFullName,
StringComparer.InvariantCultureIgnoreCase) >= 0)
return;
#endregion
#region [ カレントのSkinパスが消滅しているので、以下で再設定する。]
/// 以下の優先順位で現在使用中のSkinパスを再設定する。
/// 1. System/Default/
/// 2. System/*****/ で最初にenumerateされたもの
/// 3. System/ (従来互換)
#region [ System/Default/ があるなら、そこにカレントSkinパスを設定する]
string tempSkinPath_default = System.IO.Path.Combine(strSystemSkinRoot, "Default" + System.IO.Path.DirectorySeparatorChar);
if (Array.BinarySearch(strSystemSkinSubfolders, tempSkinPath_default,
StringComparer.InvariantCultureIgnoreCase) >= 0)
{
strSystemSkinSubfolderFullName = tempSkinPath_default;
return;
}
#endregion
#region [ System/SkinFiles.*****/ で最初にenumerateされたものを、カレントSkinパスに再設定する ]
if (strSystemSkinSubfolders.Length > 0)
{
strSystemSkinSubfolderFullName = strSystemSkinSubfolders[0];
return;
}
#endregion
#region [ System/ に、カレントSkinパスを再設定する。]
strSystemSkinSubfolderFullName = strSystemSkinRoot;
strSystemSkinSubfolders = new string[1] { strSystemSkinSubfolderFullName };
#endregion
#endregion
}
// メソッド
public static string Path(string strファイルの相対パス)
{
if (strBoxDefSkinSubfolderFullName == "" || !bUseBoxDefSkin)
{
return System.IO.Path.Combine(strSystemSkinSubfolderFullName, strファイルの相対パス);
}
else
{
return System.IO.Path.Combine(strBoxDefSkinSubfolderFullName, strファイルの相対パス);
}
}
///
/// フルパス名を与えると、スキン名として、ディレクトリ名末尾の要素を返す
/// 例: C:\foo\bar\ なら、barを返す
///
/// スキンが格納されたパス名(フルパス)
/// スキン名
public static string GetSkinName(string skinPathFullName)
{
if (skinPathFullName != null)
{
if (skinPathFullName == "") // 「box.defで未定義」用
skinPathFullName = strSystemSkinSubfolderFullName;
string[] tmp = skinPathFullName.Split(System.IO.Path.DirectorySeparatorChar);
return tmp[tmp.Length - 2]; // ディレクトリ名の最後から2番目の要素がスキン名(最後の要素はnull。元stringの末尾が\なので。)
}
return null;
}
public static string[] GetSkinName(string[] skinPathFullNames)
{
string[] ret = new string[skinPathFullNames.Length];
for (int i = 0; i < skinPathFullNames.Length; i++)
{
ret[i] = GetSkinName(skinPathFullNames[i]);
}
return ret;
}
public string GetSkinSubfolderFullNameFromSkinName(string skinName)
{
foreach (string s in strSystemSkinSubfolders)
{
if (GetSkinName(s) == skinName)
return s;
}
foreach (string b in strBoxDefSkinSubfolders)
{
if (GetSkinName(b) == skinName)
return b;
}
return null;
}
///
/// スキンパス名が妥当かどうか
/// (タイトル画像にアクセスできるかどうかで判定する)
///
/// 妥当性を確認するスキンパス(フルパス)
/// 妥当ならtrue
public bool bIsValid(string skinPathFullName)
{
string filePathTitle;
filePathTitle = System.IO.Path.Combine(skinPathFullName, @"Graphics\1_Title\Background.png");
return (File.Exists(filePathTitle));
}
public void tRemoveMixerAll()
{
for (int i = 0; i < nシステムサウンド数; i++)
{
if (this[i] != null && this[i].b読み込み成功)
{
this[i].t停止する();
this[i].tRemoveMixer();
}
}
}
///
/// 変数の初期化
///
public void tSkinConfigInit()
{
this.eDiffDispMode = E難易度表示タイプ.mtaikoに画像で表示;
this.b現在のステージ数を表示しない = false;
}
public void LoadSkinConfigFromFile(string path, ref string work)
{
if (!File.Exists(Path(path))) return;
using (var streamReader = new StreamReader(Path(path), Encoding.GetEncoding(TJAPlayer3.sEncType)))
{
while (streamReader.Peek() > -1) // 一行ずつ読み込む。
{
var nowLine = streamReader.ReadLine();
if (nowLine.StartsWith("#include"))
{
// #include hogehoge.iniにぶち当たった
var includePath = nowLine.Substring("#include ".Length).Trim();
LoadSkinConfigFromFile(includePath, ref work); // 再帰的に読み込む
}
else
{
work += nowLine + Environment.NewLine;
}
}
}
}
public void tReadSkinConfig()
{
var str = "";
LoadSkinConfigFromFile(Path(@"SkinConfig.ini"), ref str);
this.t文字列から読み込み(str);
}
private void t文字列から読み込み(string strAllSettings) // 2011.4.13 yyagi; refactored to make initial KeyConfig easier.
{
string[] delimiter = { "\n" };
string[] strSingleLine = strAllSettings.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in strSingleLine)
{
string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
if ((str.Length != 0) && (str[0] != ';'))
{
try
{
string strCommand;
string strParam;
string[] strArray = str.Split(new char[] { '=' });
if (strArray.Length == 2)
{
strCommand = strArray[0].Trim();
strParam = strArray[1].Trim();
#region [Skin Settings]
void ParseInt32(Action setValue)
{
if (int.TryParse(strParam, out var unparsedValue))
{
setValue(unparsedValue);
}
else
{
Trace.TraceWarning($"SkinConfigの値 {strCommand} は整数値である必要があります。現在の値: {strParam}");
}
}
if (strCommand == "Name")
{
this.Skin_Name = strParam;
}
else if (strCommand == "Version")
{
this.Skin_Version = strParam;
}
else if (strCommand == "Creator")
{
this.Skin_Creator = strParam;
}
#endregion
#region [Background Scroll]
else if (strCommand == "Background_Scroll_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Background_Scroll_Y[i] = int.Parse(strSplit[i]);
}
}
#endregion
#region [Taiko Mode]
//-----------------------------
else if (strCommand == "ScrollFieldP1Y")
{
this.nScrollFieldY[0] = C変換.n値を文字列から取得して返す(strParam, 192);
}
else if (strCommand == "ScrollFieldP2Y")
{
this.nScrollFieldY[1] = C変換.n値を文字列から取得して返す(strParam, 192);
}
else if (strCommand == "SENotesP1Y")
{
this.nSENotesY[0] = C変換.n値を文字列から取得して返す(strParam, this.nSENotesY[0]);
}
else if (strCommand == "SENotesP2Y")
{
this.nSENotesY[1] = C変換.n値を文字列から取得して返す(strParam, this.nSENotesY[1]);
}
else if (strCommand == "JudgePointP1Y")
{
this.nJudgePointY[0] = C変換.n値を文字列から取得して返す(strParam, this.nJudgePointY[0]);
}
else if (strCommand == "JudgePointP2Y")
{
this.nJudgePointY[1] = C変換.n値を文字列から取得して返す(strParam, this.nJudgePointY[1]);
}
else if (strCommand == "DiffDispMode")
{
this.eDiffDispMode = (E難易度表示タイプ)C変換.n値を文字列から取得して範囲内に丸めて返す(strParam, 0, 2, (int)this.eDiffDispMode);
}
else if (strCommand == "NowStageDisp")
{
this.b現在のステージ数を表示しない = C変換.bONorOFF(strParam[0]);
}
//-----------------------------
#endregion
#region [Result screen]
//-----------------------------
else if (strCommand == "ResultPanelP1X")
{
this.nResultPanelP1X = C変換.n値を文字列から取得して返す(strParam, 515);
}
else if (strCommand == "ResultPanelP1Y")
{
this.nResultPanelP1Y = C変換.n値を文字列から取得して返す(strParam, 75);
}
else if (strCommand == "ResultPanelP2X")
{
this.nResultPanelP2X = C変換.n値を文字列から取得して返す(strParam, 515);
}
else if (strCommand == "ResultPanelP2Y")
{
this.nResultPanelP2Y = C変換.n値を文字列から取得して返す(strParam, 75);
}
else if (strCommand == "ResultScoreP1X")
{
this.nResultScoreP1X = C変換.n値を文字列から取得して返す(strParam, 582);
}
else if (strCommand == "ResultScoreP1Y")
{
this.nResultScoreP1Y = C変換.n値を文字列から取得して返す(strParam, 252);
}
//-----------------------------
#endregion
#region 新・SkinConfig
#region Config
else if (strCommand == nameof(Config_ItemText_Correction_X))
{
Config_ItemText_Correction_X = int.Parse(strParam);
}
else if (strCommand == nameof(Config_ItemText_Correction_Y))
{
Config_ItemText_Correction_Y = int.Parse(strParam);
}
#endregion
#region SongSelect
else if (strCommand == "SongSelect_Overall_Y")
{
if (int.Parse(strParam) != 0)
{
SongSelect_Overall_Y = int.Parse(strParam);
}
}
else if (strCommand == "SongSelect_BoxExplanation_X")
{
SongSelect_BoxExplanation_X = int.Parse(strParam);
}
else if (strCommand == "SongSelect_BoxExplanation_Y")
{
SongSelect_BoxExplanation_Y = int.Parse(strParam);
}
else if (strCommand == "SongSelect_Title_X")
{
SongSelect_Title_X = int.Parse(strParam);
}
else if (strCommand == "SongSelect_Title_Y")
{
SongSelect_Title_Y = int.Parse(strParam);
}
else if (strCommand == "SongSelect_BoxExplanation_Interval")
{
SongSelect_BoxExplanation_Interval = int.Parse(strParam);
}
else if (strCommand == "SongSelect_GenreName")
{
SongSelect_GenreName = this.strStringを配列に直す(strParam);
}
else if (strCommand == "SongSelect_NamePlate_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
SongSelect_NamePlate_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "SongSelect_NamePlate_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
SongSelect_NamePlate_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "SongSelect_Auto_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
SongSelect_Auto_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "SongSelect_Auto_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
SongSelect_Auto_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "SongSelect_ForeColor_JPOP")
{
SongSelect_ForeColor_JPOP = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_ForeColor_Anime")
{
SongSelect_ForeColor_Anime = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_ForeColor_VOCALOID")
{
SongSelect_ForeColor_VOCALOID = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_ForeColor_Children")
{
SongSelect_ForeColor_Children = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_ForeColor_Variety")
{
SongSelect_ForeColor_Variety = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_ForeColor_Classic")
{
SongSelect_ForeColor_Classic = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_ForeColor_GameMusic")
{
SongSelect_ForeColor_GameMusic = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(SongSelect_ForeColor_Namco))
{
SongSelect_ForeColor_GameMusic = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_BackColor_JPOP")
{
SongSelect_BackColor_JPOP = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_BackColor_Anime")
{
SongSelect_BackColor_Anime = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_BackColor_VOCALOID")
{
SongSelect_BackColor_VOCALOID = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_BackColor_Children")
{
SongSelect_BackColor_Children = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_BackColor_Variety")
{
SongSelect_BackColor_Variety = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_BackColor_Classic")
{
SongSelect_BackColor_Classic = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == "SongSelect_BackColor_GameMusic")
{
SongSelect_BackColor_GameMusic = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(SongSelect_BackColor_Namco))
{
SongSelect_BackColor_Namco = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(SongSelect_CorrectionX_Chara))
{
SongSelect_CorrectionX_Chara = strParam.Split(',').ToArray();
}
else if (strCommand == nameof(SongSelect_CorrectionY_Chara))
{
SongSelect_CorrectionY_Chara = strParam.Split(',').ToArray();
}
else if (strCommand == nameof(SongSelect_CorrectionX_Chara_Value))
{
SongSelect_CorrectionX_Chara_Value = int.Parse(strParam);
}
else if (strCommand == nameof(SongSelect_CorrectionY_Chara_Value))
{
SongSelect_CorrectionY_Chara_Value = int.Parse(strParam);
}
else if (strCommand == nameof(SongSelect_Rotate_Chara))
{
SongSelect_Rotate_Chara = strParam.Split(',').ToArray();
}
#endregion
#region SongLoading
else if (strCommand == nameof(SongLoading_Plate_X))
{
SongLoading_Plate_X = int.Parse(strParam);
}
else if (strCommand == nameof(SongLoading_Plate_Y))
{
SongLoading_Plate_Y = int.Parse(strParam);
}
else if (strCommand == nameof(SongLoading_Title_X))
{
SongLoading_Title_X = int.Parse(strParam);
}
else if (strCommand == nameof(SongLoading_Title_Y))
{
SongLoading_Title_Y = int.Parse(strParam);
}
else if (strCommand == nameof(SongLoading_SubTitle_X))
{
SongLoading_SubTitle_X = int.Parse(strParam);
}
else if (strCommand == nameof(SongLoading_SubTitle_Y))
{
SongLoading_SubTitle_Y = int.Parse(strParam);
}
else if (strCommand == nameof(SongLoading_Title_FontSize))
{
if (int.Parse(strParam) > 0)
SongLoading_Title_FontSize = int.Parse(strParam);
}
else if (strCommand == nameof(SongLoading_SubTitle_FontSize))
{
if (int.Parse(strParam) > 0)
SongLoading_SubTitle_FontSize = int.Parse(strParam);
}
else if (strCommand == nameof(SongLoading_Plate_ReferencePoint))
{
SongLoading_Plate_ReferencePoint = (ReferencePoint)int.Parse(strParam);
}
else if (strCommand == nameof(SongLoading_Title_ReferencePoint))
{
SongLoading_Title_ReferencePoint = (ReferencePoint)int.Parse(strParam);
}
else if (strCommand == nameof(SongLoading_SubTitle_ReferencePoint))
{
SongLoading_SubTitle_ReferencePoint = (ReferencePoint)int.Parse(strParam);
}
else if (strCommand == nameof(SongLoading_Title_ForeColor))
{
SongLoading_Title_ForeColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(SongLoading_Title_BackColor))
{
SongLoading_Title_BackColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(SongLoading_SubTitle_ForeColor))
{
SongLoading_SubTitle_ForeColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(SongLoading_SubTitle_BackColor))
{
SongLoading_SubTitle_BackColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(SongLoading_Plate_ScreenBlend))
{
SongLoading_Plate_ScreenBlend = C変換.bONorOFF(strParam[0]);
}
#endregion
#region Game
else if (strCommand == "Game_Notes_Anime")
{
Game_Notes_Anime = C変換.bONorOFF(strParam[0]);
}
else if (strCommand == "Game_StageText")
{
Game_StageText = strParam;
}
else if (strCommand == nameof(Game_RollColorMode))
{
Game_RollColorMode = (RollColorMode)int.Parse(strParam);
}
else if (strCommand == nameof(Game_JudgeFrame_AddBlend))
{
Game_JudgeFrame_AddBlend = C変換.bONorOFF(strParam[0]);
}
#region CourseSymbol
else if (strCommand == "Game_CourseSymbol_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_CourseSymbol_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_CourseSymbol_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_CourseSymbol_Y[i] = int.Parse(strSplit[i]);
}
}
#endregion
#region PanelFont
else if (strCommand == nameof(Game_MusicName_X))
{
Game_MusicName_X = int.Parse(strParam);
}
else if (strCommand == nameof(Game_MusicName_Y))
{
Game_MusicName_Y = int.Parse(strParam);
}
else if (strCommand == nameof(Game_MusicName_FontSize))
{
if (int.Parse(strParam) > 0)
Game_MusicName_FontSize = int.Parse(strParam);
}
else if (strCommand == nameof(Game_MusicName_ReferencePoint))
{
Game_MusicName_ReferencePoint = (ReferencePoint)int.Parse(strParam);
}
else if (strCommand == nameof(Game_Genre_X))
{
Game_Genre_X = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Genre_Y))
{
Game_Genre_Y = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Lyric_X))
{
Game_Lyric_X = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Lyric_Y))
{
Game_Lyric_Y = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Lyric_FontName))
{
Game_Lyric_FontName = strParam;
}
else if (strCommand == nameof(Game_Lyric_FontSize))
{
if (int.Parse(strParam) > 0)
Game_Lyric_FontSize = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Lyric_ReferencePoint))
{
Game_Lyric_ReferencePoint = (ReferencePoint)int.Parse(strParam);
}
else if (strCommand == nameof(Game_MusicName_ForeColor))
{
Game_MusicName_ForeColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(Game_StageText_ForeColor))
{
Game_StageText_ForeColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(Game_Lyric_ForeColor))
{
Game_Lyric_ForeColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(Game_MusicName_BackColor))
{
Game_MusicName_BackColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(Game_StageText_BackColor))
{
Game_StageText_BackColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(Game_Lyric_BackColor))
{
Game_Lyric_BackColor = ColorTranslator.FromHtml(strParam);
}
#endregion
// Chara read
#region Chara
else if (strCommand == "Game_Chara_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Chara_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Chara_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Chara_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Chara_Balloon_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Chara_Balloon_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Chara_Balloon_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Chara_Balloon_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == nameof(Game_Chara_Balloon_Timer))
{
if (int.Parse(strParam) > 0)
Game_Chara_Balloon_Timer = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Chara_Balloon_Delay))
{
if (int.Parse(strParam) > 0)
Game_Chara_Balloon_Delay = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Chara_Balloon_FadeOut))
{
if (int.Parse(strParam) > 0)
Game_Chara_Balloon_FadeOut = int.Parse(strParam);
}
// パターン数の設定はTextureLoader.csで反映されます。
else if (strCommand == "Game_Chara_Motion_Normal")
{
Game_Chara_Motion_Normal = strParam;
}
else if (strCommand == "Game_Chara_Motion_Clear")
{
Game_Chara_Motion_Clear = strParam;
}
else if (strCommand == "Game_Chara_Motion_GoGo")
{
Game_Chara_Motion_GoGo = strParam;
}
else if (strCommand == "Game_Chara_Beat_Normal")
{
ParseInt32(value => Game_Chara_Beat_Normal = value);
}
else if (strCommand == "Game_Chara_Beat_Clear")
{
ParseInt32(value => Game_Chara_Beat_Clear = value);
}
else if (strCommand == "Game_Chara_Beat_GoGo")
{
ParseInt32(value => Game_Chara_Beat_GoGo = value);
}
#endregion
#region Dancer
else if (strCommand == "Game_Dancer_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 5; i++)
{
Game_Dancer_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Dancer_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 5; i++)
{
Game_Dancer_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Dancer_Motion")
{
Game_Dancer_Motion = strParam;
}
// Game_Dancer_PtnはTextrueLoader.csで反映されます。
else if (strCommand == "Game_Dancer_Beat")
{
ParseInt32(value => Game_Dancer_Beat = value);
}
else if (strCommand == "Game_Dancer_Gauge")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 5; i++)
{
Game_Dancer_Gauge[i] = int.Parse(strSplit[i]);
}
}
#endregion
#region Mob
else if (strCommand == "Game_Mob_Beat")
{
ParseInt32(value => Game_Mob_Beat = value);
}
else if (strCommand == "Game_Mob_Ptn_Beat")
{
ParseInt32(value => Game_Mob_Ptn_Beat = value);
}
#endregion
#region Score
else if (strCommand == "Game_Score_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Game_Score_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Score_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Game_Score_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Score_Add_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Game_Score_Add_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Score_Add_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Game_Score_Add_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Score_AddBonus_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Game_Score_AddBonus_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Score_AddBonus_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Game_Score_AddBonus_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Score_Padding")
{
ParseInt32(value => Game_Score_Padding = value);
}
else if (strCommand == "Game_Score_Size")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Score_Size[i] = int.Parse(strSplit[i]);
}
}
#endregion
#region Taiko
else if (strCommand == "Game_Taiko_NamePlate_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_NamePlate_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_NamePlate_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_NamePlate_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_PlayerNumber_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_PlayerNumber_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_PlayerNumber_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_PlayerNumber_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_Combo_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_Combo_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_Ex_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_Combo_Ex_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_Ex_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_Combo_Ex_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_Ex4_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_Combo_Ex4_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_Ex4_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_Combo_Ex4_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_Padding")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 3; i++)
{
Game_Taiko_Combo_Padding[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_Size")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_Combo_Size[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_Size_Ex")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_Combo_Size_Ex[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_Scale")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 3; i++)
{
Game_Taiko_Combo_Scale[i] = float.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_Text_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_Combo_Text_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_Text_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_Combo_Text_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Taiko_Combo_Text_Size")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Taiko_Combo_Text_Size[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == nameof(Game_Taiko_Combo_Ex_IsJumping))
{
Game_Taiko_Combo_Ex_IsJumping = C変換.bONorOFF(strParam[0]);
}
#endregion
#region Gauge
else if (strCommand == "Game_Gauge_Rainbow_Timer")
{
if (int.Parse(strParam) != 0)
{
Game_Gauge_Rainbow_Timer = int.Parse(strParam);
}
}
#endregion
#region Balloon
else if (strCommand == "Game_Balloon_Combo_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Combo_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Combo_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Combo_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Combo_Number_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Combo_Number_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Combo_Number_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Combo_Number_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Combo_Number_Ex_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Combo_Number_Ex_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Combo_Number_Ex_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Combo_Number_Ex_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Combo_Text_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Combo_Text_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Combo_Text_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Combo_Text_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Combo_Text_Ex_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Combo_Text_Ex_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Combo_Text_Ex_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Combo_Text_Ex_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Balloon_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Game_Balloon_Balloon_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Balloon_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Game_Balloon_Balloon_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Balloon_Frame_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Game_Balloon_Balloon_Frame_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Balloon_Frame_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Game_Balloon_Balloon_Frame_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Balloon_Number_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Game_Balloon_Balloon_Number_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Balloon_Number_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
this.Game_Balloon_Balloon_Number_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Roll_Frame_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Roll_Frame_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Roll_Frame_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Roll_Frame_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Roll_Number_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Roll_Number_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Roll_Number_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Roll_Number_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Number_Size")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Balloon_Number_Size[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Balloon_Number_Padding")
{
ParseInt32(value => Game_Balloon_Number_Padding = value);
}
else if (strCommand == "Game_Balloon_Roll_Number_Scale")
{
ParseInt32(value => Game_Balloon_Roll_Number_Scale = value);
}
else if (strCommand == "Game_Balloon_Balloon_Number_Scale")
{
ParseInt32(value => Game_Balloon_Balloon_Number_Scale = value);
}
#endregion
#region Effects
else if (strCommand == nameof(Game_Effect_Roll_StartPoint_X))
{
Game_Effect_Roll_StartPoint_X = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_Roll_StartPoint_Y))
{
Game_Effect_Roll_StartPoint_Y = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_Roll_StartPoint_1P_X))
{
Game_Effect_Roll_StartPoint_1P_X = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_Roll_StartPoint_1P_Y))
{
Game_Effect_Roll_StartPoint_1P_Y = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_Roll_StartPoint_2P_X))
{
Game_Effect_Roll_StartPoint_2P_X = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_Roll_StartPoint_2P_Y))
{
Game_Effect_Roll_StartPoint_2P_Y = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_Roll_Speed_X))
{
Game_Effect_Roll_Speed_X = strParam.Split(',').Select(float.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_Roll_Speed_Y))
{
Game_Effect_Roll_Speed_Y = strParam.Split(',').Select(float.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_Roll_Speed_1P_X))
{
Game_Effect_Roll_Speed_1P_X = strParam.Split(',').Select(float.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_Roll_Speed_1P_Y))
{
Game_Effect_Roll_Speed_1P_Y = strParam.Split(',').Select(float.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_Roll_Speed_2P_X))
{
Game_Effect_Roll_Speed_2P_X = strParam.Split(',').Select(float.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_Roll_Speed_2P_Y))
{
Game_Effect_Roll_Speed_2P_Y = strParam.Split(',').Select(float.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_NotesFlash))
{
Game_Effect_NotesFlash = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_NotesFlash_Timer))
{
Game_Effect_NotesFlash_Timer = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Effect_GoGoSplash))
{
Game_Effect_GoGoSplash = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_GoGoSplash_X))
{
Game_Effect_GoGoSplash_X = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_GoGoSplash_Y))
{
Game_Effect_GoGoSplash_Y = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_GoGoSplash_Rotate))
{
Game_Effect_GoGoSplash_Rotate = C変換.bONorOFF(strParam[0]);
}
else if (strCommand == nameof(Game_Effect_GoGoSplash_Timer))
{
Game_Effect_GoGoSplash_Timer = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Effect_FlyingNotes_StartPoint_X))
{
Game_Effect_FlyingNotes_StartPoint_X = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_FlyingNotes_StartPoint_Y))
{
Game_Effect_FlyingNotes_StartPoint_Y = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_FlyingNotes_EndPoint_X))
{
Game_Effect_FlyingNotes_EndPoint_X = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_FlyingNotes_EndPoint_Y))
{
Game_Effect_FlyingNotes_EndPoint_Y = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_FlyingNotes_Sine))
{
Game_Effect_FlyingNotes_Sine = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Effect_FlyingNotes_IsUsingEasing))
{
Game_Effect_FlyingNotes_IsUsingEasing = C変換.bONorOFF(strParam[0]);
}
else if (strCommand == nameof(Game_Effect_FlyingNotes_Timer))
{
Game_Effect_FlyingNotes_Timer = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Effect_FireWorks))
{
Game_Effect_FireWorks = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Effect_FireWorks_Timer))
{
Game_Effect_FireWorks_Timer = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Effect_Rainbow_Timer))
{
Game_Effect_Rainbow_Timer = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Effect_HitExplosion_AddBlend))
{
Game_Effect_HitExplosion_AddBlend = C変換.bONorOFF(strParam[0]);
}
else if (strCommand == nameof(Game_Effect_HitExplosionBig_AddBlend))
{
Game_Effect_HitExplosionBig_AddBlend = C変換.bONorOFF(strParam[0]);
}
else if (strCommand == nameof(Game_Effect_FireWorks_AddBlend))
{
Game_Effect_FireWorks_AddBlend = C変換.bONorOFF(strParam[0]);
}
else if (strCommand == nameof(Game_Effect_Fire_AddBlend))
{
Game_Effect_Fire_AddBlend = C変換.bONorOFF(strParam[0]);
}
else if (strCommand == nameof(Game_Effect_GoGoSplash_AddBlend))
{
Game_Effect_GoGoSplash_AddBlend = C変換.bONorOFF(strParam[0]);
}
else if (strCommand == nameof(Game_Effect_FireWorks_Timing))
{
Game_Effect_FireWorks_Timing = int.Parse(strParam);
}
#endregion
#region Runner
else if (strCommand == "Game_Runner_Size")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Runner_Size[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Runner_Ptn")
{
ParseInt32(value => Game_Runner_Ptn = value);
}
else if (strCommand == "Game_Runner_Type")
{
ParseInt32(value => Game_Runner_Type = value);
}
else if (strCommand == "Game_Runner_StartPoint_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Runner_StartPoint_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Runner_StartPoint_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_Runner_StartPoint_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Runner_Timer")
{
if (int.Parse(strParam) != 0)
{
Game_Runner_Timer = int.Parse(strParam);
}
}
#endregion
#region Dan_C
else if (strCommand == nameof(Game_DanC_Title_ForeColor))
{
Game_DanC_Title_ForeColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(Game_DanC_Title_BackColor))
{
Game_DanC_Title_BackColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(Game_DanC_SubTitle_ForeColor))
{
Game_DanC_SubTitle_ForeColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(Game_DanC_SubTitle_BackColor))
{
Game_DanC_SubTitle_BackColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(Game_DanC_X))
{
Game_DanC_X = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_DanC_Y))
{
Game_DanC_Y = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_DanC_Size))
{
Game_DanC_Size = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_DanC_Padding))
{
ParseInt32(value => Game_DanC_Padding = value);
}
else if (strCommand == nameof(Game_DanC_Offset))
{
Game_DanC_Offset = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_DanC_Number_Size))
{
Game_DanC_Number_Size = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_DanC_Number_Padding))
{
ParseInt32(value => Game_DanC_Number_Padding = value);
}
else if (strCommand == nameof(Game_DanC_Number_Small_Scale))
{
Game_DanC_Number_Small_Scale = float.Parse(strParam);
}
else if (strCommand == nameof(Game_DanC_Number_Small_Padding))
{
ParseInt32(value => Game_DanC_Number_Small_Padding = value);
}
else if (strCommand == nameof(Game_DanC_Number_XY))
{
Game_DanC_Number_XY = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_DanC_Number_Small_Number_Offset))
{
Game_DanC_Number_Small_Number_Offset = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_DanC_ExamType_Size))
{
Game_DanC_ExamType_Size = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_DanC_ExamRange_Size))
{
Game_DanC_ExamRange_Size = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_DanC_ExamRange_Padding))
{
ParseInt32(value => Game_DanC_ExamRange_Padding = value);
}
else if (strCommand == nameof(Game_DanC_Percent_Hit_Score_Padding))
{
Game_DanC_Percent_Hit_Score_Padding = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_DanC_ExamUnit_Size))
{
Game_DanC_ExamUnit_Size = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_DanC_Exam_Offset))
{
Game_DanC_Exam_Offset = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_DanC_Dan_Plate))
{
Game_DanC_Dan_Plate = strParam.Split(',').Select(int.Parse).ToArray();
}
#endregion
#region PuchiChara
else if (strCommand == nameof(Game_PuchiChara_X))
{
Game_PuchiChara_X = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_PuchiChara_Y))
{
Game_PuchiChara_Y = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_PuchiChara_BalloonX))
{
Game_PuchiChara_BalloonX = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_PuchiChara_BalloonY))
{
Game_PuchiChara_BalloonY = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_PuchiChara_Scale))
{
Game_PuchiChara_Scale = strParam.Split(',').Select(float.Parse).ToArray();
}
else if (strCommand == nameof(Game_PuchiChara))
{
Game_PuchiChara = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_PuchiChara_Sine))
{
ParseInt32(value => Game_PuchiChara_Sine = value);
}
else if (strCommand == nameof(Game_PuchiChara_Timer))
{
ParseInt32(value => Game_PuchiChara_Timer = value);
}
else if (strCommand == nameof(Game_PuchiChara_SineTimer))
{
Game_PuchiChara_SineTimer = double.Parse(strParam);
}
#endregion
#region Training
else if (strCommand == nameof(Game_Training_ScrollTime))
{
Game_Training_ScrollTime = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Training_ProgressBar_XY))
{
Game_Training_ProgressBar_XY = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Training_GoGoPoint_Y))
{
Game_Training_GoGoPoint_Y = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Training_JumpPoint_Y))
{
Game_Training_JumpPoint_Y = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Training_MaxMeasureCount_XY))
{
Game_Training_MaxMeasureCount_XY = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Training_CurrentMeasureCount_XY))
{
Game_Training_CurrentMeasureCount_XY = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Training_SpeedDisplay_XY))
{
Game_Training_CurrentMeasureCount_XY = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Game_Training_SmallNumber_Width))
{
Game_Training_SmallNumber_Width = int.Parse(strParam);
}
else if (strCommand == nameof(Game_Training_BigNumber_Width))
{
Game_Training_BigNumber_Width = int.Parse(strParam);
}
#endregion
#endregion
#region Result
else if (strCommand == nameof(Result_MusicName_X))
{
Result_MusicName_X = int.Parse(strParam);
}
else if (strCommand == nameof(Result_MusicName_Y))
{
Result_MusicName_Y = int.Parse(strParam);
}
else if (strCommand == nameof(Result_MusicName_FontSize))
{
if (int.Parse(strParam) > 0)
Result_MusicName_FontSize = int.Parse(strParam);
}
else if (strCommand == nameof(Result_MusicName_ReferencePoint))
{
Result_MusicName_ReferencePoint = (ReferencePoint)int.Parse(strParam);
}
else if (strCommand == nameof(Result_StageText_X))
{
Result_StageText_X = int.Parse(strParam);
}
else if (strCommand == nameof(Result_StageText_Y))
{
Result_StageText_Y = int.Parse(strParam);
}
else if (strCommand == nameof(Result_StageText_FontSize))
{
if (int.Parse(strParam) > 0)
Result_StageText_FontSize = int.Parse(strParam);
}
else if (strCommand == nameof(Result_StageText_ReferencePoint))
{
Result_StageText_ReferencePoint = (ReferencePoint)int.Parse(strParam);
}
else if (strCommand == nameof(Result_MusicName_ForeColor))
{
Result_MusicName_ForeColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(Result_StageText_ForeColor))
{
Result_StageText_ForeColor = ColorTranslator.FromHtml(strParam);
}
//else if (strCommand == nameof(Result_StageText_ForeColor_Red))
//{
// Result_StageText_ForeColor_Red = ColorTranslator.FromHtml(strParam);
//}
else if (strCommand == nameof(Result_MusicName_BackColor))
{
Result_MusicName_BackColor = ColorTranslator.FromHtml(strParam);
}
else if (strCommand == nameof(Result_StageText_BackColor))
{
Result_StageText_BackColor = ColorTranslator.FromHtml(strParam);
}
//else if (strCommand == nameof(Result_StageText_BackColor_Red))
//{
// Result_StageText_BackColor_Red = ColorTranslator.FromHtml(strParam);
//}
else if (strCommand == "Result_NamePlate_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Result_NamePlate_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Result_NamePlate_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Result_NamePlate_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == nameof(Result_Dan))
{
Result_Dan = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Result_Dan_XY))
{
Result_Dan_XY = strParam.Split(',').Select(int.Parse).ToArray();
}
else if (strCommand == nameof(Result_Dan_Plate_XY))
{
Result_Dan_Plate_XY = strParam.Split(',').Select(int.Parse).ToArray();
}
#endregion
#region Font
else if (strCommand == nameof(Font_Edge_Ratio)) //Config画面や簡易メニューのフォントについて(rhimm)
{
if (int.Parse(strParam) > 0)
Font_Edge_Ratio = int.Parse(strParam);
}
else if (strCommand == nameof(Font_Edge_Ratio_Vertical)) //TITLEやSUBTITLEなど、縦に書かれることのあるフォントについて(rhimm)
{
if (int.Parse(strParam) > 0)
Font_Edge_Ratio_Vertical = int.Parse(strParam);
}
else if (strCommand == nameof(Text_Correction_X))
{
Text_Correction_X = int.Parse(strParam);
}
else if (strCommand == nameof(Text_Correction_Y))
{
Text_Correction_Y = int.Parse(strParam);
}
#endregion
#endregion
}
continue;
}
catch (Exception exception)
{
Trace.TraceError(exception.ToString());
Trace.TraceError("例外が発生しましたが処理を継続します。 (6a32cc37-1527-412e-968a-512c1f0135cd)");
continue;
}
}
}
}
private void t座標の追従設定()
{
//
if (bFieldBgPointOverride == true)
{
}
}
#region [ IDisposable 実装 ]
//-----------------
public void Dispose()
{
if (!this.bDisposed済み)
{
for (int i = 0; i < this.nシステムサウンド数; i++)
this[i].Dispose();
this.bDisposed済み = true;
}
}
//-----------------
#endregion
// その他
#region [ private ]
//-----------------
private bool bDisposed済み;
//-----------------
#endregion
#region 背景(スクロール)
public int[] Background_Scroll_Y = new int[] { 0, 536 };
#endregion
#region[ 座標 ]
//2017.08.11 kairera0467 DP実用化に向けてint配列に変更
//フィールド位置 Xは判定枠部分の位置。Yはフィールドの最上部の座標。
//現時点ではノーツ画像、Senotes画像、判定枠が連動する。
//Xは中央基準描画、Yは左上基準描画
public int[] nScrollFieldX = new int[] { 414, 414 };
public int[] nScrollFieldY = new int[] { 192, 368 };
//中心座標指定
public int[] nJudgePointX = new int[] { 413, 413, 413, 413 };
public int[] nJudgePointY = new int[] { 256, 433, 0, 0 };
//フィールド背景画像
//ScrollField座標への追従設定が可能。
//分岐背景、ゴーゴー背景が連動する。(全て同じ大きさ、位置で作成すること。)
//左上基準描画
public bool bFieldBgPointOverride = false;
public int[] nScrollFieldBGX = new int[] { 333, 333, 333, 333 };
public int[] nScrollFieldBGY = new int[] { 192, 368, 0, 0 };
//SEnotes
//音符座標に加算
public int[] nSENotesY = new int[] { 131, 131 };
//光る太鼓部分
public int nMtaikoBackgroundX = 0;
public int nMtaikoBackgroundY = 184;
public int nMtaikoFieldX = 0;
public int nMtaikoFieldY = 184;
public int nMtaikoMainX = 0;
public int nMtaikoMainY = 0;
//コンボ
public int[] nComboNumberX = new int[] { 0, 0, 0, 0 };
public int[] nComboNumberY = new int[] { 212, 388, 0, 0 };
public int[] nComboNumberTextY = new int[] { 271, 447, 0, 0 };
public int[] nComboNumberTextLargeY = new int[] { 270, 446, 0, 0 };
public float fComboNumberSpacing = 0;
public float fComboNumberSpacing_l = 0;
public E難易度表示タイプ eDiffDispMode;
public bool b現在のステージ数を表示しない;
//リザルト画面
//現在のデフォルト値はダミーです。
public int nResultPanelP1X = 0;
public int nResultPanelP1Y = 0;
public int nResultPanelP2X = 515;
public int nResultPanelP2Y = 75;
public int nResultScoreP1X = 295;
public int nResultScoreP1Y = 212;
public int nResultJudge1_P1X = 495;
public int nResultJudge1_P1Y = 182;
public int nResultJudge2_P1X = 968;
public int nResultJudge2_P1Y = 174;
public int nResultNumberP1X = 490;
public int nResultNumberP2X = 875;
public int nResultNumberY = 188;
public int nResultNumberYPadding = 42;
public int nResultGaugeBaseP1X = 56;
public int nResultGaugeBaseP1Y = 141;
public int nResultGaugeBaseP2X = 555;
public int nResultGaugeBaseP2Y = 122;
public int nResultGaugeBodyP1X = 559;
public int nResultGaugeBodyP1Y = 125;
#endregion
public string[] strStringを配列に直す(string str)
{
string[] strArray = str.Split(',');
return strArray;
}
public enum RollColorMode
{
None, // PS4, Switchなど
All, // 旧筐体(旧作含む)
WithoutStart // 新筐体
}
public enum ReferencePoint //テクスチャ描画の基準点を変更可能にするための値(rhimm)
{
Center,
Left,
Right
}
#region 新・SkinConfig
#region General
public string Skin_Name = "Unknown";
public string Skin_Version = "Unknown";
public string Skin_Creator = "Unknown";
#endregion
#region Config
public int Config_ItemText_Correction_X = 0;
public int Config_ItemText_Correction_Y = 0;
public int Config_NamePlate_Ptn_Title;
public int[] Config_NamePlate_Ptn_Title_Boxes;
#endregion
#region Puchichara
public int Puchichara_Ptn;
#endregion
#region Characters
public int Characters_Ptn;
public int[] Characters_Normal_Ptn,
Characters_Normal_Cleared_Ptn,
Characters_Normal_Maxed_Ptn,
Characters_GoGoTime_Ptn,
Characters_GoGoTime_Maxed_Ptn,
Characters_10Combo_Ptn,
Characters_10Combo_Maxed_Ptn,
Characters_GoGoStart_Ptn,
Characters_GoGoStart_Maxed_Ptn,
Characters_Become_Cleared_Ptn,
Characters_Become_Maxed_Ptn,
Characters_Balloon_Breaking_Ptn,
Characters_Balloon_Broke_Ptn,
Characters_Balloon_Miss_Ptn,
Characters_Title_Entry_Ptn,
Characters_Title_Normal_Ptn,
Characters_Menu_Loop_Ptn,
Characters_Menu_Select_Ptn,
Characters_Menu_Start_Ptn,
Characters_Result_Clear_Ptn,
Characters_Result_Failed_Ptn,
Characters_Result_Failed_In_Ptn,
Characters_Result_Normal_Ptn;
// Config
public int[][] Characters_Title_Entry_X;
public int[][] Characters_Title_Entry_Y;
public int[][] Characters_Title_Normal_X;
public int[][] Characters_Title_Normal_Y;
public int[][] Characters_Menu_X;
public int[][] Characters_Menu_Y;
public int[][] Characters_Result_X;
public int[][] Characters_Result_Y;
public int[][] Characters_X;
public int[][] Characters_Y;
public int[][] Characters_Balloon_X;
public int[][] Characters_Balloon_Y;
public string[] Characters_Motion_Normal,
Characters_Motion_Clear,
Characters_Motion_GoGo;
public int[] Characters_Beat_Normal;
public int[] Characters_Beat_Clear;
public int[] Characters_Beat_GoGo;
public int[] Characters_Balloon_Timer;
public int[] Characters_Balloon_Delay;
public int[] Characters_Balloon_FadeOut;
#endregion
#region SongSelect
public int SongSelect_Overall_Y = 123;
public int SongSelect_BoxExplanation_X = 0;
public int SongSelect_BoxExplanation_Y = 0;
public int SongSelect_BoxExplanation_Interval = 30;
public int SongSelect_Title_X = 0;
public int SongSelect_Title_Y = 0;
public string[] SongSelect_GenreName = { "ポップス", "アニメ", "ゲームバラエティ", "ナムコオリジナル", "クラシック", "バラエティ", "キッズ", "ボーカロイド", "最近遊んだ曲"};
public int[] SongSelect_NamePlate_X = new int[] { 36, 1020 };
public int[] SongSelect_NamePlate_Y = new int[] { 615, 615 };
public int[] SongSelect_Auto_X = new int[] { 60, 950 };
public int[] SongSelect_Auto_Y = new int[] { 650, 650 };
public Color SongSelect_ForeColor_JPOP = ColorTranslator.FromHtml("#FFFFFF");
public Color SongSelect_ForeColor_Anime = ColorTranslator.FromHtml("#FFFFFF");
public Color SongSelect_ForeColor_VOCALOID = ColorTranslator.FromHtml("#FFFFFF");
public Color SongSelect_ForeColor_Children = ColorTranslator.FromHtml("#FFFFFF");
public Color SongSelect_ForeColor_Variety = ColorTranslator.FromHtml("#FFFFFF");
public Color SongSelect_ForeColor_Classic = ColorTranslator.FromHtml("#FFFFFF");
public Color SongSelect_ForeColor_GameMusic = ColorTranslator.FromHtml("#FFFFFF");
public Color SongSelect_ForeColor_Namco = ColorTranslator.FromHtml("#FFFFFF");
public Color SongSelect_BackColor_JPOP = ColorTranslator.FromHtml("#01455B");
public Color SongSelect_BackColor_Anime = ColorTranslator.FromHtml("#99001F");
public Color SongSelect_BackColor_VOCALOID = ColorTranslator.FromHtml("#5B6278");
public Color SongSelect_BackColor_Children = ColorTranslator.FromHtml("#9D3800");
public Color SongSelect_BackColor_Variety = ColorTranslator.FromHtml("#366600");
public Color SongSelect_BackColor_Classic = ColorTranslator.FromHtml("#875600");
public Color SongSelect_BackColor_GameMusic = ColorTranslator.FromHtml("#412080");
public Color SongSelect_BackColor_Namco = ColorTranslator.FromHtml("#980E00");
public int SongSelect_Bar_Genre_Count,
SongSelect_Genre_Background_Count,
SongSelect_Box_Chara_Count,
SongSelect_Difficulty_Background_Count;
public string[] SongSelect_CorrectionX_Chara = { "ここにX座標を補正したい文字をカンマで区切って記入" };
public string[] SongSelect_CorrectionY_Chara = { "ここにY座標を補正したい文字をカンマで区切って記入" };
public int SongSelect_CorrectionX_Chara_Value = 0;
public int SongSelect_CorrectionY_Chara_Value = 0;
public string[] SongSelect_Rotate_Chara = { "ここに90℃回転させたい文字をカンマで区切って記入" };
#endregion
#region SongLoading
public int SongLoading_Plate_X = 640;
public int SongLoading_Plate_Y = 360;
public int SongLoading_Title_X = 640;
public int SongLoading_Title_Y = 280;
public int SongLoading_SubTitle_X = 640;
public int SongLoading_SubTitle_Y = 325;
public int SongLoading_Title_FontSize = 31;
public int SongLoading_SubTitle_FontSize = 20;
public ReferencePoint SongLoading_Plate_ReferencePoint = ReferencePoint.Center;
public ReferencePoint SongLoading_Title_ReferencePoint = ReferencePoint.Center;
public ReferencePoint SongLoading_SubTitle_ReferencePoint = ReferencePoint.Center;
public Color SongLoading_Title_ForeColor = ColorTranslator.FromHtml("#FFFFFF");
public Color SongLoading_Title_BackColor = ColorTranslator.FromHtml("#000000");
public Color SongLoading_SubTitle_ForeColor = ColorTranslator.FromHtml("#000000");
public Color SongLoading_SubTitle_BackColor = ColorTranslator.FromHtml("#00000000");
public bool SongLoading_Plate_ScreenBlend = false;
#endregion
#region Game
// Game parameters here
public bool Game_Notes_Anime = false;
public string Game_StageText = "1曲目";
public RollColorMode Game_RollColorMode = RollColorMode.All;
public bool Game_JudgeFrame_AddBlend = true;
#region Chara
public int[] Game_Chara_X = new int[] { 0, 0 };
public int[] Game_Chara_Y = new int[] { 0, 537 };
public int[] Game_Chara_Balloon_X = new int[] { 240, 240, 0, 0 };
public int[] Game_Chara_Balloon_Y = new int[] { 0, 297, 0, 0 };
public int Game_Chara_Ptn_Normal,
Game_Chara_Ptn_GoGo,
Game_Chara_Ptn_Clear,
Game_Chara_Ptn_10combo,
Game_Chara_Ptn_10combo_Max,
Game_Chara_Ptn_GoGoStart,
Game_Chara_Ptn_GoGoStart_Max,
Game_Chara_Ptn_ClearIn,
Game_Chara_Ptn_SoulIn,
Game_Chara_Ptn_Balloon_Breaking,
Game_Chara_Ptn_Balloon_Broke,
Game_Chara_Ptn_Balloon_Miss;
public string Game_Chara_Motion_Normal,
Game_Chara_Motion_Clear,
Game_Chara_Motion_GoGo = "0";
public int Game_Chara_Beat_Normal = 1;
public int Game_Chara_Beat_Clear = 2;
public int Game_Chara_Beat_GoGo = 2;
public int Game_Chara_Balloon_Timer = 28;
public int Game_Chara_Balloon_Delay = 500;
public int Game_Chara_Balloon_FadeOut = 84;
#endregion
#region Dancer
public int[] Game_Dancer_X = new int[] { 640, 430, 856, 215, 1070 };
public int[] Game_Dancer_Y = new int[] { 500, 500, 500, 500, 500 };
public string Game_Dancer_Motion = "0";
public int Game_Dancer_Ptn = 0;
public int Game_Dancer_Beat = 8;
public int[] Game_Dancer_Gauge = new int[] { 0, 0, 0, 40, 80 };
#endregion
#region Tower
public int Game_Tower_Ptn;
public int[] Game_Tower_Ptn_Deco,
Game_Tower_Ptn_Base;
public int Game_Tower_Ptn_Result;
public int Game_Tower_Ptn_Don;
public int[] Game_Tower_Ptn_Don_Standing,
Game_Tower_Ptn_Don_Jump,
Game_Tower_Ptn_Don_Climbing,
Game_Tower_Ptn_Don_Running;
#endregion
#region Mob
public int Game_Mob_Ptn = 1;
public int Game_Mob_Beat,
Game_Mob_Ptn_Beat = 1;
#endregion
#region CourseSymbol
public int[] Game_CourseSymbol_X = new int[] { 64, 64 };
public int[] Game_CourseSymbol_Y = new int[] { 232, 582 };
#endregion
#region PanelFont
public int Game_MusicName_X = 1160;
public int Game_MusicName_Y = 24;
public int Game_MusicName_FontSize = 27;
public ReferencePoint Game_MusicName_ReferencePoint = ReferencePoint.Center;
public int Game_Genre_X = 1015;
public int Game_Genre_Y = 70;
public int Game_Lyric_X = 640;
public int Game_Lyric_Y = 630;
public string Game_Lyric_FontName = "MS UI Gothic";
public int Game_Lyric_FontSize = 38;
public ReferencePoint Game_Lyric_ReferencePoint = ReferencePoint.Center;
public Color Game_MusicName_ForeColor = ColorTranslator.FromHtml("#FFFFFF");
public Color Game_StageText_ForeColor = ColorTranslator.FromHtml("#FFFFFF");
public Color Game_Lyric_ForeColor = ColorTranslator.FromHtml("#FFFFFF");
public Color Game_MusicName_BackColor = ColorTranslator.FromHtml("#000000");
public Color Game_StageText_BackColor = ColorTranslator.FromHtml("#000000");
public Color Game_Lyric_BackColor = ColorTranslator.FromHtml("#0000FF");
#endregion
#region Score
public int[] Game_Score_X = new int[] { 20, 20, 0, 0 };
public int[] Game_Score_Y = new int[] { 226, 530, 0, 0 };
public int[] Game_Score_Add_X = new int[] { 20, 20, 0, 0 };
public int[] Game_Score_Add_Y = new int[] { 186, 570, 0, 0 };
public int[] Game_Score_AddBonus_X = new int[] { 20, 20, 0, 0 };
public int[] Game_Score_AddBonus_Y = new int[] { 136, 626, 0, 0 };
public int Game_Score_Padding = 20;
public int[] Game_Score_Size = new int[] { 24, 40 };
#endregion
#region Taiko
public int[] Game_Taiko_NamePlate_X = new int[] { 0, 0 };
public int[] Game_Taiko_NamePlate_Y = new int[] { 300, 380 };
public int[] Game_Taiko_PlayerNumber_X = new int[] { 4, 4 };
public int[] Game_Taiko_PlayerNumber_Y = new int[] { 233, 435 };
public int[] Game_Taiko_X = new int[] { 190, 190 };
public int[] Game_Taiko_Y = new int[] { 190, 368 };
public int[] Game_Taiko_Combo_X = new int[] { 267, 267 };
public int[] Game_Taiko_Combo_Y = new int[] { 272, 447 };
public int[] Game_Taiko_Combo_Ex_X = new int[] { 267, 267 };
public int[] Game_Taiko_Combo_Ex_Y = new int[] { 274, 451 };
public int[] Game_Taiko_Combo_Ex4_X = new int[] { 267, 267 };
public int[] Game_Taiko_Combo_Ex4_Y = new int[] { 269, 447 };
public int[] Game_Taiko_Combo_Padding = new int[] { 34, 34, 30 };
public int[] Game_Taiko_Combo_Size = new int[] { 40, 48 };
public int[] Game_Taiko_Combo_Size_Ex = new int[] { 40, 48 };
public float[] Game_Taiko_Combo_Scale = new float[] { 1.0f, 1.0f, 0.9f };
public int[] Game_Taiko_Combo_Text_X = new int[] { 268, 268 };
public int[] Game_Taiko_Combo_Text_Y = new int[] { 298, 475 };
public int[] Game_Taiko_Combo_Text_Size = new int[] { 100, 50 };
public bool Game_Taiko_Combo_Ex_IsJumping = true;
#endregion
#region Gauge
public int Game_Gauge_Rainbow_Ptn;
public int Game_Gauge_Dan_Rainbow_Ptn;
public int Game_Gauge_Rainbow_Timer = 50;
#endregion
#region Balloon
public int[] Game_Balloon_Combo_X = new int[] { 253, 253 };
public int[] Game_Balloon_Combo_Y = new int[] { -11, 538 };
public int[] Game_Balloon_Combo_Number_X = new int[] { 257, 257 };
public int[] Game_Balloon_Combo_Number_Y = new int[] { 54, 603 };
public int[] Game_Balloon_Combo_Number_Ex_X = new int[] { 297, 297 };
public int[] Game_Balloon_Combo_Number_Ex_Y = new int[] { 54, 603 };
public int[] Game_Balloon_Combo_Text_X = new int[] { 440, 440 };
public int[] Game_Balloon_Combo_Text_Y = new int[] { 85, 634 };
public int[] Game_Balloon_Combo_Text_Ex_X = new int[] { 440, 440 };
public int[] Game_Balloon_Combo_Text_Ex_Y = new int[] { 85, 594 };
public int[] Game_Balloon_Balloon_X = new int[] { 382, 382 };
public int[] Game_Balloon_Balloon_Y = new int[] { 115, 290 };
public int[] Game_Balloon_Balloon_Frame_X = new int[] { 382, 382 };
public int[] Game_Balloon_Balloon_Frame_Y = new int[] { 80, 260 };
public int[] Game_Balloon_Balloon_Number_X = new int[] { 486, 486 };
public int[] Game_Balloon_Balloon_Number_Y = new int[] { 187, 373 };
public int[] Game_Balloon_Roll_Frame_X = new int[] { 218, 218 };
public int[] Game_Balloon_Roll_Frame_Y = new int[] { -3, 514 };
public int[] Game_Balloon_Roll_Number_X = new int[] { 376, 376 };
public int[] Game_Balloon_Roll_Number_Y = new int[] { 122, 633 };
public int[] Game_Balloon_Number_Size = new int[] { 63, 75 };
public int Game_Balloon_Number_Padding = 55;
public float Game_Balloon_Roll_Number_Scale = 1.000f;
public float Game_Balloon_Balloon_Number_Scale = 0.879f;
#endregion
#region Effects
public int[] Game_Effect_Roll_StartPoint_X = new int[] { 56, -10, 200, 345, 100, 451, 600, 260, -30, 534, 156, 363 };
public int[] Game_Effect_Roll_StartPoint_Y = new int[] { 720 };
public int[] Game_Effect_Roll_StartPoint_1P_X = new int[] { 56, -10, 200, 345, 100, 451, 600, 260, -30, 534, 156, 363 };
public int[] Game_Effect_Roll_StartPoint_1P_Y = new int[] { 240 };
public int[] Game_Effect_Roll_StartPoint_2P_X = new int[] { 56, -10, 200, 345, 100, 451, 600, 260, -30, 534, 156, 363 };
public int[] Game_Effect_Roll_StartPoint_2P_Y = new int[] { 360 };
public float[] Game_Effect_Roll_Speed_X = new float[] { 0.6f };
public float[] Game_Effect_Roll_Speed_Y = new float[] { -0.6f };
public float[] Game_Effect_Roll_Speed_1P_X = new float[] { 0.6f };
public float[] Game_Effect_Roll_Speed_1P_Y = new float[] { -0.6f };
public float[] Game_Effect_Roll_Speed_2P_X = new float[] { 0.6f };
public float[] Game_Effect_Roll_Speed_2P_Y = new float[] { 0.6f };
public int Game_Effect_Roll_Ptn;
public int[] Game_Effect_NotesFlash = new int[] { 180, 180, 16 }; // Width, Height, Ptn
public int Game_Effect_NotesFlash_Timer = 20;
public int[] Game_Effect_GoGoSplash = new int[] { 300, 400, 30 };
public int[] Game_Effect_GoGoSplash_X = new int[] { 120, 300, 520, 760, 980, 1160 };
public int[] Game_Effect_GoGoSplash_Y = new int[] { 740, 730, 720, 720, 730, 740 };
public bool Game_Effect_GoGoSplash_Rotate = true;
public int Game_Effect_GoGoSplash_Timer = 18;
// super-flying-notes AioiLight
public int[] Game_Effect_FlyingNotes_StartPoint_X = new int[] { 414, 414 };
public int[] Game_Effect_FlyingNotes_StartPoint_Y = new int[] { 260, 434 };
public int[] Game_Effect_FlyingNotes_EndPoint_X = new int[] { 1222, 1222 }; // 1P, 2P
public int[] Game_Effect_FlyingNotes_EndPoint_Y = new int[] { 164, 554 };
public int Game_Effect_FlyingNotes_Sine = 220;
public bool Game_Effect_FlyingNotes_IsUsingEasing = true;
public int Game_Effect_FlyingNotes_Timer = 4;
public int[] Game_Effect_FireWorks = new int[] { 180, 180, 30 };
public int Game_Effect_FireWorks_Timer = 5;
public int Game_Effect_Rainbow_Timer = 8;
public bool Game_Effect_HitExplosion_AddBlend = true;
public bool Game_Effect_HitExplosionBig_AddBlend = true;
public bool Game_Effect_FireWorks_AddBlend = true;
public bool Game_Effect_Fire_AddBlend = true;
public bool Game_Effect_GoGoSplash_AddBlend = true;
public int Game_Effect_FireWorks_Timing = 8;
#endregion
#region Runner
public int[] Game_Runner_Size = new int[] { 60, 125 };
public int Game_Runner_Ptn = 48;
public int Game_Runner_Type = 4;
public int[] Game_Runner_StartPoint_X = new int[] { 175, 175 };
public int[] Game_Runner_StartPoint_Y = new int[] { 40, 560 };
public int Game_Runner_Timer = 16;
#endregion
#region PuchiChara
public int[] Game_PuchiChara_X = new int[] { 100, 100 };
public int[] Game_PuchiChara_Y = new int[] { 140, 675 };
public int[] Game_PuchiChara_BalloonX = new int[] { 300, 300 };
public int[] Game_PuchiChara_BalloonY = new int[] { 240, 500 };
public float[] Game_PuchiChara_Scale = new float[] { 0.6f, 0.8f }; // 通常時、 ふうせん連打時
public int[] Game_PuchiChara = new int[] { 256, 256, 2 }; // Width, Height, Ptn
public int Game_PuchiChara_Sine = 20;
public int Game_PuchiChara_Timer = 4800;
public double Game_PuchiChara_SineTimer = 2;
#endregion
#region Dan-C
public Color Game_DanC_Title_ForeColor = ColorTranslator.FromHtml("#FFFFFF");
public Color Game_DanC_Title_BackColor = ColorTranslator.FromHtml("#000000");
public Color Game_DanC_SubTitle_ForeColor = ColorTranslator.FromHtml("#FFFFFF");
public Color Game_DanC_SubTitle_BackColor = ColorTranslator.FromHtml("#000000");
public int[] Game_DanC_Size = new int[] { 1006, 92 };
public int[] Game_DanC_Number_Size = new int[] { 48, 58 };
public int[] Game_DanC_Small_Number_Size = new int[] { 24, 29 };
public int[] Game_DanC_MiniNumber_Size = new int[] { 23, 28 };
public int[] Game_DanC_ExamType_Size = new int[] { 247, 28 };
public int[] Game_DanC_ExamRange_Size = new int[] { 54, 30 };
public int[] Game_DanC_ExamUnit_Size = new int[] { 30, 36 };
public int[] Game_DanC_Offset = new int[] { 259, 27 };
public int[] Game_DanC_Number_Small_Number_Offset = new int[] { 285, 38 };
public int[] Game_DanC_Exam_Offset = new int[] { 222, 27 };
public int[] Game_DanC_X = new int[] { 807, 70, 70, 70 }; // 329, 437
public int[] Game_DanC_Y = new int[] { 116, 292, 292, 292 }; // { 116, 190, 236, 292 };
public int[] Game_DanC_Number_XY = new int[] { 214, 67 };
public int[] Game_DanC_Dan_Plate = new int[] { 149, 416 };
public int Game_DanC_Padding = 9;
public int Game_DanC_Number_Padding = 35;
public int Game_DanC_Number_Small_Padding = 41;
public int Game_DanC_ExamRange_Padding = 49;
public int[] Game_DanC_Percent_Hit_Score_Padding = new int[] { 20, 20, 20 };
public float Game_DanC_Number_Small_Scale = 0.92f;
public float Game_DanC_Exam_Number_Scale = 0.47f;
#endregion
#region Training
public int Game_Training_ScrollTime = 350;
public int[] Game_Training_ProgressBar_XY = { 333, 378 };
public int Game_Training_GoGoPoint_Y = 396;
public int Game_Training_JumpPoint_Y = 375;
public int[] Game_Training_MaxMeasureCount_XY = { 284, 377 };
public int[] Game_Training_CurrentMeasureCount_XY = { 254, 370 };
public int[] Game_Training_SpeedDisplay_XY = { 110, 370 };
public int Game_Training_SmallNumber_Width = 17;
public int Game_Training_BigNumber_Width = 20;
#endregion
#endregion
#region Result
public int Result_MusicName_X = 640;
public int Result_MusicName_Y = 30;
public int Result_MusicName_FontSize = 25;
public ReferencePoint Result_MusicName_ReferencePoint = ReferencePoint.Center;
public int Result_StageText_X = 230;
public int Result_StageText_Y = 6;
public int Result_StageText_FontSize = 30;
public ReferencePoint Result_StageText_ReferencePoint = ReferencePoint.Left;
public Color Result_MusicName_ForeColor = ColorTranslator.FromHtml("#FFFFFF");
public Color Result_StageText_ForeColor = ColorTranslator.FromHtml("#FFFFFF");
//public Color Result_StageText_ForeColor_Red = ColorTranslator.FromHtml("#FFFFFF");
public Color Result_MusicName_BackColor = ColorTranslator.FromHtml("#000000");
public Color Result_StageText_BackColor = ColorTranslator.FromHtml("#000000");
//public Color Result_StageText_BackColor_Red = ColorTranslator.FromHtml("#FF0000");
public int[] Result_NamePlate_X = new int[] { 6, 260 };
public int[] Result_NamePlate_Y = new int[] { 611, 611 };
public int[] Result_Dan = new int[] { 500, 500 };
public int[] Result_Dan_XY = new int[] { 0, 420 };
public int[] Result_Dan_Plate_XY = new int[] { 149, 149 };
#endregion
#region Font
public int Font_Edge_Ratio = 30;
public int Font_Edge_Ratio_Vertical = 30;
public int Text_Correction_X = 0;
public int Text_Correction_Y = 0;
#endregion
#endregion
}
}