Felix Pankratz 3 лет назад
Родитель
Сommit
4426c01237
1 измененных файлов с 17 добавлено и 6 удалено
  1. 17 6
      minesweeper.c

+ 17 - 6
minesweeper.c

@@ -281,15 +281,25 @@ static bool game_lost(Minesweeper* minesweeper_state) {
 }
 
 static bool game_won(Minesweeper* minesweeper_state) {
-  NotificationApp* notifications = furi_record_open(RECORD_NOTIFICATION); 
   DialogsApp *dialogs = furi_record_open(RECORD_DIALOGS);
 
+  minesweeper_state->showing_dialog = true;
+
+  string_t tempStr;
+  string_init(tempStr);
+
+  int seconds = 0;
+  int minutes = 0; 
+  uint32_t ticks_elapsed = furi_get_tick() - minesweeper_state->game_started_tick;
+  seconds = (int) ticks_elapsed / furi_kernel_get_tick_frequency();
+  minutes = (int) seconds / 60;
+  seconds = seconds % 60;
+
   DialogMessage* message = dialog_message_alloc();
   const char* header_text = "Game won!";
-  const char* message_text = "You cleared the minefield!";
-
+  string_printf(tempStr, "Minefield cleared in %01d:%02d", minutes, seconds);
   dialog_message_set_header(message, header_text, 64, 3, AlignCenter, AlignTop);
-  dialog_message_set_text(message, message_text, 64, 32, AlignCenter, AlignCenter);
+  dialog_message_set_text(message, string_get_cstr(tempStr), 64, 32, AlignCenter, AlignCenter);
   dialog_message_set_buttons(message, NULL, "Play again", NULL);
   // TODO: create icon
   dialog_message_set_icon(message, NULL, 72, 17);
@@ -297,8 +307,9 @@ static bool game_won(Minesweeper* minesweeper_state) {
   DialogMessageButton choice = dialog_message_show(dialogs, message);
   dialog_message_free(message);
   minesweeper_state->showing_dialog = false;
-  notification_message(notifications, &sequence_reset_vibro);
-  furi_record_close(RECORD_NOTIFICATION);
+  string_clear(tempStr);
+  string_reset(tempStr);
+  furi_record_close(RECORD_DIALOGS);
   return choice == DialogMessageButtonCenter; 
 }