rem: SetSemaphore (&GraphicsSem);
add: SetSemaphore (GraphicsSem);
context: DoDiscoveryReport (SOUND ReadOutSounds){	POINT old_curs;	CONTEXT OldContext;	FRAME OldFrame;	extern void DrawScannedObjects (BOOLEAN Reversed);	if (pMenuState)	{		old_curs = pMenuState->flash_rect0.corner;		pMenuState->flash_rect0.corner.x = /* disable cursor */				pMenuState->flash_rect0.corner.x = -1000;	}	OldContext = SetContext (ScanContext);	OldFrame = SetContextBGFrame ((FRAME)0);	{		FONT OldFont;		OldFont = SetContextFont (pSolarSysState->SysInfo.PlanetInfo.LanderFont);		MakeReport (ReadOutSounds,				(UNICODE *)GetStringAddress (pSolarSysState->SysInfo.PlanetInfo.DiscoveryString),				GetStringLength (pSolarSysState->SysInfo.PlanetInfo.DiscoveryString));		SetContextFont (OldFont);	}	SetContextBGFrame (OldFrame);#ifdef OLD	ClearDrawable ();	if (pSolarSysState->MenuState.Initialized >= 3)		DrawScannedObjects (FALSE);#else /* !OLD */	if (pSolarSysState->MenuState.Initialized < 3)		ClearDrawable ();#endif /* OLD */	SetContext (OldContext);	ClearSemaphore (&GraphicsSem);	FlushInput ();	while (AnyButtonPress (TRUE))		TaskSwitch ();	SetSemaphore (&GraphicsSem);	if (pMenuState)		pMenuState->flash_rect0.corner = old_curs;}