setvar $FILE "C:\TWX\123.txt"
DELETE $FILE

setvar $IDX 	1
setarray $GRID	SECTORS

Echo ANSI_7 & "**Checking Map..."
:_NOT_WHILE_
If ($IDX <= SECTORS)
	if (SECTOR.WARPCOUNT[$IDX] < 1)
		#	Try updating CIM.
		Echo ANSI_15 & "*Complete ZTM is required.**"
		halt
	end
	setvar $F 0
	getsectorparameter $IDX "FIGSEC" $F
	if ($F <> "0")
		setvar $GRID[$IDX] TRUE
	end

	add $IDX 1
	goto :_NOT_WHILE_
end

Echo ANSI_10 & " OTAY!**"

setvar $IDX 11
setvar $COUNT 0

Echo ANSI_15 & "**JUMP     DeadEnd                            PATH*"
gosub :LINE

while ($IDX <= SECTORS)
	if (Sector.Warpincount[$IDX] = 1) AND ($GRID[$IDX] = FALSE)
		gosub :NEAREST_FIG
		if ($RESULT <> "-1")
			getdistance $D $RESULT $IDX
			if ($D > "5")
				add $COUNT 1

				setvar $SECT $RESULT
				gosub :PAD
				Echo "*" & ANSI_15 & $PAD & $RESULT & ANSI_7 & " --> "

				setvar $SECT $IDX
				gosub :PAD
				Echo ANSI_15 & $PAD & $IDX & ANSI_6 & ","

				GetCourse $PATH $RESULT $IDX
				setvar $PTR 1
				while ($PTR <= $PATH)
					setvar $GRID[$PATH[$PTR]] TRUE
					setvar $SECT $PATH[$PTR]
					Gosub :PAD
					echo ANSI_14 & " " & $PAD & $PATH[$PTR]
					add $PTR 1
				end
				WRITE $FILE $IDX
			end
			goto :_NEXT_
		end
	end
	:_NEXT_
	add $IDX 1
end

Echo "*"
Gosub :Line

Echo ANSI_15 & "*Results Found: " & $COUNT
Echo ANSI_15 & "*      Written: " & $FILE
Echo "**"
halt

:NEAREST_FIG
	#Taken from RammeRs Twarp Gridder, slightly modified. Base on EP's Breadth routine.
	setArray $fig_que SECTORS
	setArray $fig_Flagged SECTORS
	setVar $near_fig_start $IDX
	setVar $fig_bottom 1
	setVar $fig_top 1
	setVar $fig_que[1] $near_fig_start
	setVar $fig_flagged[$near_fig_start] 1
	while ($fig_bottom <= $fig_top)
		setVar $fig_focus $fig_que[$fig_bottom]
		setVar $a 1
		while ($a <= SECTOR.WARPINCOUNT[$fig_focus])
			setVar $adj_fig_test SECTOR.WARPSIN[$fig_Focus][$a]
			if ($fig_flagged[$adj_fig_test] = 0)
				if ($GRID[$adj_fig_test] = 1)
					setVar $result $adj_fig_test
					return
				end
				setVar $fig_flagged[$adj_fig_test] 1
				add $fig_top 1
				setVar $fig_que[$fig_top] $adj_fig_test
			end
			add $a 1
		end
		add $fig_bottom 1
	end
	setVar $result "-1"
	return


:PAD
	if ($SECT < 10)
		setVar $PAD "    "
	elseif ($SECT < 100)
		setVar $PAD "   "
	elseif ($SECT < 1000)
		setVar $PAD "  "
	elseif ($SECT < 10000)
		setVar $PAD " "
	else
		setVar $PAD ""
	end
	return

:LINE
Echo ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" & ANSI_14 & "=" & ANSI_6 & "-"
Echo ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" & ANSI_14 & "=" & ANSI_6 & "-"
Echo ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" & ANSI_14 & "=" & ANSI_6 & "-"
Echo ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" & ANSI_14 & "=" & ANSI_6 & "-"
Echo ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" & ANSI_14 & "=" & ANSI_6 & "-"
Echo ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" & ANSI_14 & "=" & ANSI_6 & "-"
Echo ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" & ANSI_14 & "=" & ANSI_6 & "-"
Echo ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" & ANSI_14 & "=" & ANSI_6 & "-"
Echo ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" &ANSI_14 & "=" & ANSI_6 & "-" & ANSI_14 & "=" & ANSI_6 & "-"
return
