;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
;HUMANOID INSTALL
;(c) 1993 Crestline Software Publishing
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; Set Global Variables
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(set ProductName  "HUMANOID")
(set ver          "1.0")
(set model.mem    "4.5 MB")
(set req.mem      "18.8 MB")
(set MANspace     4546642)
(set MANSTRONGspace  4546642)
(set WOMANspace   4546642)
(set CHILDspace   4546642)
(set MISCspace       595835)
(set Install+     "HUMANOID_v1_disk1")
(set SMAN-disk1   "HUMANOID_v1_disk4")
(set SMAN-disk2   "HUMANOID_v1_disk5")
(set MAN-disk1       "HUMANOID_v1_disk2")
(set MAN-disk2       "HUMANOID_v1_disk3")
(set WOMAN-disk1  "HUMANOID_v1_disk6")
(set WOMAN-disk2  "HUMANOID_v1_disk7")
(set CHILD-disk1  "HUMANOID_v1_disk8")
(set CHILD-disK2  "HUMANOID_v1_disk9")
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure InstallWhat
; Ask the user which parts should be installed.
   (set INSTALLOpts
      (askoptions
         (prompt 
               ("DE-SELECT the models you do not want to install. Each model set requires %s of hard drive space\n" model.mem)
               ("or %s to install all models and misc. files.\n" req.mem) 
         )
         (help   ("This part of the installation procedure lets you select the witch %s models you want to install at this time.\n" ProductName)
            "\n"
            "- MAN\n"
            "This option lets you install the MAN models.\n"
            "\n"
            "- MANSTRONG\n"
            "This option lets you install the MANSTRONG models.\n"
            "\n"
            "- WOMAN\n"
            "This option lets you install the WOMAN models.\n"
            "\n"
            "- CHILD\n"
            "This option lets you install the CHILD models.\n"
            "\n"
            "- ALL MODELS\n"
            "This option lets you install all of the HUMANOID models.\n"
            "   NOTE: THIS OPTION DOES NOT INSTALL THE MISC. FILES\n"
            "\n"
            "- MISC.\n"
            "This option will install miscellaneous files: attributes, .config, reflect.map,..\n"
            "\n"
            @askoptions-help)
         (choices "MAN        = 4.5 MB  "
                  "MANSTRONG  = 4.5 MB  "
                  "WOMAN      = 4.5 MB  "
                  "CHILD      = 4.5 MB  "
                  "MISC       = 595 k   "
         )
      )
   )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure GetDir
   (
      (set InstallDir
         (askdir
            (prompt
                  "You MUST select or create a DRAWER to install the models! They will not install to the root of a drive.")
               (help
                  "The the model files will be copied to this drawer. ")
            (default @default-dest)
         )
      )     
   )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure SpaceRec
   (
      (set space 0)
      (set space_rec
            (+
               (if (IN INSTALLOpts 0)
                  (+ space MANspace)
               )  
               (if (IN INSTALLOpts 1)
                  (+ space MANSTRONGspace)
               )
               (if (IN INSTALLOpts 2)
                  (+ space WOMANspace)
               )
               (if (IN INSTALLOpts 3)
                  (+ space CHILDspace)
               )
               (if (IN INSTALLOpts 4)
                  (+ space MISCspace)
               )
            )
      )
   )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure SpaceAvail
   (
      (while (< (getdiskspace InstallDir) space_rec)
         (message 
            "The disk you selected doesn't have enough room!\n"
            "\n"
            "Please choose another disk that has "space_rec" bytes of space."
       )
       (GetDir)
   )
    )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure UnArcDir
   (
      (working Message1)
      (run ("ram:LHarc x %s %s/" arcFileName InstallDir))
   )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure copyram
; copy files to the RAM
      (copyfiles
         (prompt "")
         (help "")
         (source ("%s:C/LHarc" Install+))
         (dest "RAM:")
      )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure Install-MAN
