11#include "libsnd2_internal.h"
13void _SsContDataEntry(s16 sep_no, s16 seq_no, u8 control_value)
20 score_struct = &_ss_score[sep_no][seq_no];
21 m_channel_idx = score_struct->m_channel_idx;
22 SsUtGetProgAtr((
char)score_struct->m_vab_id, (u8)score_struct->m_programs[m_channel_idx], &prog_attr);
23 if ( score_struct->m_unk1C == 1 )
25 if ( !score_struct->m_unk15 )
27 score_struct->m_unk1D = control_value;
28 score_struct->m_unk1C = 0;
29 score_struct->m_unk15 = 1;
30 score_struct->m_delta_value = _SsReadDeltaValue(sep_no, seq_no);
34 if ( score_struct->m_unk1E == 2 )
38 for ( tone_idx_cur = 0; tone_idx_cur < prog_attr.tones; tone_idx_cur += 1 )
41 (
char)score_struct->m_vab_id, (u8)score_struct->m_programs[m_channel_idx], tone_idx_cur, &old_vag_attr);
42 if ( (u8)score_struct->m_unk18 == 0 )
44 old_vag_attr.pbmax = control_value & 0x7F;
45 old_vag_attr.pbmin = control_value & 0x7F;
48 (
char)score_struct->m_vab_id, (u8)score_struct->m_programs[m_channel_idx], tone_idx_cur, &old_vag_attr);
50 if ( score_struct->m_unk19 )
52 score_struct->m_delta_value = _SsReadDeltaValue(sep_no, seq_no);
53 score_struct->m_unk1E = 0;
57 if ( score_struct->m_unk1F != 2 )
59 score_struct->m_delta_value = _SsReadDeltaValue(sep_no, seq_no);
62 if ( score_struct->m_unk1B == 16 )
63 SsFCALL.ccentry[(u8)score_struct->m_fn_idx](
64 (
char)score_struct->m_vab_id,
65 (u8)score_struct->m_programs[m_channel_idx],
68 score_struct->m_fn_idx,
71 SsFCALL.ccentry[(u8)score_struct->m_fn_idx](
72 (
char)score_struct->m_vab_id,
73 (u8)score_struct->m_programs[m_channel_idx],
74 score_struct->m_unk1B,
76 score_struct->m_fn_idx,
78 score_struct->m_delta_value = _SsReadDeltaValue(sep_no, seq_no);
79 score_struct->m_unk1F = 0;