; MUI_CD_Player Installer script

(procedure P_DEVICEINFO
  (cat #dev (getenv "TSTDEV_DEVICE") "\n" 
       #unit (getenv "TSTDEV_UNIT") "\n"
       #devtype (getenv "TSTDEV_DEVICETYPE") "\n"
       #commandset (getenv "TSTDEV_COMMANDSET") "\n"
       #vendor (getenv "TSTDEV_VENDOR") "\n"
       #product (getenv "TSTDEV_PRODUCT") "\n"
       #revision (getenv "TSTDEV_REVISION")
  )
)

(procedure P_FINDBYVOLUME #userlevel
  (if (= #userlevel 0)
    (set #ret (run "testdevice CD0: volume setvar"))
    (set #ret (run (cat "testdevice " (askstring (prompt #entercdname) (help @askstring-help) (default "CD0:")) " volume setvar")))
  )

  (if (= #ret 0)
    (if (= (getenv "TSTDEV_DEVICETYPE") "CD-ROM")
      (if (< #userlevel 2)
        (set #goon 1)
        (set #goon 
          (askbool 
            (prompt
              (cat #found "\n\n" (P_DEVICEINFO) "\n\n\n" #isok)
            )
            (help @askbool-help)
            (default 1)
          )
        )
      )  
      (if (= #userlevel 0)
        (set #goon 0)
        (set #goon
          (askbool 
            (prompt
              (cat #foundnotcd "\n\n" (P_DEVICEINFO) "\n\n\n" #isok)
            )
            (help @askbool-help)
            (default 1)
          )
        )  
      )
    )
    ((set #goon 0) (message #notfound (all)))
  )
)

(procedure P_FINDBYDEVICE
  (
    (set #name
      (cat "testdevice NAME=" 
        (askstring (prompt #findbydev) (help @askstring-help)
        (default "atapi.device"))
        " "
        (askstring (prompt #unitnum) (help @askstring-help)
        (default ""))
        " setvar"
      )
    )
    (working #search)
    (set #ret (run #name))
    (if (= #ret 0)
      (if (< @user-level 2)
        (set #goon 1)
        (set #goon 
          (askbool 
            (prompt
              (cat #found "\n\n" (P_DEVICEINFO) "\n\n\n" #isok)
            )
            (help @askbool-help)
            (default 1)
          )
        )  
      )
      (set #goon 0)
    )
  )
)

(procedure P_CONFIGURECD
  (working #search)

  (P_FINDBYVOLUME @user-level)

  (if (= #goon 0)
    (if (= @user-level 0)
      (P_FINDBYVOLUME 1)
    )
  )

  (if (= #goon 0)
    (P_FINDBYDEVICE)
  )

  (if (= #goon 0) (abort #notfound))
  
  (tooltype
    (dest (tackon @default-dest "MUI_CD_Player"))
    (settooltype "DEVICE" (getenv "TSTDEV_DEVICE"))
    (settooltype "UNIT" (getenv "TSTDEV_UNIT"))
    (settooltype "LIBRARY"
      (if (= (getenv "TSTDEV_COMMANDSET") "CD32") "CDPlayers/cddevplay.library" "CDPlayers/atapiplay.library")
    )
  )
)

(procedure P_COPYICON #filename
  (if (exists (tackon @default-dest #filename))
    (if (NOT (exists (tackon @default-dest (cat #filename ".info"))))
      (copyfiles
        (prompt #copying)
        (source (cat #filename ".info"))
        (dest @default-dest)
        (help @copyfiles-help)
      )
    )
  )
)

(procedure P_COPYDIR #directory
  (copyfiles
    (prompt #copying)
    (source #directory)
    (all)
    (dest (tackon @default-dest #directory))
    (help @copyfiles-help)
  )
)

(procedure P_COPYPLAYER #player
  (copylib
    (prompt #copying)
    (source (tackon "CDPlayers/" #player))
    (dest (tackon @default-dest "CDPlayers"))
    (help @copylib-help)
    (if (= @user-level 2) (confirm))
  )
)

(procedure P_MAKEDIR #directory
  (if (NOT (exists (tackon @default-dest #directory)))
    (makedir (tackon @default-dest #directory))
  )
)

(welcome)

(set #language 
  (if (= @language "polski") 1 
    (if (= @language "deutsch") 2 0
    )
  )
)

(select #language
  (
    (set #search "Searching for CD-ROM...")
    (set #found "Found a CD-ROM drive:")
    (set #dev "Device: ")
    (set #unit "Unit: ")
    (set #vendor "Vendor: ")
    (set #product "Product: ")
    (set #revision "Revision: ")
    (set #devtype "Device type: ")
    (set #commandset "Command set: ")
    (set #foundnotcd "Found a device which is probably not a CD-ROM:")
    (set #isok "Use this device ?")
    (set #notfound "Could not find a CD-ROM")
    (set #entercdname "Enter the name of your CD-ROM\n(eg. CD0, CD1, CDR etc.)")
    (set #findbydev "Let's try to find the CD-ROM differently.\nEnter the device name:")
    (set #unitnum "Enter unit number:\n(or leave it empty if you don't know the number)")

    (set #askdir "Select where MUI_CD_Player drawer should be created")
    (set #installprompt "Please confirm if you'd like to install these")
    (set #eng "English guide")
    (set #pol "Polish locale & guide")
    (set #ger "German locale & guide")
    (set #cds "Additional CDs in text files")
    (set #copying "Copying files...")
    (set #imagebutprompt "Which image buttons would you like to install ?")
    (set #smbw "small, black&white")
    (set #smcol "small, 16 colors")
    (set #bgbw "big, black&white")
    (set #bgcol "big, 16 colors")
    (set #askconf "Would you like to configure your CD-ROM now ?")
  )
  (
    (set #search "Szukam CD-ROMu...")
    (set #found "Znalazīem CD-ROM:")
    (set #dev "Urzādzenie: ")
    (set #unit "Nr: ")
    (set #vendor "Producent: ")
    (set #product "Produkt: ")
    (set #revision "Wersja: ")
    (set #devtype "Typ urzādzenia: ")
    (set #commandset "Zestaw komend: ")
    (set #foundnotcd "Znalazīem urzādzenie, które prawdopodobnie nie jest CD-ROMem:")
    (set #isok "Czy mam uūyź tych danych ?")
    (set #notfound "Nie mogė znaleśź CD-ROMu")
    (set #entercdname "Wpisz nazwė CD-ROMu\(czyli np. CD0, CD1, CDR itp.)")
    (set #findbydev "Spróbujmy znaleśź CD-ROM w inny sposób.\nWpisz nazwė urzādzenia:")
    (set #unitnum "Wpisz numer urzādzenia:\n(albo pozostaw to pole puste jeōli nie znasz numeru)")

    (set #askdir "Wskaū miejsce gdzie mam utworzyź katalog MUI_CD_Player")
    (set #installprompt "Proszė zaznaczyź co chciaībyō zainstalowaź")
    (set #eng "Angielskā dokumentacjė")
    (set #pol "Polskā dokumentacjė i locale")
    (set #ger "Niemieckā dokumentacjė i locale")
    (set #cds "Dodatkowe kompakty w plikach tekstowych")
    (set #copying "Kopiujė pliki...")
    (set #imagebutprompt "Jakie przyciski chciaībyō zainstalowaź ?")
    (set #smbw "maīe, czarno-biaīe")
    (set #smcol "maīe, 16 kolorów")
    (set #bgbw "duūe, czarno-biaīe")
    (set #bgcol "duūe, 16 kolorów")
    (set #askconf "Czy chciaībyō teraz skonfigurowaź Twój CD-ROM ?")
  )
  (
    (set #search "Suche nach einem CD-ROM...")
    (set #found "Es wurde ein CD-ROM Laufwerk gefunden:")
    (set #dev "Device: ")
    (set #unit "Unit: ")
    (set #vendor "Hersteller: ")
    (set #product "Produkt: ")
    (set #revision "Revision: ")
    (set #devtype "Geräte-Typ: ")
    (set #commandset "Befehlssatz: ")
    (set #foundnotcd "Es wurde ein Gerät gefunden, das vermutlich kein CD-ROM ist:")
    (set #isok "Dieses Gerät verwenden?")
    (set #notfound "Ein CD-ROM konnte nicht gefunden werden")
    (set #entercdname "Geben Sie den Namen Ihres CD-ROM ein\n(z.B. CD0, CD1, CDR etc.)")
    (set #findbydev "Wir versuchen jetzt, das CD-ROM auf eine andere Weise zu finden.\nGeben Sie den Device-Namen ein:")
    (set #unitnum "Geben Sie die Unit-Nummer ein:\n(oder lassen Sie das Feld leer, falls Sie die Nummer nicht wissen)")

    (set #askdir "Wählen Sie, wo die MUI_CD_Player-Schublage erzeugt werden soll")
    (set #installprompt "Please confirm if you'd like to install these")
    (set #eng "Englische Anleitung")
    (set #pol "Polnische Übersetzung und Anleitung")
    (set #ger "Deutsche Übersetzung und Anleitung")
    (set #cds "Zusätzliche CDs in Text-Dateien")
    (set #copying "Kopiere Dateien...")
    (set #imagebutprompt "Welche Symbole für die Knöpfe möchten Sie installieren?")
    (set #smbw "klein, schwarz und weiß")
    (set #smcol "klein, 16-farbig")
    (set #bgbw "groß, schwarz und weiß")
    (set #bgcol "groß, 16-farbig")
    (set #askconf "Möchten Sie MUI CD jetzt für Ihr CD-ROM konfigurieren?")
  )
)


(if (> @user-level 0)
  (set #destdir
    (askdir
      (prompt #askdir)
      (help @askdir-help)
      (default @default-dest)
    )
  )
  (set #destdir @default-dest)
)

(P_MAKEDIR "MUI_CD_Player")
(if (NOT (exists (tackon @default-dest "MUI_CD_Player.info")))
  (copyfiles
    (prompt #copying)
    (source "/MUI_CD_Player.info")
    (dest @default-dest)
    (help @copyfiles-help)
  )
)

(set @default-dest (tackon #destdir "MUI_CD_Player"))

(P_MAKEDIR "Programs")
(P_MAKEDIR "Disks")
(P_MAKEDIR "Images")
(P_MAKEDIR "Catalogs")

(set opts
  (if (> @user-level 0)
    (askoptions
      (prompt #installprompt)
      (help @askoptions-help)
      (choices #eng #pol #ger #cds)
      (default (BITOR (shiftleft 1 #language) 9))
    )
    (BITOR (shiftleft 1 #language) 9)
  )
)

(set opts2
  (if (> @user-level 0)
    (askoptions
      (prompt #imagebutprompt)
      (help @askoptions-help)
      (choices #smbw #smcol #bgbw #bgcol)
      (default 15)
    )
    15
  )
)

(if (IN opts 0)
  (copyfiles
    (prompt #copying)
    (source "MUI_CD_Player.guide")
    (dest @default-dest)
    (help @copyfiles-help)
    (infos)
  )
)

(if (IN opts 1)
  (
    (copyfiles
      (prompt #copying)
      (source "MUI_CD_Player.pl.guide")
      (dest @default-dest)
      (help @copyfiles-help)
      (infos)
    )
    (P_COPYDIR "catalogs/polski")
  )
)

(if (IN opts 2)
  (
    (copyfiles
      (prompt #copying)
      (source "MUI_CD_Player.de.guide")
      (dest @default-dest)
      (help @copyfiles-help)
      (infos)
    )
    (P_COPYDIR "catalogs/deutsch")
  )
)

(if (IN opts 3) (P_COPYDIR "Texts"))

(if (IN opts2 0) (P_COPYDIR "Images/small"))
(if (IN opts2 1) (P_COPYDIR "Images/deluxe_small"))
(if (IN opts2 2) (P_COPYDIR "Images/big"))
(if (IN opts2 3) (P_COPYDIR "Images/deluxe_big"))

(P_COPYPLAYER "atapiplay.library")
(P_COPYPLAYER "cddevplay.library")

(copyfiles
  (prompt #copying)
  (source "")
  (choices "MUI_CD_Player" "CD_Manager" "CD_Editor")
  (dest @default-dest)
  (help @copyfiles-help)
  (if (= @user-level 2) (confirm))
)

(copyfiles
  (prompt #copying)
  (source "")
  (choices "testdevice" "Configure CD-ROM")
  (dest @default-dest)
  (help @copyfiles-help)
  (if (= @user-level 2) (confirm))
)

(P_COPYICON "MUI_CD_Player")
(P_COPYICON "CD_Manager")
(P_COPYICON "Configure CD-ROM")

(if (= @user-level 0)
  (P_CONFIGURECD)
  (if
    (askbool 
      (prompt #askconf)
      (help @askbool-help)
      (default 1)
    )
    (P_CONFIGURECD)
  )
)

(run "avail >nil: flush")

(exit)
