; Helo CTRL from FFG Player Control Advanced Doctrine /Reinforce Alert/ for v.1.41

var AcousticMode
var Arrival
var Delay
var DelayTakeOff
var GaugesOff
var GaugesOn
var HighAlt
var ITwX
var ITwY
var Lock
var MxSpd
var OpAlt
var OpSpd
var OpSpdM
var RadarMode
var SBS
var Starting
var StopOp
var TakeOff
var TimeINIT
var TOprt
var Tr1
var Transition
var TransitRng
VAR OWX
VAR OWY
VAR PROG
VAR ST
var REJIM
VAR TREJIM
VAR FATAKI
VAR FENG
var AutoAttack
VAR LMPX
VAR LMPY
VAR STOPPING
var F_UPR
var FIRST
var Variant
var INAIR
var Chaff
var Flare
var JamFC
var JamRad


IF INIT THEN {
	OpAlt = 300
	LMPX = ( OWNX + WayPtX )
	LMPY = ( OWNY + WayPtY )
	FENG = 0
	FATAKI = 1
	tr1 = True
	starting = true
	GaugesOn = -1
	GaugesOff = 0
	TimeINIT = ( TIME + 1 )
	Lock = 0
	Delay = 0
	ITwX = WayPtX
	ITwY = WayPtY
	TOprt = -1
	StopOp = -1
	AcousticMode = -1
	OWX = WayPtX
	OWY = WayPtY
	REJIM = 3
	TREJIM = 0
	PROG = 1
	HighAlt = ( MaxAlt * 3 )
	IF OwnName $= "KA-27 Helix -Player Ctrl-" THEN { MxSpd = 130 } ENDIF
	IF OwnName $= "MH-60R Seahawk -Player Ctrl-" THEN { MxSpd = 150 } ENDIF
	IF OwnName $= "NFH-90 -Player Ctrl-" THEN { MxSpd = 160 } ENDIF
	OPSPDM = ( MxSpd * 0.65 )
	OPSPD = OPSPDM
	IF TIME > 5 THEN { TACTICCENTER } ENDIF
	IF ( DBCMFlags & 1 ) == 1 THEN { Chaff = 1 } ENDIF
	IF ( DBCMFlags & 2 ) == 2 THEN { Flare = 1 } ENDIF
	IF ( DBCMFlags & 4 ) == 4 THEN { JamRad = 1 } ENDIF
	IF ( DBCMFlags & 16 ) == 16 THEN { JamFC = 1 } ENDIF
	SensorEnable "FCRadarJam" 0
	SensorEnable "RadarJam" 0
	FIRST = 1
} ELSE {
IF FIRST THEN {
	FIRST = 0
	PreEnable
	PassiveEnable
	DelayTakeOff = -1
IF TIME < 1 THEN {
	OpSpd = OwnSpd
	OpAlt = OwnAlt
	INAIR = 1
} endif
IF TIME > 5 THEN {
	DelayTakeOff = ( Time + 4 )
	} ENDIF
} ENDIF
IF ( Time <= DelayTakeOff ) Then {
	SETPRIORITY 255
	SetPersist 1
	SetSpd 0
	SetAlt 300 
} ELSE {
if ( WayPtX == 0 ) and ( WayPtY == 0 ) then { fataki = 0 } else { fataki = 1 } endif
IF ORDER $= "SEARCH" THEN {
	TransitRng = XYRNG ( LMPX - OwnX ) ( LMPY - OwnY )
} ELSE {
	TransitRng = XYRNG ( WayPtX - OwnX ) ( WayPtY - OwnY )
} ENDIF

if F_UPR then {
IF fataki THEN {
	IF ORDER $= "SEARCH" THEN {
		SetPriority 240 STEERXY ( LMPX - OWNX ) ( LMPY - OWNY )
		IF TRANSITRNG < 500 THEN { STOPPING = 1 } ENDIF
	} ELSE {
		SetPriority 240 STEERXY ( WayPtX - OWNX ) ( WayPtY - OWNY )
		IF TRANSITRNG < 500 THEN { LMPX = OWNX LMPY = OWNY } endif
	} ENDIF
} ENDIF
If RadarMode Then {
	SetPriority 242	SetAlt OpAlt
	SetPriority 242	SetSpd OpSpd
} ELSE {
	IF STOPPING and ( ORDER $= "SEARCH" ) THEN {
		SetPriority 250 SetSPD 2
		SetPriority 250 SetAlt 45
		IF OWNSPD < 7 THEN { STOPPING = 0 } ENDIF
	} ELSE {
		IF TOprt < TIME THEN {
			IF ORDER $= "ENGAGE" THEN {
				If TransitRng > 2000 Then {
					SetPriority 240 SetSPD MxSpd
					SetPriority 240 SetAlt OpAlt
				} ELSEIf TransitRng > 300 Then {
					SetPriority 240 SetSPD 80
					SetPriority 240 SetAlt ( OpAlt - 50 )
				} ENDIF
			} ELSE {
				If TransitRng > 1200 Then {
					SetPriority 240 SetSPD OpSpd
					SetPriority 240 SetAlt OpAlt
				} ELSEIf TransitRng > 550 THEN {
					SetPriority 240 SetSPD OPSPDM
					SetPriority 240 SetAlt OpAlt
				} endif
			} ENDIF
		} endif
	} ENDIF
	IF ( ORDER $= "MOVE" ) OR ( TOprt > TIME ) Then {
		If SBS Then {
			FENG = 1
			IF ( WayPtX == ITwX ) and ( WayPtY == ITwY ) then {
				Transition = 1
			} ELSE {
				If Arrival Then { Transition = 0 } ELSE { Transition = 1 } endif
			} endif
			IF Transition AND ( Arrival == 0 ) AND ( TransitRng < 500 ) AND ( StopOp == -1 ) AND ( GaugesOff == -1 ) THEN {
				TOprt = ( TIME + 80 )
				Arrival = 1
			} ENDIF

			IF TOprt != -1 THEN {
				IF TOprt > TIME THEN { SetPriority 240 SetAlt 45 SetPriority 240 SetSPD 2 } ELSE { TOprt = -1 StopOp = ( TIME + 20 ) } ENDIF
			} ENDIF

			IF StopOp > TIME THEN {
				Arrival = 0
				SetPriority 240	SetPersist 1 SetAlt OpAlt
				SetPriority 240	SetPersist 1 SetSPD OpSpd
			} ELSE { StopOp = -1 } ENDIF
		} ENDIF

	} ELSEIf FENG AND ( ORDER $= "ENGAGE" ) THEN {
		FENG = 0
		SetPriority 240 SetPersist 1 SetAlt OpAlt
		SetPriority 240 SetPersist 1 SetSPD OpSpd
		Arrival = 0
	} ENDIF
} ENDIF

IF ( GaugesOn != -1 ) And ( AcousticMode != 2 ) THEN {
	IF ( OwnAlt < 50 ) AND ( NOT TakeOff ) AND ( OwnSpd <= 5 ) THEN {
		SensorEnable "34" 1
		SensorEnable "38" 1
		SensorEnable "513" 1
		SensorEnable "514" 1
		SensorEnable "515" 1
		SensorEnable "561" 1
		SensorEnable "562" 1
		SensorEnable "563" 1
		SensorEnable "564" 1
		SensorEnable "565" 1
		SensorEnable "566" 1
		SensorEnable "567" 1
		SensorEnable "850" 1
		SensorEnable "851" 1
		SensorEnable "856" 1
		SensorEnable "857" 1
		SensorEnable "1644" 1
		SensorEnable "1651" 1
		SensorEnable "1655" 1
		SensorEnable "1656" 1
		Lock = 1
;		DebugOut OwnName
;		Debugout "ACT-PASS AKUSTIKA ON"
		GaugesOn = -1
		GaugesOff = 0 
	} ENDIF
} ENDIF

IF ( GaugesOff != -1 ) And ( AcousticMode != 2 ) THEN {
	IF ( OwnAlt > 50 ) OR ( OwnSpd > 5 ) THEN {
		SensorEnable "34" 0
		SensorEnable "38" 0
		SensorEnable "513" 0
		SensorEnable "514" 0
		SensorEnable "515" 0
		SensorEnable "561" 0
		SensorEnable "562" 0
		SensorEnable "563" 0
		SensorEnable "564" 0
		SensorEnable "565" 0
		SensorEnable "566" 0
		SensorEnable "567" 0
		SensorEnable "850" 0
		SensorEnable "851" 0
		SensorEnable "856" 0
		SensorEnable "857" 0
		SensorEnable "1644" 0
		SensorEnable "1651" 0
		SensorEnable "1655" 0
		SensorEnable "1656" 0
;		DebugOut OwnName
;		DebugOut "ACT-PASS AKUSTIKA OFF"
		Lock = 0
		GaugesOff = -1
		GaugesOn = 0
	} ENDIF
} ENDIF

IF ( GaugesOn != -1 ) And ( AcousticMode != 1 ) THEN {
	IF ( OwnAlt < 50 ) AND ( NOT TakeOff ) AND ( OwnSpd <= 5 ) THEN {
		SensorEnable "38" 1
		SensorEnable "561" 1
		SensorEnable "562" 1
		SensorEnable "563" 1
		SensorEnable "564" 1
		SensorEnable "565" 1
		SensorEnable "566" 1
		SensorEnable "567" 1
		SensorEnable "581" 1
		SensorEnable "582" 1
		SensorEnable "1655" 1
		Lock = 1
;		DebugOut OwnName
;		Debugout "PASS AKUSTIKA ON"
		GaugesOn = -1
		GaugesOff = 0 
	} ENDIF
} ENDIF

IF ( GaugesOff != -1 ) And ( AcousticMode != 1 ) THEN {
	IF ( OwnAlt > 50 ) OR ( OwnSpd > 5 ) THEN {
		SensorEnable "34" 0
		SensorEnable "38" 0
		SensorEnable "513" 0
		SensorEnable "514" 0
		SensorEnable "515" 0
		SensorEnable "561" 0
		SensorEnable "562" 0
		SensorEnable "563" 0
		SensorEnable "564" 0
		SensorEnable "565" 0
		SensorEnable "566" 0
		SensorEnable "567" 0
		SensorEnable "850" 0
		SensorEnable "851" 0
		SensorEnable "856" 0
		SensorEnable "857" 0
		SensorEnable "1655" 0
;		DebugOut OwnName
;		DebugOut "PASS AKUSTIKA OFF"
		Lock = 0
		GaugesOff = -1
		GaugesOn = 0
	} ENDIF
} ENDIF

IF ( Lock == 0 ) AND ( GaugesOff == -1 ) THEN { Delay += 1 } ENDIF
IF Delay > 2 THEN { Delay = 0 Lock = 1 } ENDIF
IF ( OwnSpd <= 10 ) AND NOT Starting THEN { SetAlt 45 } ENDIF
IF ( TIME > TimeINIT ) and Tr1 THEN { Tr1 = false starting = false } ENDIF
IF ( OwnSpd > 50 ) AND ( OwnAlt < 40 ) THEN { SetPriority 255 SetPersist 20 SetAlt 200 } ENDIF
} endif

IF FuelPercent <= 5 THEN { LAND } ENDIF
; ------------------------------------------------------
IF NEWTRACK AND ( TGTAGE == 0 ) THEN {
IF ( TgtClass $= "MISSILE" ) AND ( ( TgtMissileClass "AAM" ) OR ( TgtMissileClass "SAM" ) ) THEN {
SETTACTIC "AirEvadeMissile"
} ELSEIF ( TgtType $= "Sub" ) AND ( ( TgtID $= "UPD" ) OR ( TgtID $= "HOSTILE" ) ) AND AutoAttack THEN {
SETTACTIC "DipPingSonarAutoE"
} ELSEIF ( TgtType $= "Sub" ) AND ( ( TgtID $= "UPD" ) OR ( TgtID $= "HOSTILE" ) ) AND NOT AutoAttack THEN {
SETTACTIC "HELCTRF"
} ENDIF } ENDIF } ENDIF
; ------------------------------------------------------
IF fataki THEN {
IF PROG THEN {
	IF ( ( OWX != WayPtX ) OR ( OWY != WayPtY ) ) OR INAIR THEN {
		INAIR = 0
		F_UPR = 1
		ST += 1
	IF ( ORDER $= "ENGAGE" ) then {
		IF ST == 2 THEN { TREJIM += 8
		} ELSEIF ST == 4 THEN { TREJIM += 4
		} ELSEIF ST == 6 THEN { TREJIM += 2
		} ELSEIF ST == 8 THEN { TREJIM += 1
		} ENDIF
	} endif
} ENDIF
IF ST == 8 THEN {
	PROG = 0
	REJIM = TREJIM
	IF REJIM == 0	Then	{ OpSpd = MxSpd	RadarMode = 0 SBS = 0 OpAlt = 300	AcousticMode = 1 AutoAttack = 0 Variant = "W-W-W-W"
} ELSEIF REJIM == 1	Then	{ OpSpd = MxSpd	RadarMode = 0 SBS = 1 OpAlt = 300	AcousticMode = 1 AutoAttack = 0 Variant = "W-W-W-T"
} ELSEIF REJIM == 2	Then	{ OpSpd = MxSpd	RadarMode = 0 SBS = 0 OpAlt = 300	AcousticMode = 2 AutoAttack = 0 Variant = "W-W-T-W"
} ELSEIF REJIM == 3	Then	{ OpSpd = MxSpd	RadarMode = 0 SBS = 1 OpAlt = 300	AcousticMode = 2 AutoAttack = 0 Variant = "W-W-T-T"
} ELSEIF REJIM == 15	Then	{ OpSpd = 40	RadarMode = 1 SBS = 0 OpAlt = HighAlt	AcousticMode = -1 AutoAttack = 0 Variant = "T-T-T-T"
} ELSEIF REJIM == 14	Then	{ OpSpd = 50	RadarMode = 1 SBS = 0 OpAlt = 6560	AcousticMode = -1 AutoAttack = 0 Variant = "T-T-T-W"
} ELSEIF REJIM == 13	Then	{ OpSpd = 60	RadarMode = 1 SBS = 0 OpAlt = 3280	AcousticMode = -1 AutoAttack = 0 Variant = "T-T-W-T"
} ELSEIF REJIM == 12	Then	{ OpSpd = 65	RadarMode = 1 SBS = 0 OpAlt = 1640	AcousticMode = -1 AutoAttack = 0 Variant = "T-T-W-W"
} ELSEIF REJIM == 4	Then	{ OpSpd = MxSpd	RadarMode = 0 SBS = 0 OpAlt = 300	AcousticMode = 1 AutoAttack = 1 Variant = "W-T-W-W"
} ELSEIF REJIM == 5	Then	{ OpSpd = MxSpd	RadarMode = 0 SBS = 1 OpAlt = 300	AcousticMode = 1 AutoAttack = 1 Variant = "W-T-W-T"
} ELSEIF REJIM == 6	Then	{ OpSpd = MxSpd	RadarMode = 0 SBS = 0 OpAlt = 300	AcousticMode = 2 AutoAttack = 1 Variant = "W-T-T-W"
} ELSEIF REJIM == 7	Then	{ OpSpd = MxSpd	RadarMode = 0 SBS = 1 OpAlt = 300	AcousticMode = 2 AutoAttack = 1 Variant = "W-T-T-T"
} ELSEIF REJIM == 11	Then	{ OpSpd = MxSpd	RadarMode = 1 SBS = 0 OpAlt = HighAlt	AcousticMode = -1 AutoAttack = 0 Variant = "T-W-T-T"
} ELSEIF REJIM == 10	Then	{ OpSpd = MxSpd	RadarMode = 1 SBS = 0 OpAlt = 6560	AcousticMode = -1 AutoAttack = 0 Variant = "T-W-T-W"
} ELSEIF REJIM == 9	Then	{ OpSpd = MxSpd	RadarMode = 1 SBS = 0 OpAlt = 3280	AcousticMode = -1 AutoAttack = 0 Variant = "T-W-W-T"
} ELSEIF REJIM == 8	Then	{ OpSpd = MxSpd	RadarMode = 1 SBS = 0 OpAlt = 1640	AcousticMode = -1 AutoAttack = 0 Variant = "T-W-W-W"
} ENDIF
	} ENDIF
} ENDIF
; DebugOut Variant
IF ( ITwX != WayPtX ) AND ( ITwY != WayPtY ) THEN {
	IF 380000 < TransitRng THEN {
		PROG = 1
		ST = 0
		TREJIM = 0
	} ENDIF
} ENDIF
	OWX = WayPtX
	OWY = WayPtY
} ENDIF
} ENDIF
