/* Script Rexx
	Make Star
*/

	call addlib("rexxmathlib.library", 5, -30, 0)

	options results
  parse ARG Port x1 y1 r b

	r2=r/3
	Pi=3.1415926/180

	ADDRESS COMMAND
	sens=0
	s0=3
	if EXISTS('PerfectPaint:Prefs/Rexx_Prefs/Star') THEN DO
		IF OPEN('lfile','PerfectPaint:Prefs/Rexx_Prefs/Star', "R") then DO
			s0 = READLN('lfile')
			sens = READLN('lfile')
			CALL CLOSE('lfile')
		END
	END

	ADDRESS value Port
	pp_DialogInit 250 85 "*Star*" 2
		pp_Integer 0 110 5 50 16 "Number*of*Point*" 1 s0
		pp_Cycle 1 110 25 100 16 "Option" 1 "Filled|Unfilled" sens
	pp_Dialog
	rc=result
	if rc=0 then
		do
			EXIT
		end		
		
	pp_GetDialog 0
	s0=result

	pp_GetDialog 1
	sens=result

	CALL SavePrefs('Star',s0,sens)
	ADDRESS value Port

	pp_UpdateUndo

	a=360/s0
	a2=a/2

	pp_StartPoly

  DO i=0 To 359 by a

  	x = Sin(i*Pi)*r+x1
    y = Cos(i*Pi)*r+y1
		
		ii=i+a2
  	x2 = Sin(ii*Pi)*r2+x1
    y2 = Cos(ii*Pi)*r2+y1

		ii=i-a2
  	x3 = Sin(ii*Pi)*r2+x1
    y3 = Cos(ii*Pi)*r2+y1
		
		pp_AddPoly trunc(x3) trunc(y3)
		pp_AddPoly trunc(x) trunc(y)
		pp_AddPoly trunc(x2) trunc(y2)		
		
	END

		IF sens=1 then DO
			pp_EndPoly
		END
		ELSE DO
			pp_EndPolyF
		END

EXIT

SavePrefs: PROCEDURE
	
	Prefname='PerfectPaint:Prefs/Rexx_Prefs/'||ARG(1)

	if EXISTS(Prefname) THEN DO
		ADDRESS COMMAND
		'delete >nil: '||Prefname
	END

	IF OPEN('pfile',PrefName,'W') THEN DO

	do i=2 to ARG()
		CALL WRITELN('pfile',ARG(i))
	end

	CALL CLOSE('pfile')

RETURN