]> git.earman.xyz Git - sensor-watch.git/commitdiff
Added delay before showing Bust
authorDavid Volovskiy <devolov@gmail.com>
Wed, 3 Sep 2025 11:52:18 +0000 (07:52 -0400)
committerDavid Volovskiy <devolov@gmail.com>
Wed, 3 Sep 2025 11:52:18 +0000 (07:52 -0400)
watch-faces/complication/blackjack_face.c

index c9c7a3cdae623906787764cd5e5d287e9105b551..78270bf0fa1166e3853cdc403054ff1d0fefe7b3 100755 (executable)
@@ -58,6 +58,7 @@ typedef enum {
     BJ_TITLE_SCREEN,\r
     BJ_PLAYING,\r
     BJ_DEALER_PLAYING,\r
+    BJ_BUST,\r
     BJ_RESULT,\r
 } game_state_t;\r
 \r
@@ -206,7 +207,7 @@ static void display_dealer_hand(void) {
     display_card_at_position(card, 0);\r
 }\r
 \r
-display_score(uint8_t score, watch_position_t pos) {\r
+static void display_score(uint8_t score, watch_position_t pos) {\r
     char buf[4];\r
     sprintf(buf, "%2d", score);\r
     watch_display_text(pos, buf);\r
@@ -235,7 +236,6 @@ static void display_tie(void) {
 static void display_bust(void) {\r
     game_state = BJ_RESULT;\r
     watch_display_text_with_fallback(WATCH_POSITION_BOTTOM, "8UST ", " BUST");\r
-    display_score(player.score, WATCH_POSITION_SECONDS);\r
 }\r
 \r
 static void display_title(void) {\r
@@ -264,11 +264,10 @@ static void perform_hit(void) {
     }\r
     give_card(&player);\r
     if (player.score > 21) {\r
-        display_bust();\r
-    } else {\r
-        display_player_hand();\r
-        display_score(player.score, WATCH_POSITION_SECONDS);\r
+        game_state = BJ_BUST;\r
     }\r
+    display_player_hand();\r
+    display_score(player.score, WATCH_POSITION_SECONDS);\r
 }\r
 \r
 static void perform_stand(void) {\r
@@ -320,6 +319,8 @@ static void handle_button_presses(bool hit) {
     case BJ_DEALER_PLAYING:\r
         see_if_dealer_hits();\r
         break;\r
+    case BJ_BUST:\r
+        display_bust();\r
     case BJ_RESULT:\r
         display_title();\r
         break;\r
@@ -369,6 +370,9 @@ bool blackjack_face_loop(movement_event_t event, void *context) {
             if (game_state == BJ_DEALER_PLAYING) {\r
                 see_if_dealer_hits();\r
             }\r
+            else if (game_state == BJ_BUST) {\r
+                display_bust();\r
+            }\r
             break;\r
         case EVENT_LIGHT_BUTTON_UP:\r
         case EVENT_DOUBLE_TAP:\r