diff options
Diffstat (limited to 'src/drawing.c')
-rw-r--r-- | src/drawing.c | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/src/drawing.c b/src/drawing.c index cfe0321..fa20467 100644 --- a/src/drawing.c +++ b/src/drawing.c | |||
@@ -980,8 +980,15 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
980 | size_t y = PARAMS_START_Y; | 980 | size_t y = PARAMS_START_Y; |
981 | 981 | ||
982 | // Wave Patterns. | 982 | // Wave Patterns. |
983 | u8 col_wave_a = cols[0] != COL_OFF && cols[1] != COL_OFF && (params->wave_mode == 0 || params->wave_mode == 2) ? COL_ACC_1 : COL_OFF; | 983 | u8 col_wave_a = COL_OFF; |
984 | u8 col_wave_b = cols[2] != COL_OFF && cols[3] != COL_OFF && (params->wave_mode == 1 || params->wave_mode == 2) ? COL_ACC_2 : COL_OFF; | 984 | u8 col_wave_b = COL_OFF; |
985 | if (params->wave_mode == 2) { | ||
986 | col_wave_a = cols[0] != COL_OFF && cols[1] != COL_OFF ? COL_ACC_1 : COL_OFF; | ||
987 | col_wave_b = cols[2] != COL_OFF && cols[3] != COL_OFF ? COL_ACC_2 : COL_OFF; | ||
988 | } else { | ||
989 | col_wave_a = cols[0] != COL_OFF && cols[1] != COL_OFF && (params->wave_mode == 0) ? COL_ACC_1 : COL_OFF; | ||
990 | col_wave_b = cols[2] != COL_OFF && cols[3] != COL_OFF && (params->wave_mode == 1) ? COL_ACC_1 : COL_OFF; | ||
991 | } | ||
985 | draw_wave_pattern(waves[params->shape_a][params->type_a], x, y, col_wave_a); | 992 | draw_wave_pattern(waves[params->shape_a][params->type_a], x, y, col_wave_a); |
986 | draw_wave_pattern(waves[params->shape_b][params->type_b], x + PARAMS_BOX_OFFSET_X * 2, y, col_wave_b); | 993 | draw_wave_pattern(waves[params->shape_b][params->type_b], x + PARAMS_BOX_OFFSET_X * 2, y, col_wave_b); |
987 | } | 994 | } |
@@ -1031,35 +1038,31 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
1031 | } | 1038 | } |
1032 | } | 1039 | } |
1033 | 1040 | ||
1034 | // Attack. | 1041 | // Envelope. |
1035 | { | 1042 | { |
1036 | if (params->wave_mode == 2) { | 1043 | if (params->wave_mode == 2) { |
1037 | cols[7] = COL_OFF; | 1044 | cols[7] = COL_OFF; |
1038 | } | ||
1039 | size_t x = PARAMS_START_X + PARAMS_BOX_OFFSET_X * 2 + 3; | ||
1040 | size_t y = PARAMS_START_Y + PARAMS_BOX_OFFSET_Y + 5; | ||
1041 | if (params->wave_attack == 0) { | ||
1042 | txt_drawf("OFF", x + 3, y, cols[7]); | ||
1043 | } else if (params->wave_attack < 10) { | ||
1044 | txt_drawf("%d", x + 8, y, cols[7], params->wave_attack); | ||
1045 | } else { | ||
1046 | txt_drawf("%d", x + 6, y, cols[7], params->wave_attack); | ||
1047 | } | ||
1048 | } | ||
1049 | |||
1050 | // Decay. | ||
1051 | { | ||
1052 | if (params->wave_mode == 2) { | ||
1053 | cols[8] = COL_OFF; | 1045 | cols[8] = COL_OFF; |
1054 | } | 1046 | } |
1055 | size_t x = PARAMS_START_X + PARAMS_BOX_OFFSET_X * 3 + 3; | 1047 | size_t x = PARAMS_START_X + PARAMS_BOX_OFFSET_X * 2; |
1056 | size_t y = PARAMS_START_Y + PARAMS_BOX_OFFSET_Y + 5; | 1048 | size_t y = PARAMS_START_Y + 1 + PARAMS_BOX_OFFSET_Y; |
1049 | size_t x0 = x; | ||
1050 | size_t y0 = y + 15; | ||
1051 | size_t x1 = x + params->wave_attack * 2; | ||
1052 | size_t y1 = y; | ||
1053 | size_t x2 = x + params->wave_attack * 2 + params->wave_decay * 2; | ||
1054 | size_t y2 = y + 15; | ||
1055 | u8 col_env = cols[7] != COL_OFF && cols[8] != COL_OFF ? COL_ACC_2 : COL_OFF; | ||
1056 | if (params->wave_attack != 0) { | ||
1057 | draw_line(x0, y0, x1, y1, col_env); | ||
1058 | } | ||
1057 | if (params->wave_decay == 0) { | 1059 | if (params->wave_decay == 0) { |
1058 | txt_drawf("OFF", x + 3, y, cols[8]); | 1060 | x2 = x + PARAMS_BOX_OFFSET_X * 2 - 4; |
1059 | } else if (params->wave_decay < 10) { | 1061 | y2 = y; |
1060 | txt_drawf("%d", x + 8, y, cols[8], params->wave_decay); | 1062 | draw_line(x1, y1, x2, y2, col_env); |
1061 | } else { | 1063 | } else { |
1062 | txt_drawf("%d", x + 6, y, cols[8], params->wave_decay); | 1064 | draw_line(x1, y1, x2, y2, col_env); |
1065 | draw_line(x2, y2, x + PARAMS_BOX_OFFSET_X * 2 - 4, y2, col_env); | ||
1063 | } | 1066 | } |
1064 | } | 1067 | } |
1065 | 1068 | ||