]> git.earman.xyz Git - sensor-watch.git/commitdiff
tarot: avoid mandatory function call on every tick (#185)
authorJeremy O'Brien <neutral@fastmail.com>
Mon, 23 Jan 2023 20:15:57 +0000 (15:15 -0500)
committerGitHub <noreply@github.com>
Mon, 23 Jan 2023 20:15:57 +0000 (14:15 -0600)
movement/watch_faces/complication/tarot_face.c

index fe29f8a7e251739e5ca5e661fbee7689162805dc..39feaf15e85ba1e37a4a88bc716c24bb727450dc 100644 (file)
@@ -179,30 +179,28 @@ static void pick_cards(tarot_state_t *state) {
 }
 
 static void display_animation(tarot_state_t *state) {
-    if (state->is_picking) {
-        if (state->animation_frame == 0) {
-            watch_display_string("   ", 7);
-            watch_set_pixel(1, 4);
-            watch_set_pixel(1, 6);
-            state->animation_frame = 1;
-        } else if (state->animation_frame == 1) {
-            watch_clear_pixel(1, 4);
-            watch_clear_pixel(1, 6);
-            watch_set_pixel(2, 4);
-            watch_set_pixel(0, 6);
-            state->animation_frame = 2;
-        } else if (state->animation_frame == 2) {
-            watch_clear_pixel(2, 4);
-            watch_clear_pixel(0, 6);
-            watch_set_pixel(2, 5);
-            watch_set_pixel(0, 5);
-            state->animation_frame = 3;
-        } else if (state->animation_frame == 3) {
-            state->animation_frame = 0;
-            state->is_picking = false;
-            movement_request_tick_frequency(1);
-            tarot_display(state);
-        }
+    if (state->animation_frame == 0) {
+        watch_display_string("   ", 7);
+        watch_set_pixel(1, 4);
+        watch_set_pixel(1, 6);
+        state->animation_frame = 1;
+    } else if (state->animation_frame == 1) {
+        watch_clear_pixel(1, 4);
+        watch_clear_pixel(1, 6);
+        watch_set_pixel(2, 4);
+        watch_set_pixel(0, 6);
+        state->animation_frame = 2;
+    } else if (state->animation_frame == 2) {
+        watch_clear_pixel(2, 4);
+        watch_clear_pixel(0, 6);
+        watch_set_pixel(2, 5);
+        watch_set_pixel(0, 5);
+        state->animation_frame = 3;
+    } else if (state->animation_frame == 3) {
+        state->animation_frame = 0;
+        state->is_picking = false;
+        movement_request_tick_frequency(1);
+        tarot_display(state);
     }
 }
 
@@ -246,7 +244,9 @@ bool tarot_face_loop(movement_event_t event, movement_settings_t *settings, void
             tarot_display(state);
             break;
         case EVENT_TICK:
-            display_animation(state);
+            if (state->is_picking) {
+                display_animation(state);
+            }
             break;
         case EVENT_MODE_BUTTON_UP:
             movement_move_to_next_face();