Skip to content

Commit 5dbbd04

Browse files
committed
some sanity checks... theres a bug with spammed inputs :(
1 parent f951a55 commit 5dbbd04

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

minesweeper.c

+8-2
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ static void setup_playfield(Minesweeper* minesweeper_state) {
240240
minesweeper_state->flags_set = 0;
241241
minesweeper_state->game_started_tick = furi_get_tick();
242242
minesweeper_state->game_started = false;
243+
minesweeper_state->showing_dialog = false;
243244
}
244245
}
245246

@@ -275,7 +276,6 @@ static bool game_lost(Minesweeper* minesweeper_state) {
275276

276277
DialogMessageButton choice = dialog_message_show(dialogs, message);
277278
dialog_message_free(message);
278-
minesweeper_state->showing_dialog = false;
279279
furi_record_close(RECORD_NOTIFICATION);
280280

281281
return choice == DialogMessageButtonCenter;
@@ -307,7 +307,7 @@ static bool game_won(Minesweeper* minesweeper_state) {
307307

308308
DialogMessageButton choice = dialog_message_show(dialogs, message);
309309
dialog_message_free(message);
310-
minesweeper_state->showing_dialog = false;
310+
//minesweeper_state->showing_dialog = false;
311311
string_clear(tempStr);
312312
string_reset(tempStr);
313313
furi_record_close(RECORD_DIALOGS);
@@ -404,6 +404,12 @@ int32_t minesweeper_app(void* p) {
404404
for (bool processing = true; processing;) {
405405
FuriStatus event_status = furi_message_queue_get(event_queue, &event, 100);
406406
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+
}
407413
if(event_status == FuriStatusOk) {
408414
// press events
409415
if(event.type == EventTypeKey) {

0 commit comments

Comments
 (0)