rem: androsynth_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter) PELEMENT ShipPtr; PEVALUATE_DESC ObjectsOfConcern; COUNT ConcernCounter;
add: androsynth_intelligence (PELEMENT ShipPtr, PEVALUATE_DESC ObjectsOfConcern, COUNT ConcernCounter)
context: androsynth_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter)PELEMENT ShipPtr;PEVALUATE_DESC ObjectsOfConcern;COUNT ConcernCounter;{	PEVALUATE_DESC lpEvalDesc;	STARSHIPPTR StarShipPtr;	GetElementStarShip (ShipPtr, &StarShipPtr);	lpEvalDesc = &ObjectsOfConcern[ENEMY_WEAPON_INDEX];				/* in blazer form */	if (ShipPtr->next.image.farray == StarShipPtr->RaceDescPtr->ship_data.special)	{		ObjectsOfConcern[CREW_OBJECT_INDEX].ObjectPtr = 0;		if (lpEvalDesc->ObjectPtr && lpEvalDesc->MoveState == ENTICE)		{			if ((lpEvalDesc->ObjectPtr->state_flags & FINITE_LIFE)					&& !(lpEvalDesc->ObjectPtr->state_flags & CREW_OBJECT))				lpEvalDesc->MoveState = AVOID;			else				lpEvalDesc->ObjectPtr = 0;		}		ship_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter);	}	else	{		STARSHIPPTR pEnemyStarShip;		lpEvalDesc = &ObjectsOfConcern[ENEMY_SHIP_INDEX];		if (lpEvalDesc->ObjectPtr)		{			GetElementStarShip (lpEvalDesc->ObjectPtr, &pEnemyStarShip);			if (lpEvalDesc->which_turn <= 16					&& (StarShipPtr->special_counter > 0					|| StarShipPtr->RaceDescPtr->ship_info.energy_level < MAX_ENERGY / 3					|| ((WEAPON_RANGE (&pEnemyStarShip->RaceDescPtr->cyborg_control) <= CLOSE_RANGE_WEAPON					&& lpEvalDesc->ObjectPtr->crew_level > BLAZER_DAMAGE)					|| (lpEvalDesc->ObjectPtr->crew_level > (BYTE)(BLAZER_DAMAGE * 3)					&& MANEUVERABILITY (&pEnemyStarShip->RaceDescPtr->cyborg_control) > SLOW_SHIP))))				lpEvalDesc->MoveState = ENTICE;		}		ship_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter);		if (StarShipPtr->special_counter == 0)		{			StarShipPtr->ship_input_state &= ~SPECIAL;			if ((ObjectsOfConcern[ENEMY_WEAPON_INDEX].ObjectPtr					&& ObjectsOfConcern[ENEMY_WEAPON_INDEX].which_turn <= 4)					|| (lpEvalDesc->ObjectPtr					&& StarShipPtr->RaceDescPtr->ship_info.energy_level >= MAX_ENERGY / 3					&& (WEAPON_RANGE (&pEnemyStarShip->RaceDescPtr->cyborg_control) >=					WEAPON_RANGE (&StarShipPtr->RaceDescPtr->cyborg_control) << 1					|| (lpEvalDesc->which_turn < 16					&& (WEAPON_RANGE (&pEnemyStarShip->RaceDescPtr->cyborg_control) > CLOSE_RANGE_WEAPON					|| lpEvalDesc->ObjectPtr->crew_level <= BLAZER_DAMAGE)					&& (lpEvalDesc->ObjectPtr->crew_level <= (BYTE)(BLAZER_DAMAGE * 3)					|| MANEUVERABILITY (&pEnemyStarShip->RaceDescPtr->cyborg_control) <=					SLOW_SHIP)))))				StarShipPtr->ship_input_state |= SPECIAL;		}		if (!(StarShipPtr->ship_input_state & SPECIAL)				&& StarShipPtr->weapon_counter == 0				&& lpEvalDesc->ObjectPtr)		{			if (lpEvalDesc->which_turn <= 4)				StarShipPtr->ship_input_state |= WEAPON;			else if (lpEvalDesc->MoveState != PURSUE					&& lpEvalDesc->which_turn <= 12)			{				COUNT travel_facing, direction_facing;				SIZE delta_x, delta_y,							ship_delta_x, ship_delta_y,							other_delta_x, other_delta_y;				GetCurrentVelocityComponents (&ShipPtr->velocity,						&ship_delta_x, &ship_delta_y);				GetCurrentVelocityComponents (&lpEvalDesc->ObjectPtr->velocity,						&other_delta_x, &other_delta_y);				delta_x = ship_delta_x - other_delta_x;				delta_y = ship_delta_y - other_delta_y;				travel_facing = ARCTAN (delta_x, delta_y);				delta_x =						lpEvalDesc->ObjectPtr->next.location.x -						ShipPtr->next.location.x;				delta_y =						lpEvalDesc->ObjectPtr->next.location.y -						ShipPtr->next.location.y;				direction_facing = ARCTAN (delta_x, delta_y);				if (NORMALIZE_ANGLE (travel_facing						- direction_facing + OCTANT) <= QUADRANT)					StarShipPtr->ship_input_state |= WEAPON;			}		}	}}