rem: zoqfotpik_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter) PELEMENT ShipPtr; PEVALUATE_DESC ObjectsOfConcern; COUNT ConcernCounter;
add: zoqfotpik_intelligence (PELEMENT ShipPtr, PEVALUATE_DESC ObjectsOfConcern, COUNT ConcernCounter)
context: zoqfotpik_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter)PELEMENT ShipPtr;PEVALUATE_DESC ObjectsOfConcern;COUNT ConcernCounter;{	BOOLEAN GiveTongueJob;	STARSHIPPTR StarShipPtr;	GetElementStarShip (ShipPtr, &StarShipPtr);	GiveTongueJob = FALSE;	if (StarShipPtr->special_counter == 0)	{			PEVALUATE_DESC lpEnemyEvalDesc;		StarShipPtr->ship_input_state &= ~SPECIAL;		lpEnemyEvalDesc = &ObjectsOfConcern[ENEMY_SHIP_INDEX];		if (lpEnemyEvalDesc->ObjectPtr				&& lpEnemyEvalDesc->which_turn <= 4#ifdef NEVER				&& StarShipPtr->RaceDescPtr->ship_info.energy_level >= SPECIAL_ENERGY_COST#endif /* NEVER */				)		{			SIZE delta_x, delta_y;			GiveTongueJob = TRUE;			lpEnemyEvalDesc->MoveState = PURSUE;			delta_x = lpEnemyEvalDesc->ObjectPtr->next.location.x					- ShipPtr->next.location.x;			delta_y = lpEnemyEvalDesc->ObjectPtr->next.location.y					- ShipPtr->next.location.y;			if (StarShipPtr->ShipFacing == NORMALIZE_FACING (					ANGLE_TO_FACING (ARCTAN (delta_x, delta_y))					))				StarShipPtr->ship_input_state |= SPECIAL;		}	}	++StarShipPtr->weapon_counter;	ship_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter);	--StarShipPtr->weapon_counter;	if (StarShipPtr->weapon_counter == 0)	{		StarShipPtr->ship_input_state &= ~WEAPON;		if (!GiveTongueJob)		{			ObjectsOfConcern += ConcernCounter;			while (ConcernCounter--)			{				--ObjectsOfConcern;				if (ObjectsOfConcern->ObjectPtr						&& (ConcernCounter == ENEMY_SHIP_INDEX						|| (ConcernCounter == ENEMY_WEAPON_INDEX						&& ObjectsOfConcern->MoveState != AVOID#ifdef NEVER						&& !(PlayerControl[cur_player] & STANDARD_RATING)#endif /* NEVER */						))						&& ship_weapons (ShipPtr,						ObjectsOfConcern->ObjectPtr, DISPLAY_TO_WORLD (20)))				{					StarShipPtr->ship_input_state |= WEAPON;					break;				}			}		}	}}