From 2d7aaceff7c73ae2438a5c6a11a1749bf0191203 Mon Sep 17 00:00:00 2001 From: David Volovskiy Date: Sat, 20 Jul 2024 06:46:08 -0400 Subject: [PATCH] hi score resets weekly --- .../watch_faces/complication/endless_runner_face.c | 13 +++++++++++++ .../watch_faces/complication/endless_runner_face.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/movement/watch_faces/complication/endless_runner_face.c b/movement/watch_faces/complication/endless_runner_face.c index cd672f66..6c761dfa 100644 --- a/movement/watch_faces/complication/endless_runner_face.c +++ b/movement/watch_faces/complication/endless_runner_face.c @@ -25,6 +25,7 @@ #include #include #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; diff --git a/movement/watch_faces/complication/endless_runner_face.h b/movement/watch_faces/complication/endless_runner_face.h index b588f354..03ec4182 100644 --- a/movement/watch_faces/complication/endless_runner_face.h +++ b/movement/watch_faces/complication/endless_runner_face.h @@ -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);