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)); } } }
public ManagerObject_GameParameter(FileRead fr = null) { if (fr != null) { _id = fr.read_uint32(); _default_value = fr.read_float(); } }
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(); } } }
public ManagerObject_SwitchGroup_Point(FileRead fr = null) { if (fr != null) { _value = fr.read_float(); _switch_id = fr.read_uint32(); _shape_curve = fr.read_uint32(); } }
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()); } } }
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; } } }
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)); } } }
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 = ""; } } }