home *** CD-ROM | disk | FTP | other *** search
- ;*******************************************************;
- ; ;
- ; LightWave Installer ;
- ; ;
- ; by Todd Hayes ;
- ; ©1994 NewTek, Inc. ;
- ; ;
- ; $VER: Lightwave Unbundled Installer 1.0 (7-12-94) ;
- ; ;
- ;*******************************************************;
-
- ;************* Initialize **************
- (set @app-name "LightWave")
- (set @user-level 1)
- (set default_drive (if (exists "Work:" (noreq))
- "Work:"
- (cat (getdevice "c:") ":")))
- (set @default-dest default_drive)
-
-
- (set disk1 "LightwaveInstall")
- (set disk_n "LightwaveDisk")
- (set d_num 2)
- (set l_num 2)
- (set c_num 5)
-
- (set lw_size 3500000)
- (set content_size 6600000)
- (set lib_size 7104)
- (set count 0)
-
- (set install_lw 0)
- (set install_content 0)
-
- (set util_dir "sys:utilities")
-
- (onerror
- ((if (exists "ram:lz.decomp")
- (delete "ram:lz.decomp"))))
-
-
- ;************** Help Text **************
-
- (set help_install_type_choice (cat "The installer allows you to choose which "
- "components of Lightwave 3D will be installed "
- "on your system. You may choose a Full "
- "Install which will install Lightwave 3D, "
- "Modeler, and all of the objects, scenes, "
- "images, surfaces, and fonts included with "
- "Lightwave 3D. The option to install "
- "Lightwave/Modeler Only will install only "
- "the minimum of files necessary to run "
- "Lightwave and Modeler. Choosing the "
- "Install Content Only option will install "
- "only the objects, scenes, images, surfaces "
- "and fonts that are include with Lightwave."))
- (set help_directory (cat "Lightwave 3D must reside in a drawer called "
- "'Toaster' to function properly. This drawer will "
- "be created if it does not exist on the drive or "
- "in the drawer that you have chosen. If you "
- "already have a drawer called 'Toaster' where you "
- "would like to install Lightwave 3D, simply locate "
- "that drawer in the directory selection window and "
- "click 'Proceed'. Do not click on the 'Toaster' "
- "drawer, as this will cause another 'Toaster' "
- "drawer to be created in the existing 'Toaster' "
- "drawer."))
- (set help_insert_disk (cat "The Installer needs this disk to be inserted "
- "to continue the installation process."))
- (set help_startup_lines (cat "These lines need to be added to your "
- "'s:user-startup' file so that the necessary "
- "files can be located by Lightwave every time "
- "that your machine is booted."))
- (set help_use_toast (cat "You have chosen to install Lightwave 3D in an "
- "existing Toaster drawer. This will cause a new "
- "drawer, also called 'Toaster', to be created in "
- "the existing 'Toaster' drawer. If this was not "
- "what you intended to do, click 'No' and the "
- "installer will take you back to the directory "
- "requester to choose a different drawer. The "
- "default drawer for this requester will be the "
- "parent drawer of your existing 'Toaster' drawer."))
- (set help_changes (cat "There were some changes to both Lightwave and Modeler "
- "since the manual went to press. The file Changes.Txt "
- "documents these changes. You may choose to view this "
- "file at this stage of the install. If you choose to "
- "skip this part, you may miss valuable information.\n"
- "Please read this file.\n"))
-
-
- ;************** Main **************
-
- (welcome)
-
- (set install_type (askchoice (prompt (cat "\nPlease select the type of "
- "Install that you would like to "
- "perform."))
- (choices "Full Installation"
- "Install LightWave/Modeler Only"
- "Install Content Only")
- (help help_install_type_choice)))
-
- (if install_type
- (if (= install_type 1)
- ((set install_lw 1)
- (set install_vsize l_num)
- (set install_size (+ lw_size lib_size)))
- ((set install_content 1)
- (set install_vsize c_num)
- (set install_size content_size)))
- ((set install_lw 1)
- (set install_content 1)
- (set install_vsize (+ l_num c_num))
- (set install_size (+ content_size (+ lw_size lib_size)))))
- (complete 0)
-
- (set install_dir (askdir (prompt "Please select the drive where you would "
- "like to install Lightwave 3D. A new drawer "
- "called 'Toaster' will be created there.")
- (default default_drive)
- (help help_directory)))
- (set directory_name (substr install_dir (- (strlen install_dir) 7) 7))
- (while (OR (= directory_name "Toaster")
- (OR (= directory_name "toaster")
- (= directory_name "TOASTER")))
- ((set use_toast (askbool (prompt "The drawer you have chosen to install "
- "Lightwave 3D in is a 'Toaster' drawer. "
- "This will cause a 'Toaster' drawer to "
- "be created inside the existing 'Toaster' "
- "drawer. Are you sure that you wish to "
- "install Lightwave 3D in this drawer?")
- (help help_use_toast)))
- (if use_toast
- (set directory_name " ")
- ((set install_dir (substr install_dir 0 (- (strlen install_dir) 7)))
- (if (NOT (= (substr install_dir (- (strlen install_dir) 1) 1) ":"))
- (set install_dir (substr install_dir 0 (- (strlen install_dir) 1))))
- (set install_dir (askdir (prompt "Please select the drive where you "
- "would like to install Lightwave 3D. A new "
- "drawer called 'Toaster' will be created "
- "there.")
- (default install_dir)
- (help help_directory)))
- (set directory_name (substr install_dir (- (strlen install_dir) 7) 7))))
- ))
- (while (> install_size (getdiskspace install_dir))
- ((if (NOT @user-level)
- (abort (cat "\nNot enough space on drive to install.\n"
- "Please free up "
- (- install_size (getdiskspace install_dir))
- " bytes before restarting the Installation.")))
- (message (cat "\nNot enough space on drive to install.\n"
- "Please free up "
- (- install_size (getdiskspace install_dir))
- " bytes before clicking proceed to continue."))))
- (copyfiles (source (cat disk1 ":c"))
- (choices "lz.decomp")
- (dest "ram:"))
- (if (NOT (exists (cat util_dir "/more")))
- ((if (NOT (exists util_dir))
- (makedir util_dir))
- (copyfiles (source (cat disk1 ":c"))
- (choices "more")
- (dest util_dir))))
- (set toaster_dir (tackon install_dir "Toaster"))
- (set @default-dest toaster_dir)
- (if install_lw
- ((foreach (cat disk1 ":libs")
- ("#?")
- (copylib (source (cat disk1 ":libs/" @each-name))
- (dest "libs:")))
- (if (NOT (exists toaster_dir))
- ((makedir toaster_dir )
- (copyfiles (source (cat disk1 ":c/Toaster.info"))
- (dest install_dir))))
- (set d3_dir (cat toaster_dir "/3D"))
- (if (NOT (exists d3_dir))
- (makedir d3_dir))
- (set sur_dir (cat toaster_dir "/3D/Surfaces"))
- (if (NOT (exists sur_dir))
- (makedir sur_dir))
- (set scenes_dir (cat toaster_dir "/3D/Scenes"))
- (if (NOT (exists scenes_dir))
- (makedir scenes_dir))
- (set pre_dir (cat toaster_dir "/3D/Previews"))
- (if (NOT (exists pre_dir))
- (makedir pre_dir))
- (set obj_dir (cat toaster_dir "/3D/Objects"))
- (if (NOT (exists obj_dir))
- (makedir obj_dir))
- (set images_dir (cat toaster_dir "/3D/Images"))
- (if (NOT (exists images_dir))
- (makedir images_dir))
- (set mot_dir (cat toaster_dir "/3D/Motions"))
- (if (NOT (exists mot_dir))
- (makedir mot_dir))
- (set env_dir (cat toaster_dir "/3D/Envelopes"))
- (if (NOT (exists env_dir))
- (makedir env_dir))
- (set lw_config (cat d3_dir "/LW-config"))
- (if (AND (exists lw_config) (NOT (exists (cat lw_config ".old"))))
- (rename lw_config (cat lw_config ".old")))
- (set mod_config (cat d3_dir "/MOD-config"))
- (if (AND (exists mod_config) (NOT (exists (cat mod_config ".old"))))
- (rename mod_config (cat mod_config ".old")))
- (set @execute-dir toaster_dir)
- (working "\n\nDecompressing Files...")
- (run ("ram:lz.decomp -m x %s:lw1" disk1))
- (if install_content
- (run ("ram:lz.decomp -m x %s:lw1a" disk1)))
- (set count (+ count 1))
- (complete (/ (* count 100) install_vsize))
- (askdisk (prompt "Please insert LightwaveDisk2 in any drive...")
- (dest (cat disk_n d_num))
- (help help_insert_disk))
- (working "\n\nDecompressing Files...")
- (run ("ram:lz.decomp -m x %s%ld:lw%ld" disk_n d_num d_num))
- (set count (+ count 1))
- (complete (/ (* count 100) install_vsize))
- (set start-lines (cat "assign Toaster: " toaster_dir))
- (set start-lines (cat start-lines ("\nassign 3D: %s/3d\n" toaster_dir)))
- (startup @app-name (prompt "\nThe following lines need to be added to "
- "your user-startup:\nassign Toaster: "
- toaster_dir "\n")
- (command start-lines)
- (help help_startup_lines))
- ))
-
- (if install_content
- ((set d_num (+ l_num 1))
- (if (NOT (exists toaster_dir))
- ((makedir toaster_dir )
- (copyfiles (source (cat disk1 ":c/Toaster.info"))
- (dest install_dir))))
- (set d3_dir (cat toaster_dir "/3D"))
- (if (NOT (exists d3_dir))
- (makedir d3_dir))
- (set mot_dir (cat toaster_dir "/3D/Motions"))
- (if (NOT (exists mot_dir))
- (makedir mot_dir))
- (set env_dir (cat toaster_dir "/3D/Envelopes"))
- (if (NOT (exists env_dir))
- (makedir env_dir))
- (set @execute-dir toaster_dir)
- (if (NOT install_lw)
- ((working "\n\nDecompressing Files...")
- (run ("ram:lz.decomp -m x %s:lw1a" disk1))
- (complete 5)))
- (while (<= d_num (+ l_num c_num ))
- (askdisk
- (prompt ("Please insert LightwaveDisk%ld in any drive..." d_num))
- (dest (cat disk_n d_num))
- (help help_insert_disk))
- (working "\n\nDecompressing Files...")
- (run ("ram:lz.decomp -m x %s%ld:lw%ld" disk_n d_num d_num))
- (set count (+ count 1))
- (complete (/ (* count 100) install_vsize))
- (set d_num (+ d_num 1)))))
- (run ("assign Toaster: %s" toaster_dir))
- (run ("assign 3D: %s" d3_dir))
-
- (working "\n\nDisplaying Changes.txt text file...\n\n")
- (run "run sys:utilities/more toaster:changes.txt")
-
- (if (exists "ram:lz.decomp")
- (delete "ram:lz.decomp"))
-
- (complete 100)
-