コード例 #1
0
ファイル: SBObject.cs プロジェクト: zeta1999/Wolven-kit
        public SBMusicPlaylistObject(FileRead fr = null, long curPos = 0, uint length = 0)
        {
            if (fr != null)
            {
                _sound_structure = new SoundStructure(fr);
                _segments        = fr.read_uint32();
                for (int i = 0; i < _segments; i++)
                {
                    _segment_ids.Add(fr.read_uint32());
                }
                _unk_double_1  = fr.read_double();
                _unk_field64_1 = fr.read_uint64();
                _tempo         = fr.read_float();
                _time_sig1     = fr.read_one_byte();
                _time_sig2     = fr.read_one_byte();
                _unk_field8_1  = fr.read_one_byte();
                _unk_field32_1 = fr.read_uint32();

                _transition_count = fr.read_uint32();
                for (int i = 0; i < _transition_count; i++)
                {
                    _transitions.Add(new MusicPlaylistObject_Transition(fr));
                }

                _playlist_elements_count = fr.read_uint32();

                uint element_count = (length - (uint)(fr.getPosition() - curPos)) / MusicPlaylistObject_PlaylistElement.SIZE;
                for (int i = 0; i < element_count; i++)
                {
                    _playlist_elements.Add(new MusicPlaylistObject_PlaylistElement(fr));
                }
            }
        }
コード例 #2
0
 public ManagerObject_GameParameter(FileRead fr = null)
 {
     if (fr != null)
     {
         _id            = fr.read_uint32();
         _default_value = fr.read_float();
     }
 }
コード例 #3
0
ファイル: SBObject.cs プロジェクト: zeta1999/Wolven-kit
        public SBEventActionObject(FileRead fr = null)
        {
            _additional_parameters = new List <EventAction_Additional>();
            if (fr != null)
            {
                _scope          = fr.read_one_byte();
                _type           = fr.read_one_byte();
                _game_object_id = fr.read_uint32();
                _unk_field8_1   = fr.read_one_byte();

                _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 EventAction_Additional(fr));
                    }

                    foreach (EventAction_Additional ea in _additional_parameters)
                    {
                        if (ea._type == 0x01)
                        {
                            ea._value_f = fr.read_float();
                            ea._value_u = 0;
                        }
                        else
                        {
                            ea._value_f = 0;
                            ea._value_u = fr.read_uint32();
                        }
                    }
                }

                _unk_field8_2 = fr.read_one_byte();

                if (_type == ACTION_TYPE_SET_STATE)
                {
                    _state_group_id = fr.read_uint32();
                    _state_id       = fr.read_uint32();
                }
                else if (_type == ACTION_TYPE_SET_SWITCH)
                {
                    _switch_group_id = fr.read_uint32();
                    _switch_id       = fr.read_uint32();
                }
                else if (_type == 0x01)
                {
                    _unk_field32_1 = fr.read_uint32();
                    _unk_field16_1 = fr.read_uint16();
                    _unk_field32_2 = fr.read_uint32();
                }
                else if (_type == 0x04)
                {
                    _unk_field32_1 = fr.read_uint32();
                    _unk_field8_3  = fr.read_one_byte();
                }
            }
        }
コード例 #4
0
 public ManagerObject_SwitchGroup_Point(FileRead fr = null)
 {
     if (fr != null)
     {
         _value       = fr.read_float();
         _switch_id   = fr.read_uint32();
         _shape_curve = fr.read_uint32();
     }
 }
コード例 #5
0
        public SoundStructure_RTPC(FileRead fr = null)
        {
            if (fr != null)
            {
                _x_axis_id     = fr.read_uint32();
                _y_axis_type   = fr.read_uint32();
                _unk_field32_1 = fr.read_uint32();
                _unk_field8_1  = fr.read_one_byte();
                _points_count  = fr.read_one_byte();
                _unk_field8_2  = fr.read_one_byte();

                for (int i = 0; i < _points_count; i++)
                {
                    _x_coordinates.Add(fr.read_float());
                    _y_coordinates.Add(fr.read_float());
                    _curve_shape.Add(fr.read_uint32());
                }
            }
        }
コード例 #6
0
ファイル: SBObject.cs プロジェクト: zeta1999/Wolven-kit
        public SBMusicSegmentObject(FileRead fr = null, long curPos = 0, uint length = 0)
        {
            if (fr != null)
            {
                _sound_structure = new SoundStructure(fr);
                _children        = fr.read_uint32();
                for (int i = 0; i < _children; i++)
                {
                    _child_ids.Add(fr.read_uint32());
                }
                _unk_double_1     = fr.read_double();
                _unk_field64_1    = fr.read_uint64();
                _tempo            = fr.read_float();
                _time_sig1        = fr.read_one_byte();
                _time_sig2        = fr.read_one_byte();
                _unk_field32_1    = fr.read_uint32();
                _unk_field8_1     = fr.read_one_byte();
                _time_length      = fr.read_double();
                _unk_field32_2    = fr.read_uint32();
                _unk_field32_3    = fr.read_uint32();
                _unk_field64_2    = fr.read_uint64();
                _unk_field32_4    = fr.read_uint32();
                _unk_field32_5    = fr.read_uint32();
                _time_length_next = fr.read_double();
                _unk_field32_6    = fr.read_uint32();

                uint remaining = (length - (uint)(fr.getPosition() - curPos));
                if (remaining > 0)
                {
                    _unk_data = fr._file.ReadBytes((int)remaining);
                }
                else
                {
                    _unk_data = null;
                }
            }
        }
コード例 #7
0
ファイル: SBObject.cs プロジェクト: zeta1999/Wolven-kit
        public SBManager(FileRead fr = null)
        {
            if (fr != null)
            {
                _head = fr.read_header();

                if (_head != SBManager.HEAD)
                {
                    Console.WriteLine("SBManger : Invalid head");
                    _isSet = false;
                    return;
                }

                _length = fr.read_uint32();
                _volume = fr.read_float();
                _max_voice_instances = fr.read_uint16();

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

                _switch_groups_count = fr.read_uint32();
                for (int i = 0; i < _switch_groups_count; i++)
                {
                    _switch_groups.Add(new ManagerObject_SwitchGroup(fr));
                }

                _game_parameters_count = fr.read_uint32();
                for (int i = 0; i < _game_parameters_count; i++)
                {
                    _game_parameters.Add(new ManagerObject_GameParameter(fr));
                }
            }
        }
コード例 #8
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 = "";
                }
            }
        }