rem: MenuSounds = OldMenuSounds;
add: SetMenuSounds (MENU_SOUND_ARROWS, MENU_SOUND_SELECT);
context: DoStarMap (void){	SOUND OldMenuSounds;	MENU_STATE MenuState;	POINT universe;	//FRAME OldFrame;	RECT clip_r;	CONTEXT OldContext;	extern FRAME misc_data;	pMenuState = &MenuState;	memset (pMenuState, 0, sizeof (*pMenuState));	MenuState.flash_rect1.corner.x = MAX_X_UNIVERSE >> 1;	MenuState.flash_rect1.corner.y = MAX_Y_UNIVERSE >> 1;	MenuState.CurFrame = SetAbsFrameIndex (misc_data, 48);	MenuState.delta_item = 0;	if (LOBYTE (GLOBAL (CurrentActivity)) != IN_HYPERSPACE)		universe = CurStarDescPtr->star_pt;	else	{		universe.x = LOGX_TO_UNIVERSE (GLOBAL_SIS (log_x));		universe.y = LOGY_TO_UNIVERSE (GLOBAL_SIS (log_y));	}	MenuState.first_item = GLOBAL (autopilot);	if (MenuState.first_item.x == ~0 && MenuState.first_item.y == ~0)		MenuState.first_item = universe;	UnlockMutex (GraphicsLock);	TaskSwitch ();	MenuState.InputFunc = DoMoveCursor;	MenuState.Initialized = FALSE;	SetMenuRepeatDelay (MIN_ACCEL_DELAY, MAX_ACCEL_DELAY, STEP_ACCEL_DELAY, TRUE);	transition_pending = TRUE;	if (GET_GAME_STATE (ARILOU_SPACE_SIDE) <= 1)		UpdateMap ();	LockMutex (GraphicsLock);		DrawStarMap (0, (PRECT)-1);	transition_pending = FALSE;		BatchGraphics ();	OldContext = SetContext (SpaceContext);	GetContextClipRect (&clip_r);	SetContext (OldContext);	LoadIntoExtraScreen (&clip_r);			DrawCursor (			UNIVERSE_TO_DISPX (pMenuState->first_item.x),			UNIVERSE_TO_DISPY (pMenuState->first_item.y)			);	UnbatchGraphics ();	UnlockMutex (GraphicsLock);	OldMenuSounds = MenuSounds;	MenuSounds = 0;	DoInput ((PVOID)&MenuState, FALSE);	MenuSounds = OldMenuSounds;	pMenuState = 0;	LockMutex (GraphicsLock);	DrawHyperCoords (universe);	DrawSISMessage (NULL_PTR);	DrawStatusMessage (NULL_PTR);	if (GLOBAL (autopilot.x) == universe.x			&& GLOBAL (autopilot.y) == universe.y)		GLOBAL (autopilot.x) = GLOBAL (autopilot.y) = ~0;	return (GLOBAL (autopilot.x) != ~0			&& GLOBAL (autopilot.y) != ~0);}