REM Provide an interactive menu for AddSprites

ON ERROR:ON ERROR OFF:ERROR ERR,REPORT$+" at "+STR$ ERL
SYS "OS_GetEnv" TO in$
IF INSTR(in$,"Control") THEN
  control%=TRUE:menu$="Control"
ELSE
  IF INSTR(in$,"Small") THEN
    control%=FALSE:menu$="""Small icons"""
  ELSE
    END
  ENDIF
ENDIF

buffer_size%=1024
DIM buffer% buffer_size%

Option%=FNswi_number("Director_Option")
Command%=FNswi_number("Director_Command")

SYS "Director_Menu",menu$+" AddSprSub -temp"
IF control% THEN
  var$=FNread("AddSprites$Control")
  IF var$<>"Off" SYS Option%,"On -tick" ELSE SYS Option%,"On"
    SYS Command%,"Unset AddSprites$Control"
  IF var$="Off" SYS Option%,"Off -tick" ELSE SYS Option%,"Off"
    SYS Command%,"Set AddSprites$Control Off"
ELSE
  var$=FNread("AddSprites$Small")
  IF var$="On" SYS Option%,"On -tick" ELSE SYS Option%,"On"
    SYS Command%,"Set AddSprites$Small On"
  IF var$="Off" SYS Option%,"Off -tick" ELSE SYS Option%,"Off"
    SYS Command%,"Set AddSprites$Small Off"
  IF var$<>"On" AND var$<>"Off" SYS Option%,"Filer -tick" ELSE SYS Option%,"Filer"
    SYS Command%,"Unset AddSprites$Small"
ENDIF
SYS "Director_EndMenu"

*Set Director$Menu AddSprSub

END

DEF FNread(a$)
LOCAL read%
  ?buffer%=13
  SYS "XOS_ReadVarVal",a$,buffer%,buffer_size%,0,3 TO ,,read%
  buffer%?read%=13
=$buffer%

DEF FNswi_number(name$)
LOCAL a%
  SYS "OS_SWINumberFromString",,name$ TO a%
=a%
