; crummy multiArchive extractor : By Neil Mohr ; $VER: crummy multi LZX 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 "" "#?.lzx" (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  "Xfd.lzx" ) (set file2  "VMM.lzx" ) (set file3  "MacWB.lzx" ) (set file4  "AppAssign.lzx" ) (set file5  "ARexx.lzx" ) (set file6  "AppReplaceIcon.lzx" ) (set file7  "MBPress.lzx" ) (set file8  "OnGo.lzx" ) (set file9  "Popper.lzx" ) (set file10 "RenameIt.lzx" ) (set file11 "Trashman.lzx" ) (set file12 "DeluxeSolitaire.lzx" ) (set file13 "Blitz.lzx" ) (set file14 "DeepX.lzx" )

(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

)) )

(set counter (- counter 1))

(until (= counter -1)

  (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 "lzx x -m -k -r -x \"" @app-name "\" \"" @default-dest "\""))
      (if (> (run unArc) 0)  (message "Lzx 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!" (quiet))

