]> git.earman.xyz Git - sensor-watch.git/commitdiff
Moved away from watch_display_string
authorDavid Volovskiy <devolov@gmail.com>
Tue, 12 Aug 2025 23:43:28 +0000 (19:43 -0400)
committerDavid Volovskiy <devolov@gmail.com>
Tue, 12 Aug 2025 23:43:28 +0000 (19:43 -0400)
watch-faces/complication/higher_lower_game_face.c

index 260412d9d88776f24b4a58b9c20d857bc3a93008..cfbbb98e5e3a3052fd2ec82b505d416d7db38bc3 100755 (executable)
@@ -37,8 +37,6 @@
 #define MAX_BOARDS 40\r
 #define GUESSES_PER_SCREEN 5\r
 #define WIN_SCORE (MAX_BOARDS * GUESSES_PER_SCREEN)\r
-#define STATUS_DISPLAY_START 0\r
-#define BOARD_SCORE_DISPLAY_START 2\r
 #define BOARD_DISPLAY_START 4\r
 #define BOARD_DISPLAY_END 9\r
 #define MIN_CARD_VALUE 2\r
@@ -141,8 +139,8 @@ static void reset_board(bool first_round) {
 \r
 static void init_game(void) {\r
     watch_clear_display();\r
-    watch_display_string(TITLE_TEXT, BOARD_DISPLAY_START);\r
-    watch_display_string("GA", STATUS_DISPLAY_START);\r
+    watch_display_text(WATCH_POSITION_BOTTOM, TITLE_TEXT);\r
+    watch_display_text(WATCH_POSITION_TOP_LEFT, "HL");\r
     reset_deck();\r
     reset_board(true);\r
     score = 0;\r
@@ -214,16 +212,16 @@ static void render_board_count(void) {
     // Render completed boards (screens)\r
     char buf[3] = {0};\r
     snprintf(buf, sizeof(buf), "%2hhu", completed_board_count);\r
-    watch_display_string(buf, BOARD_SCORE_DISPLAY_START);\r
+    watch_display_text(WATCH_POSITION_TOP_RIGHT, buf);\r
 }\r
 \r
 static void render_final_score(void) {\r
-    watch_display_string("SC", STATUS_DISPLAY_START);\r
+    watch_display_text_with_fallback(WATCH_POSITION_TOP_LEFT, "SCO", "SC");\r
     char buf[7] = {0};\r
     const uint8_t complete_boards = score / GUESSES_PER_SCREEN;\r
     snprintf(buf, sizeof(buf), "%2hu %03hu", complete_boards, score);\r
     watch_set_colon();\r
-    watch_display_string(buf, BOARD_DISPLAY_START);\r
+    watch_display_text(WATCH_POSITION_BOTTOM, buf);\r
 }\r
 \r
 static guess_t get_answer(void) {\r
@@ -256,13 +254,13 @@ static void do_game_loop(guess_t user_guess) {
             // Render answer indicator\r
             switch (answer) {\r
                 case HL_GUESS_EQUAL:\r
-                    watch_display_string("==", STATUS_DISPLAY_START);\r
+                    watch_display_text(WATCH_POSITION_TOP_LEFT, "==");\r
                     break;\r
                 case HL_GUESS_HIGHER:\r
-                    watch_display_string("HI", STATUS_DISPLAY_START);\r
+                    watch_display_text(WATCH_POSITION_TOP_LEFT, "HI");\r
                     break;\r
                 case HL_GUESS_LOWER:\r
-                    watch_display_string("LO", STATUS_DISPLAY_START);\r
+                    watch_display_text(WATCH_POSITION_TOP_LEFT, "LO");\r
                     break;\r
             }\r
 \r
@@ -273,7 +271,7 @@ static void do_game_loop(guess_t user_guess) {
                 // No score for two consecutive identical cards\r
             } else {\r
                 // Incorrect guess, game over\r
-                watch_display_string("GO", STATUS_DISPLAY_START);\r
+                watch_display_text_with_fallback(WATCH_POSITION_TOP_LEFT, "End", "GO");\r
                 game_board[guess_position].revealed = true;\r
                 render_board_position(guess_position);\r
                 game_state = HL_GS_LOSE;\r
@@ -282,9 +280,9 @@ static void do_game_loop(guess_t user_guess) {
 \r
             if (score >= WIN_SCORE) {\r
                 // Win, perhaps some kind of animation sequence?\r
-                watch_display_string("WI", STATUS_DISPLAY_START);\r
-                watch_display_string("  ", BOARD_SCORE_DISPLAY_START);\r
-                watch_display_string("------", BOARD_DISPLAY_START);\r
+                watch_display_text_with_fallback(WATCH_POSITION_TOP_LEFT, "WIN", "WI");\r
+                watch_display_text(WATCH_POSITION_TOP_RIGHT, "  ");\r
+                watch_display_text(WATCH_POSITION_BOTTOM, "------");\r
                 game_state = HL_GS_WIN;\r
                 return;\r
             }\r
@@ -314,12 +312,12 @@ static void do_game_loop(guess_t user_guess) {
             break;\r
         case HL_GS_SHOW_SCORE:\r
             watch_clear_display();\r
-            watch_display_string(TITLE_TEXT, BOARD_DISPLAY_START);\r
-            watch_display_string("GA", STATUS_DISPLAY_START);\r
+            watch_display_text(WATCH_POSITION_BOTTOM, TITLE_TEXT);\r
+            watch_display_text(WATCH_POSITION_TOP_LEFT, "HL");\r
             game_state = HL_GS_TITLE_SCREEN;\r
             break;\r
         default:\r
-            watch_display_string("ERROR", BOARD_DISPLAY_START);\r
+            watch_display_text(WATCH_POSITION_BOTTOM, "ERROR");\r
             break;\r
     }\r
 }\r
@@ -358,8 +356,8 @@ bool higher_lower_game_face_loop(movement_event_t event, void *context) {
     switch (event.event_type) {\r
         case EVENT_ACTIVATE:\r
             // Show your initial UI here.\r
-            watch_display_string(TITLE_TEXT, BOARD_DISPLAY_START);\r
-            watch_display_string("GA", STATUS_DISPLAY_START);\r
+            watch_display_text(WATCH_POSITION_BOTTOM, TITLE_TEXT);\r
+            watch_display_text(WATCH_POSITION_TOP_LEFT, "HL");\r
             break;\r
         case EVENT_TICK:\r
             // If needed, update your display here.\r