; Doctrine For Reinforce Alert  SS-N-19 LAM Ver.

var Homing
var Runout
var InitX
var InitY
var Run
var Drowned
VAR FIRST
VAR TEMP
VAR FX
VAR FY
VAR FS
VAR DELTA
VAR TALT
VAR TRNG
VAR TX
VAR TY
VAR TALT
var ttt
IF INIT THEN {
FS = 1
initX = OwnX
initY = OwnY
Homing = 0
Drowned = 0
Runout = -1
FIRST = 1
} ELSE {
if FIRST THEN {
FIRST = 0
FX = WayPtX
FY = WayPtY
ttt = ( time + 10 )
} ENDIF
if ownalt > 0 then {
if ttt > time then { SetPriority 250 SetAlt 32800 } endif
SetPriority 250 SetSpd MaxSpd
} endif
IF NOT HOMING THEN {
SETPRIORITY 250 steerxy ( Fx - ownx ) ( Fy - owny )
TEMP = xyrng ( OwnX - FX ) ( OwnY - FY )
IF TERRAINALT < 0 THEN { TALT = 0 } ELSE { TALT = TERRAINALT } ENDIF
IF ( NOT FS ) AND ( ( OWNALT - TALT ) < 900 ) THEN { DEBUGOUT "!" DETONATE } ENDIF
} ELSE { TEMP = TRNG } ENDIF
IF FS THEN {
IF TEMP < 8000 THEN { FS = 0 ENABLE } ENDIF
} ELSEif ownalt > 0 then {
DELTA = ( TALT - OWNALT + 300 )
temp = XYBRG ABS DELTA ( temp * 3.28 )
if DELTA < 0 then { temp = ( -1 * temp ) } endif
SETPRIORITY 252 SetSpd MaxSpd
SETPRIORITY 252 SETPITCH TEMP
} ENDIF
IF NEWTRACK THEN {
TEMP = xyrng ( TGTX - FX ) ( TGTY - FY )
IF TEMP < 500 THEN { SETTACTIC "T_H19LAM" } ENDIF
} ENDIF
run = xyrng ( OwnX - initX ) ( OwnY - initY )
IF ( OwnAlt > 0 ) THEN { Drowned = 1 } ELSEIF ( OWnAlt < -20 ) AND ( Drowned == 1 ) THEN { Shutdown } ENDIF
IF ( ( Runout != -1 ) AND ( run >= Runout ) ) THEN { RunOut = -1 Shutdown } ENDIF
IF LOSTTRACK THEN { Homing = 0 } endif
} ENDIF