; -RA- Addon Doctrine v 1.41

var PreenableCourse
var RunToEnable
var Runout
var initX
var initY
var run
var Drowned
var Preset
var FirstTrek
VAR AltCruise
var TX
VAR TY
var talt
var temp
var Delta
var LAlt
var CLG

IF INIT THEN {
	Preset = 1
	FirstTrek = 1
	initX = OwnX
	initY = OwnY
	RunToEnable = 100
	Runout = -1
	Drowned = 0
	AltCruise = OWNALT
	PreenableCourse = OWNCRS
	
} elseIF ( Runout != -1 ) AND ( run >= Runout ) THEN {
	Runout = -1
	SHUTDOWN
} elseIF OwnAlt < 0 THEN {
	shutdown
} elseIF ( TERRAINALT >= 0 ) AND ( TERRAINALT >= OWNALT ) THEN {
detonate
} ELSE {

IF PRESET THEN {
	IF ( ( OwnName $= "Hellfire-II ASM" ) OR ( OwnName $= "Hellfire-II" ) OR ( OwnName $= "9M120 ATAKA" ) OR ( OwnName $= "ATAKA AI" ) OR ( OwnName $= "Red Arrow-9 ATGM" ) ) THEN {
		LAlt = 1
		CLG = ( ownalt + 1640 )
	} ENDIF
	PRESET = 0
	ENABLE
} ENDIF
run = xyrng ( OwnX - initX ) ( OwnY - initY )
IF NEWTRACK AND FirstTrek THEN { 
	FirstTrek = 0
	SetTactic "M_Beam_TH"
} ENDIF
; Cruise
IF FirstTrek THEN {
	SETPRIORITY 247	SetCrs PreenableCourse
	SETPRIORITY 247	SetAlt AltCruise
} else {
;	DEBUGOUT "Beam Guide"
	temp = XYRng ( tx - ownx ) ( ty - owny )
	if temp > 750 then {
		SETPRIORITY 250 steerxy ( tx - ownx ) ( ty - owny )
		if talt < -1 then {
			DELTA = ( 10 - OWNALT )
		} else {
			if LAlt and ( TALT > CLG ) then {
				DELTA = ( CLG - OWNALT )
			} else {
				DELTA = ( TALT + 30 - OWNALT )
			} endif
		} endif
		temp = XYBRG ABS DELTA ( temp * 3.28 )
		if DELTA < 0 then { temp = ( -1 * temp ) } endif
		SETPRIORITY 252 SETPITCH TEMP
		SETPRIORITY 252 SetSpd MaxSpd
	} endif
} ENDIF
SETPRIORITY 252 SetSpd MaxSpd
} ENDIF