1
0
mirror of synced 2024-12-01 02:27:21 +01:00
OpenTaiko/TJAPlayer3/Common/C定数.cs

795 lines
17 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace TJAPlayer3
{
/// <summary>
/// 難易度。
/// </summary>
public enum Difficulty
{
Easy,
Normal,
Hard,
Oni,
Edit,
Tower,
Dan,
Total
}
public enum EScrollMode
{
Normal,
BMSCROLL,
HBSCROLL
}
public enum Eジャンル
{
None = 0,
JPOP = 1,
= 2,
= 3,
= 4,
= 5,
= 6,
= 7,
= 8
}
public enum EGame
{
OFF = 0,
= 1,
= 2
}
public enum E難易度表示タイプ
{
OFF = 0,
n曲目に表示 = 1,
mtaikoに画像で表示 = 2,
}
public enum Eダークモード
{
OFF,
HALF,
FULL
}
public enum EWindowMovieMode
{
OFF = 0,
= 1,
= 2
}
public enum Eダメージレベル
{
= 0,
= 1,
= 2
}
public enum Eパッド // 演奏用のenum。ここを修正するときは、次に出てくる EKeyConfigPad と EパッドFlag もセットで修正すること。
{
HH = 0,
R = 0,
SD = 1,
G = 1,
BD = 2,
B = 2,
HT = 3,
Pick = 3,
LT = 4,
Wail = 4,
FT = 5,
Cancel = 5,
CY = 6,
Decide = 6,
HHO = 7,
RD = 8,
LC = 9,
LP = 10, // #27029 2012.1.4 from
LBD = 11,
LRed = 12,
RRed = 13,
LBlue = 14,
RBlue = 15,
LRed2P = 16,
RRed2P = 17,
LBlue2P = 18,
RBlue2P = 19,
CLAP = 20,
CLAP2P = 21,
MAX, // 門番用として定義
UNKNOWN = 99
}
public enum EKeyConfigPad // #24609 キーコンフィグで使うenum。capture要素あり。
{
HH = Eパッド.HH,
R = Eパッド.R,
SD = Eパッド.SD,
G = Eパッド.G,
BD = Eパッド.BD,
B = Eパッド.B,
HT = Eパッド.HT,
Pick = Eパッド.Pick,
LT = Eパッド.LT,
Wail = Eパッド.Wail,
FT = Eパッド.FT,
Cancel = Eパッド.Cancel,
CY = Eパッド.CY,
Decide = Eパッド.Decide,
HHO = Eパッド.HHO,
RD = Eパッド.RD,
LC = Eパッド.LC,
LP = Eパッド.LP, // #27029 2012.1.4 from
LBD = Eパッド.LBD,
LRed = Eパッド.LRed,
RRed = Eパッド.RRed,
LBlue = Eパッド.LBlue,
RBlue = Eパッド.RBlue,
LRed2P = Eパッド.LRed2P,
RRed2P = Eパッド.RRed2P,
LBlue2P = Eパッド.LBlue2P,
RBlue2P = Eパッド.RBlue2P,
Clap = Eパッド.CLAP,
Clap2P = Eパッド.CLAP2P,
Capture,
UNKNOWN = Eパッド.UNKNOWN
}
[Flags]
public enum EパッドFlag // #24063 2011.1.16 yyagi コマンド入力用 パッド入力のフラグ化
{
None = 0,
HH = 1,
R = 1,
SD = 2,
G = 2,
B = 4,
BD = 4,
HT = 8,
Pick = 8,
LT = 16,
Wail = 16,
FT = 32,
Cancel = 32,
CY = 64,
Decide = 128,
HHO = 128,
RD = 256,
LC = 512,
LP = 1024, // #27029
LBD = 2048,
LRed = 0,
RRed = 1,
LBlue = 2,
RBlue = 4,
LRed2P = 8,
RRed2P = 16,
LBlue2P = 32,
RBlue2P = 64,
UNKNOWN = 4096
}
public enum Eランダムモード
{
OFF,
RANDOM,
MIRROR,
SUPERRANDOM,
HYPERRANDOM
}
public enum EFunMods
{
NONE,
AVALANCHE,
MINESWEEPER,
}
public enum EGameType
{
TAIKO = 0,
KONGA = 1,
}
public enum E楽器パート // ここを修正するときは、セットで次の EKeyConfigPart も修正すること。
{
DRUMS = 0,
GUITAR = 1,
BASS = 2,
TAIKO = 3,
UNKNOWN = 99
}
public enum EKeyConfigPart // : E楽器パート
{
DRUMS = E楽器パート.DRUMS,
GUITAR = E楽器パート.GUITAR,
BASS = E楽器パート.BASS,
TAIKO = E楽器パート.TAIKO,
SYSTEM,
UNKNOWN = E楽器パート.UNKNOWN
}
public enum E打ち分け時の再生の優先順位
{
ChipがPadより優先,
PadがChipより優先
}
internal enum E入力デバイス
{
= 0,
MIDI入力 = 1,
= 2,
= 3,
= -1
}
public enum E判定
{
Perfect = 0,
Great = 1,
Good = 2,
Poor = 3,
Miss = 4,
Bad = 5,
Auto = 6,
ADLIB = 7,
Mine = 8,
}
internal enum E判定文字表示位置
{
OFF,
,
,
}
internal enum E判定位置
{
= 0,
Lower,
MAX
}
internal enum E判定表示優先度
{
Chipより下,
Chipより上
}
internal enum EAVI種別
{
Unknown,
AVI,
AVIPAN
}
internal enum EBGA種別
{
Unknown,
BMP,
BMPTEX,
BGA,
BGAPAN
}
internal enum EFIFOモード
{
,
}
internal enum Eレーン
{
LC = 0,
HH,
SD,
BD,
HT,
LT,
FT,
CY,
LP,
RD, // 将来の独立レーン化/独立AUTO設定を見越して追加
LBD = 10,
Guitar, // AUTOレーン判定を容易にするため、便宜上定義しておく(未使用)
Bass, // (未使用)
GtR,
GtG,
GtB,
GtPick,
GtW,
BsR,
BsG,
BsB,
BsPick,
BsW,
MAX, // 要素数取得のための定義 ("BGM"は使わない前提で)
BGM
}
internal enum Eレーン数
{
= 8, // LC, HH, SD, BD, HT, LT, FT, CY
= 10, // LC, HO, HC, SD, BD, HT, LT, FT, RC, RD
DTXG物理 = 10, // LC, HH, LP, SD, BD, HT, LT, FT, CY, RD
DTXG論理 = 12 // LC, HO, HC, LP, LB, SD, BD, HT, LT, FT, CY, RD
}
internal enum Eログ出力
{
OFF,
ON通常,
ON詳細あり
}
internal enum E演奏画面の戻り値
{
,
,
,
,
_再演奏,
}
internal enum E曲読込画面の戻り値
{
= 0,
,
}
public enum ENoteState
{
none,
wait,
perfect,
grade,
bad
}
public enum E連打State
{
none,
roll,
rollB,
balloon,
potato
}
public enum Eステルスモード
{
OFF = 0,
DORON = 1,
STEALTH = 2
}
/// <summary>
/// 透明チップの種類
/// </summary>
public enum EInvisible
{
OFF, // チップを透明化しない
SEMI, // Poor/Miss時だけ、一時的に透明解除する
FULL // チップを常に透明化する
}
/// <summary>
/// Drum/Guitar/Bass の値を扱う汎用の構造体。
/// </summary>
/// <typeparam name="T">値の型。</typeparam>
[Serializable]
[StructLayout( LayoutKind.Sequential )]
public struct STDGBVALUE<T> // indexはE楽器パートと一致させること
{
public T Drums;
public T Guitar;
public T Bass;
public T Taiko;
public T Unknown;
public T this[ int index ]
{
get
{
switch( index )
{
case (int) E楽器パート.DRUMS:
return this.Drums;
case (int) E楽器パート.GUITAR:
return this.Guitar;
case (int) E楽器パート.BASS:
return this.Bass;
case (int) E楽器パート.TAIKO:
return this.Taiko;
case (int) E楽器パート.UNKNOWN:
return this.Unknown;
}
throw new IndexOutOfRangeException();
}
set
{
switch( index )
{
case (int) E楽器パート.DRUMS:
this.Drums = value;
return;
case (int) E楽器パート.GUITAR:
this.Guitar = value;
return;
case (int) E楽器パート.BASS:
this.Bass = value;
return;
case (int) E楽器パート.TAIKO:
this.Taiko = value;
return;
case (int) E楽器パート.UNKNOWN:
this.Unknown = value;
return;
}
throw new IndexOutOfRangeException();
}
}
}
/// <summary>
/// レーンの値を扱う汎用の構造体。列挙型"Eドラムレーン"に準拠。
/// </summary>
/// <typeparam name="T">値の型。</typeparam>
[StructLayout( LayoutKind.Sequential )]
public struct STLANEVALUE<T>
{
public T LC;
public T HH;
public T SD;
public T LP;
public T LBD;
public T BD;
public T HT;
public T LT;
public T FT;
public T CY;
public T RD;
public T Guitar;
public T Bass;
public T GtR;
public T GtG;
public T GtB;
public T GtPick;
public T GtW;
public T BsR;
public T BsG;
public T BsB;
public T BsPick;
public T BsW;
public T BGM;
public T this[ int index ]
{
get
{
switch ( index )
{
case (int) Eレーン.LC:
return this.LC;
case (int) Eレーン.HH:
return this.HH;
case (int) Eレーン.SD:
return this.SD;
case (int) Eレーン.LP:
return this.LP;
case (int) Eレーン.LBD:
return this.LBD;
case (int) Eレーン.BD:
return this.BD;
case (int) Eレーン.HT:
return this.HT;
case (int) Eレーン.LT:
return this.LT;
case (int) Eレーン.FT:
return this.FT;
case (int) Eレーン.CY:
return this.CY;
case (int) Eレーン.RD:
return this.RD;
case (int) Eレーン.Guitar:
return this.Guitar;
case (int) Eレーン.Bass:
return this.Bass;
case (int) Eレーン.GtR:
return this.GtR;
case (int) Eレーン.GtG:
return this.GtG;
case (int) Eレーン.GtB:
return this.GtB;
case (int) Eレーン.GtPick:
return this.GtPick;
case (int) Eレーン.GtW:
return this.GtW;
case (int) Eレーン.BsR:
return this.BsR;
case (int) Eレーン.BsG:
return this.BsG;
case (int) Eレーン.BsB:
return this.BsB;
case (int) Eレーン.BsPick:
return this.BsPick;
case (int) Eレーン.BsW:
return this.BsW;
}
throw new IndexOutOfRangeException();
}
set
{
switch ( index )
{
case (int) Eレーン.LC:
this.LC = value;
return;
case (int) Eレーン.HH:
this.HH = value;
return;
case (int) Eレーン.SD:
this.SD = value;
return;
case (int) Eレーン.LP:
this.LP = value;
return;
case (int) Eレーン.LBD:
this.LBD = value;
return;
case (int) Eレーン.BD:
this.BD = value;
return;
case (int) Eレーン.HT:
this.HT = value;
return;
case (int) Eレーン.LT:
this.LT = value;
return;
case (int) Eレーン.FT:
this.FT = value;
return;
case (int) Eレーン.CY:
this.CY = value;
return;
case (int) Eレーン.RD:
this.RD = value;
return;
case (int) Eレーン.Guitar:
this.Guitar = value;
return;
case (int) Eレーン.Bass:
this.Bass = value;
return;
case (int) Eレーン.GtR:
this.GtR = value;
return;
case (int) Eレーン.GtG:
this.GtG = value;
return;
case (int) Eレーン.GtB:
this.GtB = value;
return;
case (int) Eレーン.GtPick:
this.GtPick = value;
return;
case (int) Eレーン.GtW:
this.GtW = value;
return;
case (int) Eレーン.BsR:
this.BsR = value;
return;
case (int) Eレーン.BsG:
this.BsG = value;
return;
case (int) Eレーン.BsB:
this.BsB = value;
return;
case (int) Eレーン.BsPick:
this.BsPick = value;
return;
case (int) Eレーン.BsW:
this.BsW = value;
return;
}
throw new IndexOutOfRangeException();
}
}
}
[StructLayout( LayoutKind.Sequential )]
public struct STAUTOPLAY // Eレーンとindexを一致させること
{
public bool LC; // 0
public bool HH; // 1
public bool SD; // 2
public bool BD; // 3
public bool HT; // 4
public bool LT; // 5
public bool FT; // 6
public bool CY; // 7
public bool LP;
public bool RD; // 8
public bool LBD;
public bool Guitar; // 9 (not used)
public bool Bass; // 10 (not used)
public bool GtR; // 11
public bool GtG; // 12
public bool GtB; // 13
public bool GtPick; // 14
public bool GtW; // 15
public bool BsR; // 16
public bool BsG; // 17
public bool BsB; // 18
public bool BsPick; // 19
public bool BsW; // 20
public bool this[ int index ]
{
get
{
switch ( index )
{
case (int) Eレーン.LC:
return this.LC;
case (int) Eレーン.HH:
return this.HH;
case (int) Eレーン.SD:
return this.SD;
case (int) Eレーン.BD:
return this.BD;
case (int) Eレーン.HT:
return this.HT;
case (int) Eレーン.LT:
return this.LT;
case (int) Eレーン.FT:
return this.FT;
case (int) Eレーン.CY:
return this.CY;
case (int) Eレーン.LP:
return this.LP;
case (int) Eレーン.RD:
return this.RD;
case (int) Eレーン.LBD:
return this.LBD;
case (int) Eレーン.Guitar:
if ( !this.GtR ) return false;
if ( !this.GtG ) return false;
if ( !this.GtB ) return false;
if ( !this.GtPick ) return false;
if ( !this.GtW ) return false;
return true;
case (int) Eレーン.Bass:
if ( !this.BsR ) return false;
if ( !this.BsG ) return false;
if ( !this.BsB) return false;
if ( !this.BsPick ) return false;
if ( !this.BsW ) return false;
return true;
case (int) Eレーン.GtR:
return this.GtR;
case (int) Eレーン.GtG:
return this.GtG;
case (int) Eレーン.GtB:
return this.GtB;
case (int) Eレーン.GtPick:
return this.GtPick;
case (int) Eレーン.GtW:
return this.GtW;
case (int) Eレーン.BsR:
return this.BsR;
case (int) Eレーン.BsG:
return this.BsG;
case (int) Eレーン.BsB:
return this.BsB;
case (int) Eレーン.BsPick:
return this.BsPick;
case (int) Eレーン.BsW:
return this.BsW;
}
throw new IndexOutOfRangeException();
}
set
{
switch ( index )
{
case (int) Eレーン.LC:
this.LC = value;
return;
case (int) Eレーン.HH:
this.HH = value;
return;
case (int) Eレーン.SD:
this.SD = value;
return;
case (int) Eレーン.BD:
this.BD = value;
return;
case (int) Eレーン.HT:
this.HT = value;
return;
case (int) Eレーン.LT:
this.LT = value;
return;
case (int) Eレーン.FT:
this.FT = value;
return;
case (int) Eレーン.CY:
this.CY = value;
return;
case (int) Eレーン.LP:
this.LP = value;
return;
case (int) Eレーン.RD:
this.RD = value;
return;
case (int) Eレーン.LBD:
this.LBD = value;
return;
case (int) Eレーン.Guitar:
this.GtR = this.GtG = this.GtB = this.GtPick = this.GtW = value;
return;
case (int) Eレーン.Bass:
this.BsR = this.BsG = this.BsB = this.BsPick = this.BsW = value;
return;
case (int) Eレーン.GtR:
this.GtR = value;
return;
case (int) Eレーン.GtG:
this.GtG = value;
return;
case (int) Eレーン.GtB:
this.GtB = value;
return;
case (int) Eレーン.GtPick:
this.GtPick = value;
return;
case (int) Eレーン.GtW:
this.GtW = value;
return;
case (int) Eレーン.BsR:
this.BsR = value;
return;
case (int) Eレーン.BsG:
this.BsG = value;
return;
case (int) Eレーン.BsB:
this.BsB = value;
return;
case (int) Eレーン.BsPick:
this.BsPick = value;
return;
case (int) Eレーン.BsW:
this.BsW = value;
return;
}
throw new IndexOutOfRangeException();
}
}
}
#region[Ver.K追加]
public enum Eレーンタイプ
{
TypeA,
TypeB,
TypeC,
TypeD
}
public enum Eミラー
{
TypeA,
TypeB
}
public enum EClipDispType
{
= 1,
= 2,
= 3,
OFF = 0
}
#endregion
internal class C定数
{
}
}