; AIM-9 Sidewinder User Control Doctrine
; for ver. 1.41

var PreenableCourse
var RunToEnable
var Runout
var Homing
var lastX
var lastY
var run

IF INIT THEN {
Homing = 0
lastX = OwnX
lastY = OwnY
RunToEnable = 250
Runout = -1
} ELSEIF ( Runout != -1 ) AND ( run >= Runout ) THEN {
	Runout = -1
	SHUTDOWN
} ELSE {
	SetSpd MaxSpd
	run = xyrng ( OwnX - LastX ) ( OwnY - LastY )
	IF NOT Homing THEN {
	SetPerSist 1
	SetCrs PreenableCourse
	} ENDIF
	
	IF RunToEnable != -1 THEN {
		IF run >= RunToEnable THEN {
		SetPriority 255
		SensorEnable "Wep IR" 1
		RunToEnable = -1
		RunOut = 18000
		} ENDIF
	} ENDIF

	IF NEWTRACK and ( TgtSource $= "Infrared" ) THEN {
		Homing += 1
		IF ( TgtType $= "CM" ) Then {
		SetTactic "SAM_Home_CM"
		} ELSE {
		SetTactic "terminal_home"
		} ENDIF
	} ENDIF

} ELSEIF NEWTRACK and ( TgtSource $= "VISUAL" ) THEN {
	Drop
} ENDIF

IF LOSTTRACK THEN {
	Homing -= 1
		If ( Homing < 0 ) Then { Homing = 0 } Endif
	} ENDIF
