diff --git a/sc2/src/sc2code/comm.c b/sc2/src/sc2code/comm.c index ad81425ea..e52961945 100644 --- a/sc2/src/sc2code/comm.c +++ b/sc2/src/sc2code/comm.c @@ -1381,7 +1381,9 @@ DoCommunication (INPUT_STATE InputState, PENCOUNTER_STATE pES) if (pES->AnimTask) { - Task_SetState (pES->AnimTask, TASK_EXIT); + ClearSemaphore (GraphicsSem); + ConcludeTask (pES->AnimTask); + SetSemaphore (GraphicsSem); pES->AnimTask = 0; } CommData.AlienTransitionDesc.AnimFlags &= ~(TALK_INTRO | TALK_DONE); diff --git a/sc2/src/sc2code/sis.c b/sc2/src/sc2code/sis.c index 622e7b5ab..0e9eab165 100644 --- a/sc2/src/sc2code/sis.c +++ b/sc2/src/sc2code/sis.c @@ -1052,7 +1052,9 @@ SetFlashRect (PRECT pRect, FRAME f) flash_rect.extent.width = 0; if (flash_task) { + ClearSemaphore (GraphicsSem); ConcludeTask (flash_task); + SetSemaphore (GraphicsSem); } } else