rem: druuge_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter) PELEMENT ShipPtr; PEVALUATE_DESC ObjectsOfConcern; COUNT ConcernCounter;
add: druuge_intelligence (PELEMENT ShipPtr, PEVALUATE_DESC ObjectsOfConcern, COUNT ConcernCounter)
context: druuge_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter)PELEMENT ShipPtr;PEVALUATE_DESC ObjectsOfConcern;COUNT ConcernCounter;{	UWORD ship_flags;	STARSHIPPTR StarShipPtr, EnemyStarShipPtr;	PEVALUATE_DESC lpEvalDesc;	GetElementStarShip (ShipPtr, &StarShipPtr);	ship_flags = 0;	lpEvalDesc = &ObjectsOfConcern[ENEMY_SHIP_INDEX];	if (StarShipPtr->cur_status_flags & SHIP_BEYOND_MAX_SPEED)		lpEvalDesc->MoveState = ENTICE;	else if (lpEvalDesc->ObjectPtr			&& lpEvalDesc->which_turn <= WORLD_TO_TURN (MISSILE_RANGE * 3 / 4))	{		GetElementStarShip (lpEvalDesc->ObjectPtr, &EnemyStarShipPtr);		ship_flags = EnemyStarShipPtr->RaceDescPtr->ship_info.ship_flags;		EnemyStarShipPtr->RaceDescPtr->ship_info.ship_flags &=				~(FIRES_FORE | FIRES_RIGHT | FIRES_AFT | FIRES_LEFT);		lpEvalDesc->MoveState = PURSUE;		if (ShipPtr->thrust_wait == 0)			++ShipPtr->thrust_wait;	}	ship_intelligence (ShipPtr, ObjectsOfConcern, ConcernCounter);	if (ship_flags)	{		EnemyStarShipPtr->RaceDescPtr->ship_info.ship_flags = ship_flags;	}	if (!(StarShipPtr->cur_status_flags & SHIP_BEYOND_MAX_SPEED)			&& (lpEvalDesc->which_turn <= 12			|| (			ObjectsOfConcern[ENEMY_WEAPON_INDEX].ObjectPtr			&& ObjectsOfConcern[ENEMY_WEAPON_INDEX].which_turn <= 6			)))	{		 StarShipPtr->ship_input_state |= WEAPON;		 if (ShipPtr->thrust_wait < WEAPON_WAIT + 1)			ShipPtr->thrust_wait = WEAPON_WAIT + 1;	}	if ((StarShipPtr->ship_input_state & WEAPON)			&& StarShipPtr->RaceDescPtr->ship_info.energy_level < WEAPON_ENERGY_COST			&& ShipPtr->crew_level > 1)		StarShipPtr->ship_input_state |= SPECIAL;	else		StarShipPtr->ship_input_state &= ~SPECIAL;}