HyoutaTools.DanganRonpa.Lin.ScriptEntry.FormatForGraceNote C# (CSharp) Method

FormatForGraceNote() public method

public FormatForGraceNote ( ) : string
return string
        public string FormatForGraceNote()
        {
            if ( Type == 0x02 ) {
                if ( Text == null ) { throw new Exception( "TextType ScriptEntry is missing Text!" ); }
                return Text;
            } else {
                StringBuilder sb = new StringBuilder();
                sb.Append( '<' );

                switch ( Type ) {
                    //case 0x00: entry.Arguments = new byte[2]; break;
                    //case 0x01: entry.Arguments = new byte[3]; break;
                    //case 0x03: entry.Arguments = new byte[1]; break;
                    //case 0x04: entry.Arguments = new byte[4]; break;
                    case 0x05:
                        sb.Append( "FMV:" );
                        foreach ( byte a in Arguments ) { sb.Append( " " ).Append( a.ToString() ); }
                        break;
                    //case 0x06: entry.Arguments = new byte[8]; break;
                    case 0x08:
                        sb.Append( "Voice: " );
                        sb.Append( '[' ).Append( DanganUtil.CharacterIdToName( Arguments[0] ) ).Append( ']' );
                        for ( int i = 1; i < Arguments.Length; ++i ) { sb.Append( " " ).Append( Arguments[i].ToString() ); }
                        break;
                    case 0x09:
                        sb.Append( "Music:" );
                        foreach ( byte a in Arguments ) { sb.Append( " " ).Append( a.ToString() ); }
                        break;
                    case 0x0A:
                        sb.Append( "Sound:" );
                        foreach ( byte a in Arguments ) { sb.Append( " " ).Append( a.ToString() ); }
                        break;
                    //case 0x0B: entry.Arguments = new byte[2]; break;
                    //case 0x0C: entry.Arguments = new byte[2]; break;
                    //case 0x0D: entry.Arguments = new byte[3]; break;
                    //case 0x0E: entry.Arguments = new byte[2]; break;
                    //case 0x0F: entry.Arguments = new byte[3]; break;
                    //case 0x10: entry.Arguments = new byte[3]; break;
                    //case 0x11: entry.Arguments = new byte[4]; break;
                    //case 0x14: entry.Arguments = new byte[3]; break;
                    //case 0x15: entry.Arguments = new byte[3]; break;
                    case 0x19:
                        sb.Append( "LoadScript:" );
                        foreach ( byte a in Arguments ) { sb.Append( " " ).Append( a.ToString() ); }
                        break;
                    //case 0x1A: entry.Arguments = new byte[0]; break;
                    //case 0x1B: entry.Arguments = new byte[3]; break;
                    //case 0x1C: entry.Arguments = new byte[0]; break;
                    case 0x1E:
                        sb.Append( "Sprite: " );
                        sb.Append( "0x" ).Append( Arguments[0].ToString( "X2" ) ).Append( ' ' );
                        sb.Append( '[' ).Append( DanganUtil.CharacterIdToName( Arguments[1] ) ).Append( ']' );
                        for ( int i = 2; i < Arguments.Length; ++i ) { sb.Append( " " ).Append( Arguments[i].ToString() ); }
                        break;
                    //case 0x1F: entry.Arguments = new byte[7]; break;
                    //case 0x20: entry.Arguments = new byte[5]; break;
                    case 0x21:
                        sb.Append( "Speaker: " );
                        sb.Append( '[' ).Append( DanganUtil.CharacterIdToName( Arguments[0] ) ).Append( ']' );
                        for ( int i = 1; i < Arguments.Length; ++i ) { sb.Append( " " ).Append( Arguments[i].ToString() ); }
                        break;
                    //case 0x22: entry.Arguments = new byte[3]; break;
                    //case 0x23: entry.Arguments = new byte[5]; break;
                    //case 0x25: entry.Arguments = new byte[2]; break;
                    //case 0x26: entry.Arguments = new byte[3]; break;
                    //case 0x27: entry.Arguments = new byte[1]; break;
                    //case 0x29: entry.Arguments = new byte[1]; break;
                    //case 0x2A: entry.Arguments = new byte[2]; break;
                    //case 0x2B: entry.Arguments = new byte[1]; break;
                    //case 0x2E: entry.Arguments = new byte[2]; break;
                    //case 0x30: entry.Arguments = new byte[3]; break;
                    //case 0x33: entry.Arguments = new byte[4]; break;
                    //case 0x34: entry.Arguments = new byte[2]; break;
                    //case 0x38: entry.Arguments = new byte[5]; break;
                    //case 0x39: entry.Arguments = new byte[5]; break;
                    case 0x3A:
                        if ( DanganUtil.GameVersion == 1 ) {
                            sb.Append( "WaitPlayerInput" );
                            if ( Arguments.Length != 0 ) { throw new Exception( "0x3A has arguments!" ); }
                        } else if ( DanganUtil.GameVersion >= 2 ) {
                            sb.Append( "0x3A:" );
                            foreach ( byte a in Arguments ) { sb.Append( " " ).Append( "0x" ).Append( a.ToString( "X2" ) ); }
                        }
                        break;
                    case 0x3B:
                        if ( DanganUtil.GameVersion == 1 ) {
                            sb.Append( "WaitFrame" );
                            if ( Arguments.Length != 0 ) { throw new Exception( "0x3B has arguments!" ); }
                        } else if ( DanganUtil.GameVersion >= 2 ) {
                            sb.Append( "0x3B:" );
                            foreach ( byte a in Arguments ) { sb.Append( " " ).Append( "0x" ).Append( a.ToString( "X2" ) ); }
                        }
                        break;
                    //case 0x3C: entry.Arguments = new byte[0]; break;
                    // SDR2: 0x4C -> WaitFrame; 0x4B -> WaitPlayerInput
                    case 0x4B:
                        sb.Append( "SDR2-WaitPlayerInput" );
                        if ( Arguments.Length != 0 ) { throw new Exception( "0x4B has arguments!" ); }
                        break;
                    case 0x4C:
                        sb.Append( "SDR2-WaitFrame" );
                        if ( Arguments.Length != 0 ) { throw new Exception( "0x4C has arguments!" ); }
                        break;
                    default:
                        sb.Append( "0x" ).Append( Type.ToString( "X2" ) ).Append( ":" );
                        foreach ( byte a in Arguments ) { sb.Append( " " ).Append( "0x" ).Append( a.ToString( "X2" ) ); }
                        break;
                }

                sb.Append( '>' );
                return sb.ToString();
            }
        }