                                                                                                                                                                                                                                                                                                                       @DefineProject
                                 @Name = "Crystal 3D Designer"
        @Version = "1.21"
    @OutDrive = C
    @Subdir = "\\3DDES"
    @InDiskBell = 1
@EndProject

@DefineVars
    @QString @RunBatch = "3DD"
            @QString @Exefile = "3ddes"
    @Integer @HasModels = 1
    @Integer @HasPics   = 1
    @Integer @HasPicFiles   = 1
    @Integer @HasAnims  = 0
    @Integer @HasAnimScripts = 0
    @Integer @HasBatch  = 1
    @Integer @HasMats   = 1
    @Integer @HasCAD    = 1
    @Integer @HasFonts  = 1
    @Integer @HasCams   = 1
    @Integer @HasProcs  = 0
    @Integer @HasProcFiles  = 0
    @Integer @HasRMAN   = 0
    @Integer @HasDVE    = 0
    @QString @CFGName   = "CRYSTAL"
@EndVars

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
// software name information
@DefineVars
    @Integer @NamePos  = (39 - (@StrLen(@Name) + 10)/2)
    @QString @SerialNumber = ""
    @Integer @HasCFG    = @Exists("@OutDrive:\\@SubDir\\@CFGName.CFG")
@EndVars


// memory requirement constants
@DefineVars
    @Integer @K         = 1024
    @Integer @M         = (@K*@K)
    @Integer @RAMReq    = (200*@K)
    @Integer @RAMReqK   = (@RAMReq/@K)
    @Integer @ExtReq    = (5*@M)
    @Integer @ExtReqM   = (@ExtReq/@M)
@EndVars

@DefineVars
    @Dir @Models   = "@Subdir\\Models"
    @Dir @CAD      = "@Subdir\\CAD"
    @Dir @Pictures = "@Subdir\\Pictures"
    @Dir @Fonts    = "@Subdir\\Fonts"
    @Dir @Cameras  = "@Subdir\\Cameras"
    @Dir @Procs    = "@Subdir\\Procs"
    @Dir @Script   = "@Subdir\\Anim"
    @Dir @Batch    = "@Subdir\\Batch"
    @Dir @Material = "@Subdir\\Material"
    @Dir @DVE      = "@Subdir\\DVEator"
    @QString @TmpFileType = ""
    @Dir @TmpDir  = ""
@EndVars

@DefineVars
        @Integer @ProgramReqM = 3   /* M */
    @Integer @ModelReqK   = 0   /* K */
    @Integer @CADReqK     = 0   /* K */
        @Integer @ScriptReqK  = 0   /* K */
                        @Integer @PictureReqM = 3   /* M */
    @Integer @FontReqM    = 2   /* M */
        @Integer @CameraReqK  = 1   /* K */
    @Integer @MatReqK     = 1   /* K */
    @Integer @ProcReqK    = 0   /* K */
    @EndVars

// Calculate the disk space required for the installation
// since we have ifdef the values above, the calculation is constant for
// all packages
@DefineVars
    @Integer @DiskReq   = (@ProgramReqM * @M + @ModelReqK * @K +
			   @CADReqK * @K + @PictureReqM * @M +
			   @FontReqM * @M + @CameraReqK * @K +
			   @MatReqK * @K + @ProcReqK * @K +
			   @ScriptReqK * @K)
    @Integer @DiskReqK  = (@DiskReq/@K)
    @Integer @DiskFreeK  = (@DiskFree @OutDrive /1024)
    @Integer @DiskSpaceLeftK = (@DiskFreeK -@DiskReqK)
    @Integer @TmpValue = 0
    @QString @TmpDiskReqStr = ""
    @QString @TmpDiskFreeStr = ""
    @QString @TmpDiskSpaceLeftStr = ""
@EndVars


@setoption(31)    /* model path is the same */
@setoption(32)    /* cad path is the same */
@setoption(33)    /* picture path is the same */
@setoption(34)    /* fonts path is the same */
@setoption(35)    /* cameras path is the same */
@setoption(36)    /* procedural path is the same */
@setoption(37)    /* script path is the same */
@setoption(38)    /* batch path is the same */
@setoption(39)    /* material path is the same */
@setoption(40)    /* material path is the same */

