]> git.earman.xyz Git - sensor-watch.git/commitdiff
hi score resets weekly
authorDavid Volovskiy <devolov@gmail.com>
Sat, 20 Jul 2024 10:46:08 +0000 (06:46 -0400)
committerDavid Volovskiy <devolov@gmail.com>
Tue, 3 Sep 2024 20:20:11 +0000 (16:20 -0400)
movement/watch_faces/complication/endless_runner_face.c
movement/watch_faces/complication/endless_runner_face.h

index cd672f6610add7255fac9f8091d3f9df835f0d16..6c761dfa12035ab3f9e25604e74381c68abaf64c 100644 (file)
@@ -25,6 +25,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include "endless_runner_face.h"
+#include "watch_utility.h"
 
 typedef enum {
     JUMPING_FINAL_FRAME = 0,
@@ -314,9 +315,21 @@ bool endless_runner_face_loop(movement_event_t event, movement_settings_t *setti
     endless_runner_state_t *state = (endless_runner_state_t *)context;
     bool success_jump = false;
     uint8_t curr_jump_frame = 0;
+    watch_date_time date_time;
+    uint32_t weeknumber;
 
     switch (event.event_type) {
         case EVENT_ACTIVATE:
+            date_time = watch_rtc_get_date_time();
+            weeknumber = watch_utility_get_weeknumber(date_time.unit.year, date_time.unit.month, date_time.unit.day);
+            if ((state -> weeknumber_prev_hi_score != weeknumber) || 
+                (state -> year_prev_hi_score != date_time.unit.year))
+            {
+                // The high score resets itself every new week.
+                state -> hi_score = 0;
+                state -> weeknumber_prev_hi_score = weeknumber;
+                state -> year_prev_hi_score = date_time.unit.year;
+            }
             if (state -> soundOn) watch_set_indicator(WATCH_INDICATOR_BELL);
             display_title(state);
             break;
index b588f3546701a9c323f454baa2dba3695e775f67..03ec4182edb6b485e3e8dbd39ef180471b944d00 100644 (file)
@@ -44,6 +44,8 @@ typedef struct {
     uint16_t difficulty : 2;
     bool soundOn;
     bool unused;
+    uint8_t weeknumber_prev_hi_score;
+    uint8_t year_prev_hi_score;
 } endless_runner_state_t;
 
 void endless_runner_face_setup(movement_settings_t *settings, uint8_t watch_face_index, void ** context_ptr);