@@ -240,6 +240,7 @@ static void setup_playfield(Minesweeper* minesweeper_state) {
240
240
minesweeper_state -> flags_set = 0 ;
241
241
minesweeper_state -> game_started_tick = furi_get_tick ();
242
242
minesweeper_state -> game_started = false;
243
+ minesweeper_state -> showing_dialog = false;
243
244
}
244
245
}
245
246
@@ -275,7 +276,6 @@ static bool game_lost(Minesweeper* minesweeper_state) {
275
276
276
277
DialogMessageButton choice = dialog_message_show (dialogs , message );
277
278
dialog_message_free (message );
278
- minesweeper_state -> showing_dialog = false;
279
279
furi_record_close (RECORD_NOTIFICATION );
280
280
281
281
return choice == DialogMessageButtonCenter ;
@@ -307,7 +307,7 @@ static bool game_won(Minesweeper* minesweeper_state) {
307
307
308
308
DialogMessageButton choice = dialog_message_show (dialogs , message );
309
309
dialog_message_free (message );
310
- minesweeper_state -> showing_dialog = false;
310
+ // minesweeper_state->showing_dialog = false;
311
311
string_clear (tempStr );
312
312
string_reset (tempStr );
313
313
furi_record_close (RECORD_DIALOGS );
@@ -404,6 +404,12 @@ int32_t minesweeper_app(void* p) {
404
404
for (bool processing = true; processing ;) {
405
405
FuriStatus event_status = furi_message_queue_get (event_queue , & event , 100 );
406
406
Minesweeper * minesweeper_state = (Minesweeper * )acquire_mutex_block (& state_mutex );
407
+ if (minesweeper_state -> showing_dialog ) {
408
+ // this should not happen.
409
+ //release_mutex(&state_mutex, minesweeper_state);
410
+ processing = false;
411
+ //continue;
412
+ }
407
413
if (event_status == FuriStatusOk ) {
408
414
// press events
409
415
if (event .type == EventTypeKey ) {
0 commit comments