diff --git a/src/c/main.c b/src/c/main.c index 7d19a24..e93f28b 100644 --- a/src/c/main.c +++ b/src/c/main.c @@ -520,7 +520,7 @@ static void door_layer_green_update_proc(Layer *layer, GContext *ctx) { static void door_closed_animation_stopped_handler(Animation *a, bool finished, void *ctx) { if (!finished) - return; + return; // prevents running if animation is cancelled due to unload if (s_door_correct) s_current_triangle_num++; else if (s_current_triangle_num > 1) @@ -535,12 +535,6 @@ static void door_animation_stopped_handler(Animation *a, bool finished, void *ct } static void play_door_animation(bool correct) { - // prevent from playing if an instance is already running and not yet finished; - // prevents instances where the user is punished if the timer expires AFTER the submission - if (s_door_anim) { - return; - } - // reset shake cooldown here so it is guaranteed // to be in effect while an animation is playing s_shake_cooldown = SHAKE_COOLDOWN_SECS; @@ -610,7 +604,7 @@ static void alarm_tick_handler(struct tm *tick_time, TimeUnits units_changed) { } snprintf(s_countdown_buf, sizeof(s_countdown_buf), "%03u", s_countdown_int); text_layer_set_text(s_countdown_txt_layer, s_countdown_buf); - if (s_countdown_int == 0) { + if (s_countdown_int == 0 && !s_door_anim) { // punish user and demote if countdown expires s_continuous_zap_on_first_triangle = true; // begin zapping once the first countdown expires send_zap(); s_secs_since_last_input = 10;