;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;City Builder Install Script
;(c) 1994 Pete Rittwage, InterVisual Software.
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; Set Global Variables
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(set ProductName  "City Builder")
(set ver          "1.0")
(set req.mem       5000000)
(set CB-disk1     "CB_Disk1")
(set CB-disk2     "CB_Disk2")
(set CB-disk3     "CB_Disk3")
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure GetDir
   (
      (set InstallDir
         (askdir
            (prompt
                  "Please select your default '3D' directory "
                  "to install the City Builder software.\n"
                  "A drawer called 'City' will be created here.\n\n"
                  "If not already assigned, '3D' must be assigned "
                  "to this directory to load the sample scenes correctly."
                  )
               (help
                  "The models, images, and sample scenes will be copied\nto a drawer called 'City' within this drawer. ")
            (default @default-dest)
         )
      )     
   )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure SpaceAvail
   (
      (while (< (getdiskspace InstallDir) req.mem)
         (message 
            "The disk you selected doesn't have enough room!\n"
            "\n"
            "Please choose another disk that has "req.mem" bytes of space."
       )
       (GetDir)
   )
    )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure UnArcDir
   (
      (working Message1)
      (run "c:stack 50000")
      (run ("ram:lhex -w=%s x %s" destDirName arcFileName))
   )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure copyram
; copy files to the RAM
      (copyfiles
         (prompt "")
         (help "")
         (source ("%s:c/lhex" CB-disk1))
         (dest "RAM:")
      )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure Install-Stuff
;UnArc and copy files.
   (
     (
         (makedir ("%s/City" InstallDir))
         (makedir ("%s/City/Objects" InstallDir))
         (makedir ("%s/City/Objects/Buildings" InstallDir))
         (makedir ("%s/City/Scenes" InstallDir))
         (makedir ("%s/City/Surfaces" InstallDir))
         (makedir ("%s/City/Images" InstallDir))

         (askdisk
            (dest CB-disk1)
            (prompt "Insert City Builder Disk 1")
            (help @askdisk-help)
         )
         (set Message1 "Installing Sample Scenes")
         (set arcFileName  ("%s:scenes.lha" CB-disk1))
         (set destDirName  ("%s/City/Scenes" InstallDir))
         (UnArcDir)
         (set Message1 "Installing Building Objects")
         (set arcFileName  ("%s:obj_buildings_1.lha" CB-disk1))
         (set destDirName  ("%s/City/Objects/Buildings" InstallDir))
         (UnArcDir)
         (set Message1 "Installing Extra Surfaces")
         (set arcFileName  ("%s:surfaces.lha" CB-disk1))
         (set destDirName  ("%s/City/Surfaces" InstallDir))
         (UnArcDir)
         (set Message1 "Installing More Objects")
         (set arcFileName  ("%s:Xobjects.lha" CB-disk1))
         (set destDirName  ("%s/City/Objects/Miscellaneous" InstallDir))
         (UnArcDir)
      )
      (
         (askdisk
            (dest CB-disk2)
            (prompt "Insert City Builder Disk 2")
            (help @askdisk-help)
         )
         (set Message1 "Installing Building Objects")
         (set arcFileName  ("%s:obj_buildings_2.lha" CB-disk2))
         (set destDirName  ("%s/City/Objects/Buildings" InstallDir))
         (UnArcDir)
         (set Message1 "Installing Building Blocks")
         (set arcFileName  ("%s:obj_bb+genbldgs.lha" CB-disk2))
         (set destDirName  ("%s/City/Objects" InstallDir))
         (UnArcDir)
      )  
      (
         (askdisk
            (dest CB-disk3)
            (prompt "Insert City Builder Disk 3")
            (help @askdisk-help)
         )
         (set Message1 "Installing Image Maps")
         (set arcFileName  ("%s:images.lha" CB-disk3))
         (set destDirName  ("%s/City/Images" InstallDir))
         (UnArcDir)
         (set Message1 "Installing Roads and Miscellaneous Objects")
         (set arcFileName  ("%s:obj_lres+misc+roads.lha" CB-disk3))
         (set destDirName  ("%s/City/Objects" InstallDir))
         (UnArcDir)
      )  
   )
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(procedure cleanUp
   (
; delete temporary files.
      (if (= (exists "ram:lhex") 1)
         (delete "ram:lhex")
      )
; exit the program.
   )
(set @default-dest InstallDir)
(exit)
)
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; Start 
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(onerror (cleanUp))
(GetDir)
(SpaceAvail)
(copyram)
(Install-Stuff)
(cleanUp)