; UnArc and copying files.
   (
      (
         (askdisk
            (dest MAN-disk1)
            (prompt "Insert Disk 2")
            (help @askdisk-help)
         )
         (set Message1 "Installing MAN Disk 2")
         (set arcFileName  ("%s:MAN1.lha" MAN-disk1))
         (set destDirName  "InstallDir:")
         (UnArcDir)
      )
      (
         (askdisk
            (dest MAN-disk2)
            (prompt "Insert Disk 3")
            (help @askdisk-help)
         )
         (set Message1 "Installing MAN Disk 3")
         (set arcFileName  ("%s:MAN2.lha" MAN-disk2))
         (set destDirName  "InstallDir:")
         (UnArcDir)
      )
   )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure Install-MANSTRONG
; UnArc and copying files.
   (
      (
         (askdisk
            (dest SMAN-disk1)
            (prompt "Insert Disk 4")
            (help @askdisk-help)
         )
         (set Message1 "Installing MANSTRONG Disk 4")
         (set arcFileName  ("%s:MANSTRONG1.lha" SMAN-disk1))
         (UnArcDir)
      )
      (
         (askdisk
            (dest SMAN-disk2)
            (prompt "Insert Disk 5")
            (help @askdisk-help)
         )
         (set Message1 "Installing MANSTRONG Disk 5")
         (set arcFileName  ("%s:MANSTRONG2.lha" SMAN-disk2))
         (UnArcDir)
      )
   )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure Install-WOMAN
; UnArc and copying files.
   (
      (
         (askdisk
            (dest WOMAN-disk1)
            (prompt "Insert Disk 6")
            (help @askdisk-help)
         )
         (set Message1 "Installing WOMAN Disk 6")
         (set arcFileName  ("%s:WOMAN1.lha" WOMAN-disk1))
         (set destDirName  "InstallDir:")
         (UnArcDir)
      )
      (
         (askdisk
            (dest WOMAN-disk2)
            (prompt "Insert Disk 7")
            (help @askdisk-help)
         )
         (set Message1 "Installing WOMAN Disk 7")
         (set arcFileName  ("%s:WOMAN2.lha" WOMAN-disk2))
         (set destDirName  "InstallDir:")
         (UnArcDir)
      )
   )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure Install-CHILD
; UnArc and copying files.
   (
      (
         (askdisk
            (dest CHILD-disk1)
            (prompt "Insert Disk 8")
            (help @askdisk-help)
         )
         (set Message1 "Installing CHILD Disk 8")
         (set arcFileName  ("%s:CHILD1.lha" CHILD-disk1))
         (set destDirName  "InstallDir:")
         (UnArcDir)
      )
      (
         (askdisk
            (dest CHILD-disk2)
            (prompt "Insert Disk 9")
            (help @askdisk-help)
         )
         (set Message1 "Installing CHILD Disk 9")
         (set arcFileName  ("%s:CHILD2.lha" CHILD-disk2))
         (set destDirName  "InstallDir:")
         (UnArcDir)
      )
   )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure Install-MISC
; UnArc and copying files.
   (
      (
         (askdisk
            (dest Install+)
            (prompt "Insert Disk 1")
            (help @askdisk-help)
         )
         (set Message1 "Installing MISC. Disk 1")
         (set arcFileName  ("%s:MISC.lha" Install+))
         (set destDirName  "InstallDir:")
         (UnArcDir)
      )
   )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure cleanUp
   (
; delete temporary files.
      (if (= (exists "RAM:LHarc") 1)
         (delete "RAM:LHarc")
      )
; exit the program.
   )
(set @default-dest InstallDir)
(exit)
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; Start 
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(onerror (cleanUp))
(InstallWhat)
(SpaceRec)
(GetDir)
(SpaceAvail)
(copyram)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; Start Install
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(if (IN INSTALLOpts 4)
   (Install-MISC)
)
(if (IN INSTALLOpts 0)
   (Install-MAN)
)
(if (IN INSTALLOpts 1)
   (Install-MANSTRONG)
)
(if (IN INSTALLOpts 2)
   (Install-WOMAN)
)
(if (IN INSTALLOpts 3)
   (Install-CHILD)
)
(cleanUp)
