rem: sis_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter) PELEMENT ShipPtr; PEVALUATE_DESC ObjectsOfConcern; COUNT ConcernCounter;
add: sis_intelligence (PELEMENT ShipPtr, PEVALUATE_DESC ObjectsOfConcern, COUNT ConcernCounter)
context: sis_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter)PELEMENT ShipPtr;PEVALUATE_DESC ObjectsOfConcern;COUNT ConcernCounter;{	PEVALUATE_DESC lpEvalDesc;	STARSHIPPTR StarShipPtr;	GetElementStarShip (ShipPtr, &StarShipPtr);	lpEvalDesc = &ObjectsOfConcern[ENEMY_WEAPON_INDEX];	if (lpEvalDesc->ObjectPtr)	{		if (StarShipPtr->RaceDescPtr->characteristics.special_energy_cost)		{			if (StarShipPtr->special_counter == 0					&& ((lpEvalDesc->ObjectPtr					&& lpEvalDesc->which_turn <= 2)					|| (ObjectsOfConcern[ENEMY_SHIP_INDEX].ObjectPtr != NULL_PTR					&& ObjectsOfConcern[ENEMY_SHIP_INDEX].which_turn <= 4)))				StarShipPtr->ship_input_state |= SPECIAL;			else				StarShipPtr->ship_input_state &= ~SPECIAL;			lpEvalDesc->ObjectPtr = NULL_PTR;		}		else if (MANEUVERABILITY (&StarShipPtr->RaceDescPtr->cyborg_control) < MEDIUM_SHIP				&& lpEvalDesc->MoveState == ENTICE				&& (!(lpEvalDesc->ObjectPtr->state_flags & CREW_OBJECT)				|| lpEvalDesc->which_turn <= 8)				&& (!(lpEvalDesc->ObjectPtr->state_flags & FINITE_LIFE)				|| (lpEvalDesc->ObjectPtr->mass_points >= 4				&& lpEvalDesc->which_turn == 2				&& ObjectsOfConcern[ENEMY_SHIP_INDEX].which_turn > 16)))			lpEvalDesc->MoveState = PURSUE;	}	ship_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter);	lpEvalDesc = &ObjectsOfConcern[ENEMY_SHIP_INDEX];	if (num_trackers			&& StarShipPtr->weapon_counter == 0			&& !(StarShipPtr->ship_input_state & WEAPON)			&& lpEvalDesc->ObjectPtr			&& lpEvalDesc->which_turn <= 16)	{		COUNT direction_facing;		SIZE delta_x, delta_y;		UWORD fire_flags, ship_flags;		COUNT facing;		delta_x = lpEvalDesc->ObjectPtr->current.location.x				- ShipPtr->current.location.x;		delta_y = lpEvalDesc->ObjectPtr->current.location.y				- ShipPtr->current.location.y;		direction_facing = NORMALIZE_FACING (				ANGLE_TO_FACING (ARCTAN (delta_x, delta_y))				);		ship_flags = StarShipPtr->RaceDescPtr->ship_info.ship_flags;		for (fire_flags = FIRES_FORE, facing = StarShipPtr->ShipFacing;				fire_flags <= FIRES_LEFT;				fire_flags <<= 1, facing += QUADRANT)		{			if ((ship_flags & fire_flags) && NORMALIZE_FACING (					direction_facing - facing + ANGLE_TO_FACING (OCTANT)					) <= ANGLE_TO_FACING (QUADRANT))			{				StarShipPtr->ship_input_state |= WEAPON;				break;			}		}	}}