Skip to content

Commit c69e836

Browse files
authored
Fix dead-loop on self-destroy by deferring destruction check (#806)
1 parent 2185e22 commit c69e836

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

operations.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3620,7 +3620,7 @@ int32_t field::destroy(uint16_t step, group * targets, effect * reason_effect, u
36203620
core.hint_timing[pcard->current.controler] |= TIMING_DESTROY;
36213621
raise_single_event(pcard, 0, EVENT_DESTROY, pcard->current.reason_effect, pcard->current.reason, pcard->current.reason_player, 0, 0);
36223622
}
3623-
adjust_instant();
3623+
adjust_disable_check_list();
36243624
process_single_event();
36253625
raise_event(targets->container, EVENT_DESTROY, reason_effect, reason, reason_player, 0, 0);
36263626
process_instant_event();
@@ -3655,6 +3655,7 @@ int32_t field::destroy(uint16_t step, group * targets, effect * reason_effect, u
36553655
}
36563656
returns.ivalue[0] = (int32_t)core.operated_set.size();
36573657
pduel->delete_group(targets);
3658+
adjust_self_destroy_set();
36583659
return TRUE;
36593660
}
36603661
case 10: {

0 commit comments

Comments
 (0)