; crummy multiArchive extractor : By Neil Mohr
; $VER: crummy multiLHA extractor v1 (00:28 23 October 95)

(complete 0)
(welcome)

(set originalDisc (getAssign (getDevice @icon) "d"))
(set @default-dest "")
(set @app-name "")
(set counter 0)
(foreach "" "#?.lha" (set counter (+ counter 1)) )
(set completeVal (+ counter 1))
(set destPrompt "Where do you want the archives extracting?")

(user 2)
(message "\n\n\nTo use this installer properly you need\na hard drive, or at "
         "least, plenty of free memory.\n\n\nAlso this icon should be in the same "
         "directory as the archives, otherwise it will not work!")

(set file1  "Bioday.lha" )
(set file2  "ETrashCan.lha" )
(set file3  "Eye.lha" )
(set file4  "Iconify.lha" )
(set file5  "Lha-GUI.lha" )
(set file6  "Loves.lha" )
(set file7  "mcx241.lha" )
(set file8  "mcxp212.lha" )
(set file9  "MonEd3a.lha" )
(set file10 "MonHack1438.lha" )
(set file11 "ScreenKeys.lha" )
(set file12 "SysSpeed12.lha" )
(set file13 "UrouHack06.lha" )
(set file14 "XPKatana10.lha" )
(set file15 "XPKDT.lha" )
(set file16 "Move.lha" )

(while (OR (= (getAssign (getDevice @default-dest) "d") originalDisc )
           (= originalDisc "") )
  (set destination
    (askdir (help @askdir-help) (prompt destPrompt)
    (newpath)
    (default "RAM:")
  ))
(set destPrompt "Where do you want the archives extracting?\nBut please don't pick the coverdisc!")
(set @default-dest destination)
)

(if (NOT (= (substr @default-dest (- (strlen @default-dest) 1) 1) ":")) (set @default-dest (cat @default-dest "/")))

(if (= (getDevice @default-dest) "RAM")
  (if (< (+(dataBase "total-mem")) 1000000) (message "\n\n\nYou may not have enough memory.\n\nPress proceed to try anyway."))
  (if (< (getDiskSpace @default-dest)) 1000000 (message "\n\n\nYou may not have enough disc space.\n\nPress proceed to try anyway."))
)

(set response (askoptions (prompt "Pick which archives to extract.") (help @askoptions-help) (choices

file1
file2
file3
file4
file5
file6
file7
file8
file9
file10
file11
file12
file13
file14
file15
file16

)) )

(set counter (- counter 1))

(until (= counter -1)

  (if (IN response counter) ((set @app-name file16)  (set response (- response 32768)) ))
  (if (IN response counter) ((set @app-name file15)  (set response (- response 16384)) ))
  (if (IN response counter) ((set @app-name file14)  (set response (- response 8192)) ))
  (if (IN response counter) ((set @app-name file13)  (set response (- response 4096)) ))
  (if (IN response counter) ((set @app-name file12)  (set response (- response 2048)) ))
  (if (IN response counter) ((set @app-name file11)  (set response (- response 1024)) ))
  (if (IN response counter) ((set @app-name file10)  (set response (- response 512)) ))
  (if (IN response counter) ((set @app-name file9)  (set response (- response 256)) ))
  (if (IN response counter) ((set @app-name file8)  (set response (- response 128)) ))
  (if (IN response counter) ((set @app-name file7)  (set response (- response 64)) ))
  (if (IN response counter) ((set @app-name file6)  (set response (- response 32)) ))
  (if (IN response counter) ((set @app-name file5)  (set response (- response 16)) ))
  (if (IN response counter) ((set @app-name file4)  (set response (- response 8)) ))
  (if (IN response counter) ((set @app-name file3)  (set response (- response 4)) ))
  (if (IN response counter) ((set @app-name file2)  (set response (- response 2)) ))
  (if (IN response counter) ((set @app-name file1)  (set response (- response 1)) ))

  (if (NOT (= @app-name ""))
    ( (complete (* (- completeVal counter ) (/ 100 completeVal)) )
      (working "\n\n\nI am now extracting " @app-name " to " @default-dest ".\n\nPlease Wait.")
      (set unArc (cat "c:lha x -m -k -r -x \"" @app-name "\" \"" @default-dest "\""))
      (if (> (run unArc) 0)  (message "Lha reported an error when extracting\n\n" @app-name " to the destination path " @default-dest ".\n\nThis could either be a problem with how your computer is setup or with the disk itself.\nTry running the HD-Setup Icon, and make sure you are running MultiExtract from the cover disk, it may be the destination " @default-dest " does not have enought room.\n\nIf problems persist ring 01625 878888 and ask for Amiga Computing Technical Help.\n\nPress Proceed To Continue." ))
    )
  )

  (set counter (- counter 1))
  (set @app-name "")

)

(complete 100)
(exit "\n\nHopefully all your chosen files\nhave been extracted correctly!")