@setoption(41)    /* install program */
@if (@HasModels == 1)
   @setoption(42)    /* install models */
@endif
@if (@HasCAD == 1)
   @setoption(43)    /* install cad files */
@endif
@if (@HasPicFiles == 1)
   @setoption(44)    /* install pictures */
@endif
@if (@HasFonts == 1)
   @setoption(45)    /* install fonts */
@endif
@if (@HasCams == 1)
   @setoption(46)    /* install cameras */
@endif
@if (@HasMats == 1)
   @setoption(47)    /* install material files */
@endif
@if (@HasProcFiles == 1)
   @setoption(48)    /* install procedurals */
@endif
@if (@HasAnimScripts == 1)
   @setoption(50)    /* install scripts */
@endif


// Display the greeting screen
@Display
@cls
@move(1, 15)ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
@move(2, 15)³
@movecstr(2, @NamePos, 15+16,"@Name Installer")
@movecstr(2, 62, 15+16, "³")
@move(3, 15)³                Copyright 1993                ³
@move(4, 15)³             CrystalGraphics, Inc.            ³
@move(5, 15)ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

     This utility will install the @Name software
     on your computer system. It will use the settings shown on the next
     screen to install the files. You may change these default settings
     if you want to specify the directory structure, or the files to be
     installed.

     Before performing the install, we recommend you use a disk repair and
     defragmentation utility such as The Norton Utilities from Symantec or
     PCTools from Central Point. This will insure that you are installing
     the software on a "healthy" system with optimal disk performance.

                                      @pause
@enddisplay


