use crate::core::compatibility::{PanResetPolicy, PlaybackQuirks};
pub fn ft2() -> PlaybackQuirks {
PlaybackQuirks {
ft2_pitch_slide_overflow: true,
ft2_arpeggio_lut: true,
ft2_arpeggio_note_clamp: true,
keyoff_cuts_without_vol_env: true,
k00_eats_note: true,
volcol_b_advances_vibrato: true,
e60_leaks_to_next_pattern: true,
pan_reset_policy: PanResetPolicy::Always,
speed_zero_ends_song: true,
..PlaybackQuirks::default()
}
}
pub fn it214() -> PlaybackQuirks {
PlaybackQuirks {
tremor_state_persists: true,
pan_reset_policy: PanResetPolicy::OnInstrumentChange,
it_vibrato_ticks_at_row_zero: true,
sample_volume_is_static_gain: true,
pattern_loop_resumes: true,
active_loop_suppresses_break: true,
..PlaybackQuirks::default()
}
}
pub fn it215() -> PlaybackQuirks {
it214()
}
pub fn st3() -> PlaybackQuirks {
PlaybackQuirks {
allow_zero_period: true,
pattern_loop_resumes: true,
tremor_state_persists: true,
pan_reset_policy: PanResetPolicy::Never,
..PlaybackQuirks::default()
}
}
pub fn pt() -> PlaybackQuirks {
PlaybackQuirks {
speed_zero_ends_song: true,
pattern_loop_break_resets_row: true,
pan_reset_policy: PanResetPolicy::Never,
..PlaybackQuirks::default()
}
}