rem: ClearSemaphore (&GraphicsSem);
add: ClearSemaphore (GraphicsSem);
context: NormalStarbase (RESPONSE_REF R){	if (PLAYER_SAID (R, no_need_info))		NPCPhrase (OK_NO_NEED_INFO);	else if (PLAYER_SAID (R, new_devices))		DiscussDevices (TRUE);	else if (PLAYER_SAID (R, repeat_bulletins))		CheckBulletins (TRUE);	else if (R == 0)	{		if (GET_GAME_STATE (MOONBASE_ON_SHIP))		{			NPCPhrase (STARBASE_IS_READY_A);			NPCPhrase (GLOBAL_SHIP_NAME);			NPCPhrase (STARBASE_IS_READY_B);			NPCPhrase (GLOBAL_SHIP_NAME);			NPCPhrase (STARBASE_IS_READY_C);			SetSemaphore (&GraphicsSem);			DeltaSISGauges (0, 0, 2500);			ClearSemaphore (&GraphicsSem);			SET_GAME_STATE (STARBASE_MONTH,					GLOBAL (GameClock.month_index));			SET_GAME_STATE (STARBASE_DAY,					GLOBAL (GameClock.day_index));		}		else if (GET_GAME_STATE (STARBASE_VISITED))		{			CheckBulletins (FALSE);		}		else		{			RESPONSE_REF pStr0, pStr1;			switch ((BYTE)Random () & 7)			{				case 0:					pStr0 = NORMAL_HELLO_A0;					pStr1 = NORMAL_HELLO_A1;					break;				case 1:					pStr0 = NORMAL_HELLO_B0;					pStr1 = NORMAL_HELLO_B1;					break;				case 2:					pStr0 = NORMAL_HELLO_C0;					pStr1 = NORMAL_HELLO_C1;					break;				case 3:					pStr0 = NORMAL_HELLO_D0;					pStr1 = NORMAL_HELLO_D1;					break;				case 4:					pStr0 = NORMAL_HELLO_E0;					pStr1 = NORMAL_HELLO_E1;					break;				case 5:					pStr0 = NORMAL_HELLO_F0;					pStr1 = NORMAL_HELLO_F1;					break;				case 6:					pStr0 = NORMAL_HELLO_G0;					pStr1 = NORMAL_HELLO_G1;					break;				case 7:					pStr0 = NORMAL_HELLO_H0;					pStr1 = NORMAL_HELLO_H1;					break;			}			NPCPhrase (pStr0);			NPCPhrase (GLOBAL_PLAYER_NAME);			NPCPhrase (pStr1);			CheckBulletins (FALSE);		}		SET_GAME_STATE (STARBASE_VISITED, 1);	}	if (GLOBAL_SIS (TotalElementMass))	{		static void SellMinerals (RESPONSE_REF R);		Response (have_minerals, SellMinerals);	}	if (DiscussDevices (FALSE))		Response (new_devices, NormalStarbase);	if (CurBulletinMask)		Response (repeat_bulletins, NormalStarbase);	Response (need_info, NeedInfo);	Response (goodbye_commander, ByeBye);}