// Display Hardware problems (if any)
@Display
  @if ((@cpu < 386) || (@RAMAvail < @RAMReq) || (@ExtTotal < @ExtReq) ||
       (10 [= @option))
  @cls
  Hardware Problems
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  There are problems with your current hardware configuration, which must be
  resolved before @Name can be run.
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

  They are:

    @if (@cpu < 386)
       @move(9, 2)- You need a 386 or better machine.
    @endif
    @if (@RAMAvail < @RAMReq)
       @move(10, 2)- You need more DOS memory. You will need at least @RAMReqK K.
    @endif
    @if (@ExtTotal < @ExtReq)
       @move(11, 2)- You need more extended memory.  You will need at least @ExtReqM M
    @endif

				@pause
  @endif
@enddisplay

// Display Math CoProcessor warnig if none present
@Display
  @if (@NDP == 0)
  @cls
  No Math Co-processor Installed
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  No math  co-processor has been detected. While the software does not
  require a math co-processor to run, it will run as much as 6 times faster
  with one installed. Adding a math co-processor is the single most
  important thing you can do to improve the performance of @Name.
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
				@pause
  @endif
@enddisplay



SETTINGS:

// decide free space - round it down
@DiskFreeK = (@DiskFree @OutDrive / @K)
@if (@DiskFreeK >= @K)
  @TmpValue = (@DiskFree @OutDrive / @M)
  @TmpDiskFreeStr = "@TmpValue M free"
@else
  @TmpDiskFreeStr = "@DiskFreeK K free"
@endif

// decide disk required - round it up
@if (@DiskReqK >= @K)
   @TmpValue = (@DiskReq / @M)
   @if (@DiskReq > (@TmpValue * @M))
      @TmpValue = (@TmpValue + 1)
   @endif
   @TmpDiskReqStr = "@TmpValue M required"
@else
   @TmpDiskReqStr = "@DiskReqK K required"
@endif

// Determine whether we are doing a Default or Custom install
// decide file directory should use default or custom
@if ((31 [= @option) && (32 [= @option) && (33 [= @option) &&
     (34 [= @option) && (35 [= @option) && (36 [= @option) &&
     (37 [= @option) && (38 [= @option) && (39 [= @option) &&
     (40 [= @option))
    @TmpFileType = "File directories:  @subdir\\<defaults>"
@else
    @TmpFileType = "File directories:  \\<custom>"
@endif


// Display and allow user to set the Installation Settings
@flushgroups
@getgroups
@if ((@CADReqK > 0) || (@ProcReqK > 0) || (@FontReqM > 0) || (@MatReqK > 0) ||
     (@CameraReqK > 0) || (@PictureReqM > 0) || (@ScriptReqK > 0))
    @localwindow(14,14)		// Have files to install
@else
    @localwindow(13,14)		// Don't have files to install
@endif
@set A = "INSTALL"
@set B = "Program drive"
@set C = "Program directory"
@set D = "File directories"
@if ((@CADReqK > 0) || (@ProcReqK > 0) || (@FontReqM > 0) || (@MatReqK > 0) ||
     (@CameraReqK > 0) || (@PictureReqM > 0) || (@ScriptReqK > 0))
    @set E = "Files to install"
@endif
@cls
  Current Installation Settings
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  These are the current settings to be used by the Installer. Select an
  option to change within the Install options list box, or proceed with the
  installation by selecting "INSTALL".
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

  Install options:          Current settings:
@movecstr(12, 28, 15+16, "Program drive:     @outdrive:")
@movecstr(12, 59, 15+16, @TmpDiskFreeStr)
@movecstr(13, 28, 15+16, "Program directory: @subdir")
@movecstr(14, 28, 15+16, @TmpFileType)
@if ((@CADReqK > 0) || (@ProcReqK > 0) || (@FontReqM > 0) || (@MatReqK > 0) ||
     (@CameraReqK > 0) || (@PictureReqM > 0) || (@ScriptReqK > 0))
   @if ((41 [! @option) ||
        (@HasModels && (42 [! @option)) ||
        (@HasCad && (43 [! @option)) ||
	(@HasPicFiles && (44 [! @option)) ||
        (@HasFonts && (45 [! @option)) ||
        (@HasCams && (46 [! @option)) ||
        (@HasMats && (47 [! @option)) ||
        (@HasProcFiles && (48 [! @option)) ||
	(@HasAnimScripts && (50 [! @option)))
      @movecstr(15, 28, 15+16, "Files to install:  Partial")
   @else
      @movecstr(15, 28, 15+16, "Files to install:  All")
   @endif
@endif
@movecstr(15, 59, 15+16, @TmpDiskReqStr)
@movecstr(21, 2, 15+32, " [Arrow Keys]=Scroll                                                          ")
@movecstr(22, 2, 15+32, "      [ENTER]=Select                                               [ESC]=Quit ")
@endgroups

@if ( 'A' [= @group )
   @goto CONTINUE
@elseif ( 'B' [= @group )
   @goto DRIVES
@elseif ( 'C' [= @group )
   @goto DIRS
@elseif ( 'D' [= @group )
   @goto FILEDIRS
@else
   @goto SELECTFILES
@endif


DRIVES:

// decide free space & free space left - round it down
@DiskFreeK = (@DiskFree @OutDrive / @K)
@if (@DiskFreeK >= @K)
   @TmpValue = (@DiskFree @OutDrive / @M)
   @TmpDiskFreeStr = "@TmpValue M"
   @DiskSpaceLeftK = (@TmpValue * @K)
@else
   @TmpDiskFreeStr = "@DiskFreeK K"
   @DiskSpaceLeftK = (@DiskFreeK)
@endif

// decide disk required & update free space left - round it up
@if (@DiskReqK >= @K)
   @TmpValue = (@DiskReq / @M)
   @if (@DiskReq > (@TmpValue * @M))
      @TmpValue = (@TmpValue + 1)
   @endif
   @TmpDiskReqStr = "@TmpValue M"
   @DiskSpaceLeftK = (@DiskSpaceLeftK - @TmpValue * @K)
@else
   @TmpDiskReqStr = "@DiskReqK K"
   @DiskSpaceLeftK = (@DiskSpaceLeftK - @DiskReqK)
@endif

// decide free space left - round it down
@if (@DiskSpaceLeftK < 0)
  @TmpValue = (-@DiskSpaceLeftK)
  @if (@TmpValue >= @K)
    @TmpValue = (@DiskSpaceLeftK / @K)
    @TmpDiskSpaceLeftStr = "@TmpValue M"
  @else
    @TmpDiskSpaceLeftStr = "@DiskSpaceLeftK K"
  @endif
@else
  @if (@DiskSpaceLeftK >= @K)
    @TmpValue = (@DiskSpaceLeftK / @K)
    @TmpDiskSpaceLeftStr = "@TmpValue M"
  @else
    @TmpDiskSpaceLeftStr = "@DiskSpaceLeftK K"
  @endif
@endif


// Get the drive to do the installation on
@GetOutDrive
// disallow (known) removable media drives
@suppress A
@suppress B
@localwindow(15, 9)
@cls
  Program Drive
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Current setting indicates the current drive and the amount of space
  available on it. Select the drive where you wish the software installed.
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

  Available drives:    Current setting:

			 Program Drive:                     @OutDrive:
			 Currently available:               @TmpDiskFreeStr
			 Files chosen to install require:   @TmpDiskReqStr
			 Available after installation:      @TmpDiskSpaceLeftStr

@movecstr(21, 2, 15+32, " [Arrow Keys]=Scroll                                                          ")
@movecstr(22, 2, 15+32, "      [ENTER]=Select                                               [ESC]=Quit ")
@EndOutDrive

@goto SETTINGS


DIRS:
@getsubdir  @Subdir
@Prompt = " New directory: "
@cls
  Program Directory
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Enter the name of the directory where you want to install the software.
  If it does not exist, it will be created; if it does exist, any files
  which have the same name as a file being installed will be overwritten.
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

  Current directory:     @Subdir
@movecstr(21, 2, 15+32, " [ENTER]=Accept                                                               ")
@movecstr(22, 2, 15+32, "                                                                   [ESC]=Quit ")
@move(10,2)
@endsubdir

// reset all paths after a change of subdir if necessary
@if (31 [= @option)
  @Models  = "@Subdir\\Models"
@endif
@if (32 [= @option)
  @CAD     = "@Subdir\\CAD"
@endif
@if (33 [= @option)
  @Pictures = "@Subdir\\Pictures"
@endif
@if (34 [= @option)
  @Fonts   = "@Subdir\\Fonts"
@endif
@if (35 [= @option)
  @Cameras = "@Subdir\\Cameras"
@endif
@if (36 [= @option)
  @Procs   = "@Subdir\\Procs"
@endif
@if (37 [= @option)
  @Script   = "@Subdir\\Anim"
@endif
@if (38 [= @option)
  @Batch    = "@Subdir\\Batch"
@endif
@if (39 [= @option)
  @Material = "@Subdir\\Material"
@if (40 [= @option)
  @DVE = "@Subdir\\DVEator"
@endif

@goto SETTINGS


FILEDIRS:
// reset all paths after a change of subdir if necessary
@if (31 [= @option)
  @Models  = "@Subdir\\Models"
@endif
@if (32 [= @option)
  @CAD     = "@Subdir\\CAD"
@endif
@if (33 [= @option)
  @Pictures = "@Subdir\\Pictures"
@endif
@if (34 [= @option)
  @Fonts   = "@Subdir\\Fonts"
@endif
@if (35 [= @option)
  @Cameras = "@Subdir\\Cameras"
@endif
@if (36 [= @option)
  @Procs   = "@Subdir\\Procs"
@endif
@if (37 [= @option)
  @Script   = "@Subdir\\Anim"
@endif
@if (38 [= @option)
  @Batch    = "@Subdir\\Batch"
@endif
@if (39 [= @option)
  @Material = "@Subdir\\Material"
@endif
@if (40 [= @option)
  @DVE = "@Subdir\\DVEator"
@endif

@flushgroups()
@getgroups
@localwindow(15, 20)
@set A = "CONTINUE"
@if (@HasModels == 1)
   @set B = "Models:       @Models "
@endif
@if (@HasCAD == 1)
   @set C = "CAD:          @CAD    "
@endif
@if (@HasPics == 1)
   @set D = "Pictures:     @Pictures"
@endif
@if (@HasFonts == 1)
   @set E = "Fonts:        @Fonts  "
@endif
@if (@HasCams == 1)
   @set F = "Cameras:      @Cameras"
@endif
@if (@HasProcs == 1)
   @set G = "Procedurals:  @Procs"
@endif
@if (@HasAnims == 1)
   @set H = "Scripts:      @Script"
@endif
@if (@HasBatch == 1)
   @set I = "Batch:        @Batch"
@endif
@if (@HasMats == 1)
   @set J = "Material:     @Material"
@endif
@if (@HasDVE == 1)
   @set K = "DVE Images:   @DVE"
@endif
@cls
  File Directories
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  These are the directories where the specified file types will be
  installed and where the software will by default expect to find them.
  Select an item to change its directory, or select "CONTINUE" to return
  to the Installation Settings screen.
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Current directories:
@movecstr(21, 2, 15+32, " [Arrow Keys]=Scroll                                                          ")
@movecstr(22, 2, 15+32, "      [ENTER]=Select                                               [ESC]=Quit ")
@endgroups

@if ( 'A' [= @group )
  @goto SETTINGS
@elseif ( 'B' [= @group )
  @TmpFileType = "Models"
  @TmpDir = @Models
@elseif ( 'C' [= @group )
  @TmpFileType = "CAD"
  @TmpDir = @CAD
@elseif ( 'D' [= @group )
  @TmpFileType = "Pictures"
  @TmpDir = @Pictures
@elseif ( 'E' [= @group )
  @TmpFileType = "Fonts"
  @TmpDir = @Fonts
@elseif ( 'F' [= @group )
  @TmpFileType = "Cameras"
  @TmpDir = @Cameras
@elseif ( 'G' [= @group )
  @TmpFileType = "Procedurals"
  @TmpDir = @Procs
@elseif ( 'H' [= @group )
  @TmpFileType = "Scripts"
  @TmpDir = @Script
@elseif ( 'I' [= @group )
  @TmpFileType = "Batch"
  @TmpDir = @Batch
@elseif ( 'J' [= @group )
  @TmpFileType = "Material"
  @TmpDir = @Material
@elseif ( 'k' [= @group )
  @TmpFileType = "DVE Images"
  @TmpDir = @DVE
@endif

@getsubdir @TmpDir
@Prompt = " New @TmpFileType directory: "
@cls
  @TmpFileType Directory
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Enter a new directory for files of this type.  If the directory does
  not exist, it will be created.  If it does exist, any files which have
  the same name as a file being installed will be overwritten.
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

  Current @TmpFileType directory:  @TmpDir
@movecstr(21, 2, 15+32, " [ENTER]=Accept                                                               ")
@movecstr(22, 2, 15+32, "                                                                   [ESC]=Quit ")
@move(10,2)
@endsubdir

@if ( 'B' [= @group )
  @if (@strfind("@TmpDir", "@Models") == (-1))
    @clearoption(31)
  @endif
  @Models = @TmpDir
@elseif ( 'C' [= @group )
  @if (@strfind("@TmpDir", "@CAD") == (-1))
    @clearoption(32)
  @endif
  @CAD = @TmpDir
@elseif ( 'D' [= @group )
  @if (@strfind("@TmpDir", "@CAD") == (-1))
    @clearoption(33)
  @endif
  @Pictures = @TmpDir
@elseif ( 'E' [= @group )
  @if (@strfind("@TmpDir", "@Fonts") == (-1))
    @clearoption(34)
  @endif
  @Fonts = @TmpDir
@elseif ( 'F' [= @group )
  @if (@strfind("@TmpDir", "@Cameras") == (-1))
    @clearoption(35)
  @endif
  @Cameras = @TmpDir
@elseif ( 'G' [= @group )
  @if (@strfind("@TmpDir", "@Procs") == (-1))
    @clearoption(36)
  @endif
  @Procs = @TmpDir
@elseif ( 'H' [= @group )
  @if (@strfind("@TmpDir", "@Script") == (-1))
    @clearoption(37)
  @endif
  @Script = @TmpDir
@elseif ( 'I' [= @group )
  @if (@strfind("@TmpDir", "@Batch") == (-1))
    @clearoption(38)
  @endif
  @Batch = @TmpDir
@elseif ( 'J' [= @group )
  @if (@strfind("@TmpDir", "@Material") == (-1))
    @clearoption(39)
  @endif
  @Material = @TmpDir
@elseif ( 'K' [= @group )
  @if (@strfind("@TmpDir", "@DVE") == (-1))
    @clearoption(40)
  @endif
  @DVE = @TmpDir
@endif

@goto FILEDIRS


SELECTFILES:

// decide disk required - round it up
@DiskReqK = (@DiskReq/1024)
@if (@DiskReqK >= @K)
  @TmpValue = (@DiskReq / @M)
  @if (@DiskReq > (@TmpValue * @M))
    @TmpValue = (@TmpValue + 1)
  @endif
  @TmpDiskReqStr = "@TmpValue M"
@else
  @TmpDiskReqStr = "@DiskReqK K"
@endif

@getoption
@checkbox
@option 41  = "Program & Support Files    @ProgramReqM M"
@if (@ModelReqK > 0)
   @option 42  = "Models                     @ModelReqK K"
@endif
@if (@CADReqK > 0)
   @option 43  = "CAD                        @CADReqK K"
@endif
@if (@PictureReqM > 0)
   @option 44  = "Pictures                   @PictureReqM M"
@endif
@if (@FontReqM > 0)
   @option 45  = "Fonts                      @FontReqM M"
@endif
@if (@CameraReqK > 0)
   @option 46  = "Cameras                    @CameraReqK K"
@endif
@if (@MatReqK > 0)
   @option 47  = "Materials & Palettes       @MatReqK K"
@endif
@if (@ProcReqK > 0)
   @option 48  = "Procedurals                @ProcReqK K"
@endif
@if (@ScriptReqK > 0)
   @option 50  = "Scripts                    @ScriptReqK K"
@endif
@localwindow(15, 24)
@cls
  Files To Install
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  These are the installable files. Program & Support Files are required to
  run the software; the others are optional. Files in the install directory
  having the same name as files being installed will be overwritten.
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

      Files:                Size:  Install:
@movecstr(8, 48, 15+16, "Current Installation Uses: @TmpDiskReqStr")
@movecstr(21, 2, 15+32, " [Arrow Keys]=Scroll   [SPACE]=Toggle                                         ")
@movecstr(22, 2, 15+32, "      [ENTER]=Accept                                               [ESC]=Quit ")
@endoption

// change required disk space
@DiskReq = (0)
@if (41 [= @option)
   @DiskReq = (@DiskReq + @ProgramReqM * @M)
@endif
@if (42 [= @option)
   @DiskReq = (@DiskReq + @ModelReqK * @K)
@endif
@if (43 [= @option)
   @DiskReq = (@DiskReq + @CADReqK * @K)
@endif
@if (44 [= @option)
   @DiskReq = (@DiskReq + @PictureReqM * @M)
@endif
@if (45 [= @option)
   @DiskReq = (@DiskReq + @FontReqM * @M)
@endif
@if (46 [= @option)
   @DiskReq = (@DiskReq + @CameraReqK * @K)
@endif
@if (47 [= @option)
   @DiskReq = (@DiskReq + @MatReqK * @K)
@endif
@if ((@HasProcFiles == 1) && (48 [= @option))
   @DiskReq = (@DiskReq + @ProcReqK * @K)
@endif
@if ((@HasAnimScripts == 1) && (50 [= @option))
   @DiskReq = (@DiskReq + @ScriptReqK * @K)
@endif
@DiskReqK = (@DiskReq / @K)

@goto SETTINGS


CONTINUE:

// check required disk space
@if (@DiskReq == 0)
@Display
@cls
   No files chosen for installation.
	@pause
@enddisplay
@goto SETTINGS
@endif


// Disk Space less than required for installation
@if (@DiskReqK > @DiskFreeK)
@Display
  @cls
  Insufficient Disk Space
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  The current installation of @Name requires
  @DiskReqK K of disk space, but only @DiskFreeK K of disk space is
  available on the Program Drive you have chosen. Select another Program
  Drive, reduce the amount of disk space required by installing fewer files
  or Quit the installation and delete some files before installing
  @Name.
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
				@pause
@enddisplay
@goto SETTINGS
@endif

// Get the serial number if they installed the executable
@if (41 [= @option)
@getstring @SerialNumber
  Serialization
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Enter the serial number for your copy of @Name.
  You will find it on your registration card.  Look for a number in the
  following format:  XXXX-XXXX-XXXX
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

  Note: You must enter a serial number for @Name
  to be installed. [Esc] will stop installation.
@movecstr(21, 2, 15+32, " [ENTER]=Accept                                                               ")
@movecstr(22, 2, 15+32, "                                                                   [ESC]=Quit ")
@move(10, 3)
@Prompt = " Serial Number: "
@endstring

@if (@strlen(@SerialNumber) == 0)
@goto CONTINUE
@endif
@endif /* option 41 */


INSTALL:

// Make required directories
@if (@HasModels == 1)
   @mkdir("@outdrive:@Models")
@endif
@if (@HasCAD == 1)
   @mkdir("@outdrive:@CAD")
@endif
@if (@HasPics == 1)
   @mkdir("@outdrive:@Pictures")
@endif
@if (@HasBatch == 1)
   @mkdir("@outdrive:@Batch")
@endif
@if (@HasCams == 1)
   @mkdir("@outdrive:@Cameras")
@endif
@if (@HasFonts == 1)
   @mkdir("@outdrive:@Fonts")
@endif
@if (@HasMats == 1)
   @mkdir("@outdrive:@Material")
                        @endif
@if (@HasAnims == 1)
   @mkdir("@outdrive:@Script")
                                                      @endif
@if (@HasProcs == 1)
   @mkdir("@outdrive:@Procs")
@endif
@if (@HasRMAN == 1)
   @mkdir("@outdrive:\\@Subdir\\rman")
@endif
@if (@HasDVE == 1)
   @mkdir("@outdrive:@DVE")
@endif
// Make a TSR files directory
@mkdir("@outdrive:\\@Subdir\\vesa")

@definedisk
   @label = "@Name v@Version disk 1"
   @if (41 [= @option)
      @file read_me.txt
      @beginlib @Exefile.001
	@file @Exefile.exe @out @outdrive:\@Subdir\*.*
      @endlib
   @endif
@enddisk

@definedisk
   @label = "@Name v@Version disk 2"
   @if (41 [= @option)
      @beginlib @Exefile.002
	 @file @Exefile.exe @out @outdrive:\@Subdir\*.*
      @endlib
      @beginlib support.lif
	 @file *.* @out @outdrive:\@Subdir\*.*
      @endlib
     @if (@HasRMAN == 1)
	@beginlib rman.lif
	   @file *.* @out @outdrive:\@Subdir\rman\*.*
	@endlib
     @endif
     @beginlib setup.lif
	@file *.* @out @outdrive:\@Subdir\*.*
     @endlib
     @beginlib vesa.lif
        @file *.* @out @outdrive:\@Subdir\vesa\*.*
     @endlib
   @endif // option 41
   @if ((@ProcReqK > 0) && (48 [= @option))
     @beginlib procs.lif
	@file *.* @out @outdrive:\@Procs\*.*
     @endlib
   @endif
   @if ((@MatReqK > 0) && (47 [= @option))
     @beginlib material.lif
	@file *.* @out @outdrive:\@material\*.*
     @endlib
     	          	          	          	          	          	          	          	        @endif // option 47
   @if ((@CameraReqK > 0) && (46 [= @option))
     @beginlib cameras.lif
	@file *.* @out @outdrive:\@Cameras\*.*
     @endlib
   @endif // option 46
                                                                                                                                                      @enddisk

@definedisk
   @label = "@Name v@Version disk 3"
   @if ((@FontReqM > 0) && (45 [= @option))
      @beginlib fonts.lif
	 @file *.* @out @outdrive:\@Fonts\*.*
      @endlib
   @endif // option 45
   @if (@HasDVE == 1)
      @beginlib dvafiles.lif
	 @file *.* @out @outdrive:\@DVE\*.*
      @endlib
   @endif
@enddisk

@definedisk
   @label = "@Name v@Version disk 4"
   @if ((@PictureReqM > 0) && (44 [= @option))
      @beginlib pictures.lif
	 @file *.* @out @outdrive:\@Pictures\*.*
      @endlib
   @endif // option 44
@enddisk

END:

@finish

@chdrive @outdrive
@chdir "@subdir"

@if (41 [= @option)
  // update serial number
  @if (@system("serial @SerialNumber") != 0)
      Unable to serialize @Name.
  @endif
  @if (@system("del serial.exe") != 0)
      Unable to delete serial.exe.
  @endif
@endif


// If they installed the executable and they didn't have a .cfg file
// then run the mini-setup
@if ((@HasCFG != @True) && (41 [= @option))
  @cls

  // Create an initial .CFG file with default graphics driver
  @if ((@videocard == 'V') && (@spawn("isvesa") != 0))
     @write("@CFGName.CFG", "at", "Screen STD_VGA.s32   # \"VGA (Standard VGA)\"\n")
  @else
     @write("@CFGName.CFG", "at", "Screen VESA_VGA.s32   # \"VESA Compatible VGA (no TSR)\"\n")
  @endif

  @if (@system("setup msetup.dat @RunBatch") != 0)
      Unable to execute setup.
  @endif
@else
  @cls
  Installation Complete
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  To run the software, type @Runbatch at the DOS prompt, and hit enter. To
  customize your software preferences, type SETUP at the DOS prompt and hit
  enter.
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  @pause
@endif
@if (41 [= @option)
   @if (@system("del isvesa.com") != 0)
      Unable to delete isvesa.com.
   @endif
@endif

// Create a batch file at the root directory of the C: drive to run the SW.
@if (@Exists("C:\\@RunBatch.BAT") == @False)
  @write("C:\\@RunBatch.BAT", "at", "\@ECHO OFF\n")
  @write(, , "@OutDrive:\n")
  @write(, , "CD \\@SubDir\n")
  @write(, , "@RunBatch\n")
@endif

// no need to ifdef this, cause if they can't change it, they didnt
@if (31 [! @option)		/* Model path has changed */
  @write("@CFGName.CFG", "at", "ModelPath @Models\n")
  @write(, , "OBFPath @Models\n")
  @write(, , "GroupPath @Models\n")
  @write(, , "AMFPath @Models\n")
@endif

@if (32 [! @option)		/* CAD path has changed */
  @write("@CFGName.CFG", "at", "DXFPath @CAD\n")
  @write(, , "IGESPath @CAD\n")
@endif

@if (33 [! @option)		/* Pictures path has changed */
  @write("@CFGName.CFG", "at", "PicturePath @Pictures\n")
@endif

@if (34 [! @option)		/* Fonts path has changed */
  @write("@CFGName.CFG", "at", "FontPath @Fonts\n")
@endif

@if (35 [! @option)		/* Cameras path has changed */
  @write("@CFGName.CFG", "at", "CameraPath @Cameras\n")
@endif

@if (36 [! @option)		/* Procedural path has changed */
  @write("@CFGName.CFG", "at", "ProceduralPath @Procs\n")
@endif

@if (37 [! @option)		/* Script path has changed */
  @write("@CFGName.CFG", "at", "AnimPath @Script\n")
@endif

@if (38 [! @option)		/* Batch path has changed */
  @write("@CFGName.CFG", "at", "BatchPath @Batch\n")
@endif

@if (39 [! @option)		/* Material path has changed */
  @write("@CFGName.CFG", "at", "MatPath @Material\n")
@endif

@if (40 [! @option)		/* Material path has changed */
  @write("@CFGName.CFG", "at", "DVEImages @DVE\n")
@endif

@if ((@HasCFG == @False) && (41 [= @option))
                                       @write("@CFGName.CFG", "at", "ShiftfKey 1 Grid\n")
   @write(, , "ShiftfKey 2 View Mode\n")
   @write(, , "ShiftfKey 3 Show Tree\n")
   @write(, , "ShiftfKey 4 Hide All\n")
   @write(, , "ShiftfKey 5 Show All\n")
   @write(, , "ShiftfKey 6 Show Image\n")
   @write(, , "ShiftfKey 7 Edit Map\n")
   @write(, , "ShiftfKey 8 Display Light Icons\n")
   @write(, , "ShiftfKey 9 Set Highlight\n")
   @write(, , "ShiftfKey 10 Look At Polygon\n")
                                    @endif

@endfinish
