コード例 #1
0
ファイル: SBObject.cs プロジェクト: zeta1999/Wolven-kit
 public MusicPlaylistObject_Transition(FileRead fr = null)
 {
     if (fr != null)
     {
         _source_id                  = fr.read_uint32();
         _dest_id                    = fr.read_uint32();
         _source_fadeout             = fr.read_int32();
         _source_shape_curve_fadeout = fr.read_uint32();
         _source_fadeout_offset      = fr.read_int32();
         _unk_field32_1              = fr.read_uint32();
         _unk_field32_2              = fr.read_uint32();
         _unk_field32_3              = fr.read_uint32();
         _src_type                   = fr.read_one_byte();
         _dest_fadein                = fr.read_int32();
         _dest_shape_curve_fadein    = fr.read_uint32();
         _dest_fadein_offset         = fr.read_int32();
         _unk_field32_4              = fr.read_uint32();
         _unk_field32_5              = fr.read_uint32();
         _unk_field16_1              = fr.read_uint16();
         _dest_type                  = fr.read_one_byte();
         _unk_field8_1               = fr.read_one_byte();
         _has_segment                = fr.read_bool();
         _trans_segment_id           = fr.read_uint32();
         _trans_fadein               = fr.read_int32();
         _trans_shape_curve_fadein   = fr.read_uint32();
         _trans_fadein_offset        = fr.read_int32();
         _trans_fadeout              = fr.read_int32();
         _trans_shape_curve_fadeout  = fr.read_uint32();
         _trans_fadeout_offset       = fr.read_int32();
         _trans_fadein_type          = fr.read_one_byte();
         _trans_fadeout_type         = fr.read_one_byte();
     }
 }
コード例 #2
0
        public SoundStructure(FileRead fr = null)
        {
            if (fr != null)
            {
                long pos = fr.getPosition();
                _effects_override = fr.read_bool();

                _effects_count = fr.read_one_byte();
                if (_effects_count > 0)
                {
                    _effects_bitmask = fr.read_one_byte();
                    for (int i = 0; i < _effects_count; i++)
                    {
                        _effects.Add(new SoundStructure_Effect(fr));
                    }
                }

                _output_bus_id = fr.read_uint32();
                _parent_id     = fr.read_uint32();
                _override_playback_priority = fr.read_bool();
                _offset_priority            = fr.read_bool();

                _additional_parameters_count = fr.read_one_byte();
                if (_additional_parameters_count > 0)
                {
                    for (int i = 0; i < _additional_parameters_count; i++)
                    {
                        _additional_parameters.Add(new SoundStructure_Additional(fr));
                    }
                    foreach (SoundStructure_Additional sa in _additional_parameters)
                    {
                        if (sa._type == 0x07)
                        {
                            sa._value_u = fr.read_uint32();
                        }
                        else
                        {
                            sa._value_f = fr.read_float();
                        }
                    }
                }

                _unk_field8_1 = fr.read_one_byte();

                _has_positioning = fr.read_bool();
                if (_has_positioning)
                {
                    _positioning_type = fr.read_one_byte();
                    if (_positioning_type == 0x2D)
                    {
                        _enable_panner = fr.read_bool();
                    }
                    else if (_positioning_type == 0x3D)
                    {
                        _position_source       = fr.read_uint32();
                        _attenuation_id        = fr.read_uint32();
                        _enable_spatialization = fr.read_bool();

                        if (_position_source == 0x02)
                        {
                            _play_type                   = fr.read_uint32();
                            _do_loop                     = fr.read_bool();
                            _transition_time             = fr.read_uint32();
                            _follow_listener_orientation = fr.read_bool();
                        }
                        else if (_position_source == 0x03)
                        {
                            _update_at_each_frame = fr.read_bool();
                        }
                    }
                    else if (_positioning_type == 0x01)
                    {
                        _unk_field16_1 = fr.read_uint16();
                    }
                    else
                    {
                        _unk_field32_1 = fr.read_uint32();
                        _unk_field32_2 = fr.read_uint32();
                    }
                }

                _override_game_auxiliary_sends = fr.read_bool();
                _use_game_auxiliary_sends      = fr.read_bool();
                _override_user_auxiliary_sends = fr.read_bool();
                _user_auxiliary_sends_exists   = fr.read_bool();

                if (_user_auxiliary_sends_exists)
                {
                    _auxiliary_bus_id0 = fr.read_uint32();
                    _auxiliary_bus_id1 = fr.read_uint32();
                    _auxiliary_bus_id2 = fr.read_uint32();
                    _auxiliary_bus_id3 = fr.read_uint32();
                }

                _unk_field8_2 = fr.read_bool();
                if (_unk_field8_2)
                {
                    _priority_equal        = fr.read_one_byte();
                    _limit_reached         = fr.read_one_byte();
                    _limit_sound_instances = fr.read_uint16();
                }

                _how_to_limit_sound_instances = fr.read_one_byte();
                _virtual_voice_behavior       = fr.read_one_byte();
                _override_playback_limit      = fr.read_bool();
                _override_virtual_voice       = fr.read_bool();

                _state_groups_count = fr.read_uint32();
                if (_state_groups_count > 0)
                {
                    for (int i = 0; i < _state_groups_count; i++)
                    {
                        _state_groups.Add(new SoundStructure_StateGroup(fr));
                    }
                }

                _rtpc_count = fr.read_uint16();
                if (_rtpc_count > 0)
                {
                    for (int i = 0; i < _rtpc_count; i++)
                    {
                        _rtpcs.Add(new SoundStructure_RTPC(fr));
                    }
                }

                _unk_field32_3 = fr.read_uint32();
                if (_unk_field32_3 > 0)
                {
                    _unk_data = fr.read_uchar(0x3F);
                }
                else
                {
                    _unk_data = "";
                }
            }
        }