add: last_subtitle = NULL;
context: InitCommunication (RESOURCE which_comm){	COUNT status;	MEM_HANDLE hOldIndex, hIndex;	LOCDATAPTR LocDataPtr;		SetSemaphore (GraphicsSem);	if (LastActivity & CHECK_LOAD)	{		LastActivity &= ~CHECK_LOAD;		if (which_comm != COMMANDER_CONVERSATION)		{			if (LOBYTE (LastActivity) == 0)			{				ClearSemaphore (GraphicsSem);				DrawSISFrame ();				SetSemaphore (GraphicsSem);			}			else			{				ClearSISRect (DRAW_SIS_DISPLAY);				RepairSISBorder ();			}			DrawSISMessage (NULL_PTR);			if (LOBYTE (GLOBAL (CurrentActivity)) == IN_HYPERSPACE)				DrawHyperCoords (						GLOBAL (ShipStamp.origin)						);			else if (HIWORD (GLOBAL (ShipStamp.frame)) == 0)				DrawHyperCoords (CurStarDescPtr->star_pt);			else				DrawSISTitle (GLOBAL_SIS (PlanetName));		}	}	if (which_comm == 0)		status = URQUAN_PROBE_SHIP, which_comm = URQUAN_CONVERSATION;	else	{		if (which_comm == (RESOURCE) YEHAT_REBEL_CONVERSATION)			status = YEHAT_REBEL_SHIP, which_comm = YEHAT_CONVERSATION;		else if (((status = GET_PACKAGE (which_comm)				- GET_PACKAGE (ARILOU_CONVERSATION)				+ ARILOU_SHIP) >= YEHAT_REBEL_SHIP))			status = HUMAN_SHIP; /* conversation exception, set to self */		ActivateStarShip (status, SPHERE_TRACKING);		if (which_comm == ORZ_CONVERSATION				|| (which_comm == TALKING_PET_CONVERSATION				&& (!GET_GAME_STATE (TALKING_PET_ON_SHIP)				|| LOBYTE (GLOBAL (CurrentActivity)) == IN_LAST_BATTLE))				|| (which_comm != CHMMR_CONVERSATION				&& which_comm != SYREEN_CONVERSATION				))//&& (ActivateStarShip (status, CHECK_ALLIANCE) & BAD_GUY)))			BuildBattle (1);	}	hOldIndex = SetResourceIndex (hResIndex);	if ((hIndex = OpenResourceIndexInstance (which_comm)) == 0)	{		SET_GAME_STATE (BATTLE_SEGUE, 1);		LocDataPtr = 0;	}	else	{		SetResourceIndex (hIndex);		LocDataPtr = (LOCDATAPTR)init_race (				status != YEHAT_REBEL_SHIP ? which_comm : YEHAT_REBEL_CONVERSATION				);		if (LocDataPtr)			CommData = *LocDataPtr;	}	ClearSemaphore (GraphicsSem);	if (GET_GAME_STATE (BATTLE_SEGUE) == 0)		status = HAIL;	else if ((status = InitEncounter ()) == HAIL && LocDataPtr)	{		SET_GAME_STATE (BATTLE_SEGUE, 0);	}	else	{		status = ATTACK;		SET_GAME_STATE (BATTLE_SEGUE, 1);	}	SetSemaphore (GraphicsSem);	if (status == HAIL)	{		cur_comm = which_comm;		HailAlien ();		cur_comm = 0;	}	else if (LocDataPtr)		(*CommData.uninit_encounter_func) ();	SetResourceIndex (hOldIndex);	CloseResourceIndex (hIndex);	ClearSemaphore (GraphicsSem);	status = 0;	if (!(GLOBAL (CurrentActivity) & (CHECK_ABORT | CHECK_LOAD)))	{		if (LOBYTE (GLOBAL (CurrentActivity)) == IN_LAST_BATTLE				&& (GLOBAL (glob_flags) & CYBORG_ENABLED))			ReinitQueue (&GLOBAL (npc_built_ship_q));		SET_GAME_STATE (GLOBAL_FLAGS_AND_DATA, 0);		status = (GET_GAME_STATE (BATTLE_SEGUE)				&& GetHeadLink (&GLOBAL (npc_built_ship_q)));		if (status)		{			BuildBattle (0);			EncounterBattle ();		}		else		{			SET_GAME_STATE (BATTLE_SEGUE, 0);		}	}	UninitEncounter ();	return (status);}