home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / e / e002 / 1.ddi / ORIGIN.MST < prev    next >
Encoding:
Text File  |  1993-11-17  |  18.7 KB  |  614 lines

  1. '$DEFINE DEBUG  ''Define for script development/debugging
  2.  
  3. '$INCLUDE 'setupapi.inc'
  4. '$INCLUDE 'msdetect.inc'
  5.  
  6. ''Dialog ID's
  7. CONST WELCOME      = 100
  8. CONST ASKQUIT      = 200
  9. CONST DESTPATH     = 300
  10. CONST EXITFAILURE  = 400
  11. CONST EXITQUIT     = 600
  12. CONST EXITSUCCESS  = 700
  13. CONST APPHELP      = 900
  14. CONST OVERWRITE    = 1800
  15. CONST CUSTINST     = 6200
  16. CONST TOOBIG       = 6300
  17. CONST BADPATH      = 6400
  18.  
  19. ''Bitmap ID
  20. CONST LOGO         = 1
  21.  
  22. ''File Types
  23. CONST PROGFILE   = 1
  24. CONST CONFIGS    = 2
  25. CONST TEMPLATE   = 3
  26. CONST SAMPLES    = 4
  27.  
  28. CONST FITFUNC    = 5
  29. CONST INIFILE    = 6
  30. CONST HLPFILE    = 7
  31.  
  32. CONST DIMENS3     = 8
  33.  
  34. CONST NUMTYPES   = 8
  35.  
  36. GLOBAL DEST$
  37. GLOBAL SDEST$
  38. GLOBAL FDEST$
  39. GLOBAL BDEST$
  40. GLOBAL WINDRIVE$    ''Windows drive letter.
  41. GLOBAL OPT1OPT$     ''Option selection from OptFiles1 option dialog.
  42. GLOBAL OPT2OPT$     ''Option selection from OptFiles2 option dialog.
  43.  
  44. ''CustInst list symbol names
  45. GLOBAL PROGNEEDS$
  46. GLOBAL CONFNEEDS$
  47. GLOBAL TEMPNEEDS$
  48. GLOBAL SAMPNEEDS$
  49. GLOBAL HLPNEEDS$
  50. GLOBAL ININEEDS$
  51. GLOBAL FITNEEDS$
  52. GLOBAL DIM3NEEDS$
  53. GLOBAL EXTRACOSTS$  ''List of extra costs to add per drive
  54. GLOBAL BIGLIST$     ''List of option files cost calc results (boolean)
  55.  
  56. ''Dialog list symbol names
  57. GLOBAL CHECKSTATES$
  58. GLOBAL STATUSTEXT$
  59. GLOBAL DRIVETEXT$
  60.  
  61.  
  62. DECLARE SUB AddOptFilesToCopyList (ftype%)
  63. DECLARE SUB RecalcOptFiles (ftype%)
  64. DECLARE SUB RecalcPath
  65. DECLARE SUB SetDriveStatus
  66. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  67.  
  68. INIT:
  69.     CUIDLL$ = "orgsetup.dll"            ''custom user interface dll
  70.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  71.  
  72.     SetTitle "MicroCal Origin Installation"
  73.  
  74.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  75.     IF szInf$ = "" THEN
  76.         szInf$ = GetSymbolValue("STF_CWDDIR") + "ORIGIN.INF"
  77.     END IF
  78.     ReadInfFile szInf$
  79.  
  80.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  81.     SYSDEST$ = GetWindowsSysDir()
  82.  
  83.     DEST$ = WINDRIVE$ + ":\ORIGIN\"
  84.     SDEST$ = DEST$ + "SAMPLES\"
  85.     FDEST$ = DEST$ + "FITFUNC\"
  86.     BDEST$ = DEST$ + "BUTTONS\"
  87.  
  88.     ''CustInst list symbols
  89.     CHECKSTATES$ = "CheckItemsState"
  90.     STATUSTEXT$  = "StatusItemsText"
  91.     DRIVETEXT$   = "DriveStatusText"
  92.     FOR i% = 1 TO NUMTYPES STEP 1
  93.         AddListItem CHECKSTATES$, "ON"
  94.     NEXT i%
  95.     FOR i% = 1 TO NUMTYPES STEP 1
  96.         AddListItem STATUSTEXT$, ""
  97.     NEXT i%
  98.     FOR i% = 1 TO NUMTYPES STEP 1
  99.         AddListItem DRIVETEXT$, ""
  100.     NEXT i%
  101.     ReplaceListItem DRIVETEXT$, 7, DEST$
  102.  
  103.     ''Disk cost list symbols
  104.     PROGNEEDS$  = "ProgNeeds"
  105.     CONFNEEDS$  = "ConfNeeds"
  106.     TEMPNEEDS$  = "TempNeeds"
  107.     SAMPNEEDS$  = "SampNeeds"
  108.     HLPNEEDS$   = "HlpNeeds"
  109.     ININEEDS$   = "IniNeeds"
  110.     FITNEEDS$   = "FitNeeds"
  111.     DIM3NEEDS$  = "Dim3Needs"
  112.     EXTRACOSTS$ = "ExtraCosts"
  113.     BIGLIST$    = "BigList"
  114.     FOR i% = 1 TO NUMTYPES STEP 1
  115.         AddListItem BIGLIST$, ""
  116.     NEXT i%
  117.     FOR i% = 1 TO 26 STEP 1
  118.         AddListItem EXTRACOSTS$, "0"
  119.     NEXT i%
  120.  
  121.     ''File Option Variables for 3D 
  122.     OPT1OPT$ = "1"
  123.  
  124.     RecalcPath
  125.     SetDriveStatus
  126.  
  127. '$IFDEF DEBUG
  128.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  129. '$ENDIF ''DEBUG
  130.  
  131. WELCOME:
  132.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  133.     IF sz$ = "CONTINUE" THEN
  134.         UIPop 1
  135.     ELSE
  136.         GOSUB ASKQUIT
  137.         GOTO WELCOME
  138.     END IF
  139.  
  140. GETPATH:
  141.     SetSymbolValue "EditTextIn", DEST$
  142.     SetSymbolValue "EditFocus", "END"
  143. GETPATHL1:
  144.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  145.     IF sz$ = "BACK" THEN    '**Custom install.
  146.         olddest$ = DEST$
  147.         DEST$ = GetSymbolValue("EditTextOut")
  148.         ''Validate new path.
  149.         IF IsDirWritable(DEST$) = 0 THEN
  150.             GOSUB BADPATH
  151.             GOTO GETPATHL1
  152.         END IF
  153.         UIPop 1
  154.           ''Truncate display if too long.
  155.         IF LEN(DEST$) > 23 THEN
  156.             ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
  157.         ELSE
  158.             ReplaceListItem DRIVETEXT$, 7, DEST$
  159.         END IF
  160.         IF IsDirWritable(DEST$+"\") = 0 THEN
  161.         ELSE
  162.            DEST$ = DEST$ + "\"
  163.         END IF
  164.         SDEST$ = DEST$ + "SAMPLES\"
  165.         FDEST$ = DEST$ + "FITFUNC\"
  166.         BDEST$ = DEST$ + "BUTTONS\"
  167.         ''Recalc if path changed.
  168.         IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  169.             RecalcPath
  170.             SetDriveStatus
  171.         END IF
  172.         olddest$ = ""
  173.         GOSUB OVERWR
  174.         GOTO CUSTINST
  175.     ELSEIF sz$ = "CONTINUE" THEN    '** Default installation
  176.        olddest$ = DEST$
  177.         DEST$ = GetSymbolValue("EditTextOut")
  178.         ''Validate new path.
  179.         IF IsDirWritable(DEST$) = 0 THEN
  180.             GOSUB BADPATH
  181.             GOTO GETPATHL1
  182.         END IF
  183.         UIPop 1
  184.           ''Truncate display if too long.
  185.         IF LEN(DEST$) > 23 THEN
  186.             ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
  187.         ELSE
  188.             ReplaceListItem DRIVETEXT$, 7, DEST$
  189.         END IF
  190.         IF IsDirWritable(DEST$+"\") = 0 THEN
  191.         ELSE
  192.            DEST$ = DEST$ + "\"
  193.         END IF
  194.         SDEST$ = DEST$ + "SAMPLES\"
  195.         FDEST$ = DEST$ + "FITFUNC\"
  196.         BDEST$ = DEST$ + "BUTTONS\"
  197.         ''Recalc if path changed.
  198.         IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  199.             RecalcPath
  200.             SetDriveStatus
  201.         END IF
  202.         olddest$ = ""
  203.         GOSUB OVERWR
  204.         FOR i% = 1 TO NUMTYPES STEP 1
  205.             IF GetListItem(BIGLIST$, i%) <> "" THEN
  206.                 GOSUB TOOBIG
  207.                 GOTO GETPATH
  208.             END IF
  209.         NEXT i%
  210.         GOTO INSTALL
  211.     ELSEIF sz$ = "REACTIVATE" THEN
  212.         RecalcPath
  213.         SetDriveStatus
  214.         GOTO GETPATHL1
  215.     ELSEIF sz$ = "EXIT" THEN
  216.         GOSUB ASKQUIT
  217.         GOTO GETPATHL1
  218.     END IF
  219.  
  220. CUSTINST:
  221.     sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
  222.  
  223.     IF sz$ = "CONTINUE" THEN
  224.         ''Install only if it will fit.
  225.         FOR i% = 1 TO NUMTYPES STEP 1
  226.             IF GetListItem(BIGLIST$, i%) <> "" THEN
  227.                 GOSUB TOOBIG
  228.                 GOTO CUSTINST
  229.             END IF
  230.         NEXT i%
  231.         UIPop 1
  232.         GOTO INSTALL
  233.     ELSEIF sz$ = "CHK1" THEN
  234.         RecalcOptFiles PROGFILE
  235.         SetDriveStatus
  236.         GOTO CUSTINST
  237.     ELSEIF sz$ = "CHK2" THEN
  238.         RecalcOptFiles CONFIGS
  239.         SetDriveStatus
  240.         GOTO CUSTINST
  241.     ELSEIF sz$ = "CHK3" THEN
  242.         RecalcOptFiles TEMPLATE
  243.         SetDriveStatus
  244.         GOTO CUSTINST
  245.     ELSEIF sz$ = "CHK4" THEN
  246.         RecalcOptFiles SAMPLES
  247.         SetDriveStatus
  248.         GOTO CUSTINST
  249.     ELSEIF sz$ = "CHK5" THEN
  250.         RecalcOptFiles FITFUNC
  251.         SetDriveStatus
  252.         GOTO CUSTINST
  253.     ELSEIF sz$ = "CHK6" THEN
  254.         RecalcOptFiles INIFILE
  255.         SetDriveStatus
  256.         GOTO CUSTINST
  257.     ELSEIF sz$ = "CHK7" THEN
  258.         RecalcOptFiles HLPFILE
  259.         SetDriveStatus
  260.         GOTO CUSTINST
  261.     ELSEIF sz$ = "CHK8" THEN
  262.         RecalcOptFiles DIMENS3
  263.         SetDriveStatus
  264.         GOTO CUSTINST
  265.  
  266.     ELSEIF sz$ = "BTN1" THEN
  267.         GOTO CUSTINST '**HELP
  268.     ELSEIF sz$ = "BTN2" THEN
  269.         GOTO CUSTINST '**HELP
  270.     ELSEIF sz$ = "BTN3" THEN
  271.         GOTO CUSTINST '**HELP
  272.     ELSEIF sz$ = "BTN4" THEN
  273.         GOTO CUSTINST '**HELP
  274.     ELSEIF sz$ = "BTN5" THEN
  275.         GOTO CUSTINST '**HELP
  276.     ELSEIF sz$ = "BTN6" THEN
  277.         GOTO CUSTINST '**HELP
  278.     ELSEIF sz$ = "BTN7" THEN
  279.         GOTO CUSTINST '**HELP
  280.     ELSEIF sz$ = "BTN8" THEN
  281.         GOTO CUSTINST '**HELP
  282.     ELSEIF sz$ = "BTN9" THEN
  283.         GOTO CUSTINST '**HELP
  284.     ELSEIF sz$ = "REACTIVATE" THEN
  285.         RecalcPath
  286.         SetDriveStatus
  287.         GOTO CUSTINST
  288.     ELSEIF sz$ = "BACK" THEN
  289.         UIPop 1
  290.         GOTO GETPATH
  291.     ELSE
  292.         GOSUB ASKQUIT
  293.         GOTO CUSTINST
  294.     END IF
  295.  
  296. INSTALL:
  297.     ClearCopyList
  298.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  299.     
  300.     IF GetListItem(CHECKSTATES$, PROGFILE) = "ON" THEN
  301.             AddSectionFilesToCopyList "PROGFILE", SrcDir$, DEST$
  302.     END IF
  303.     IF GetListItem(CHECKSTATES$, CONFIGS) = "ON" THEN       
  304.             AddSectionFilesToCopyList "CONFIGS", SrcDir$, DEST$
  305.     END IF
  306.     IF GetListItem(CHECKSTATES$, TEMPLATE) = "ON" THEN      
  307.             AddSectionFilesToCopyList "TEMPLATE1", SrcDir$, DEST$
  308.             AddSectionFilesToCopyList "TEMPLATE2", SrcDir$, BDEST$
  309.     END IF
  310.     IF GetListItem(CHECKSTATES$, SAMPLES) = "ON" THEN    
  311.             AddSectionFilesToCopyList "SAMPLES", SrcDir$, SDEST$
  312.     END IF
  313.     IF GetListItem(CHECKSTATES$, FITFUNC) = "ON" THEN    
  314.             AddSectionFilesToCopyList "FITFUNC", SrcDir$, FDEST$
  315.     END IF
  316.     IF GetListItem(CHECKSTATES$, INIFILE) = "ON" THEN    
  317.             AddSectionFilesToCopyList "INIFILE", SrcDir$, DEST$
  318.     END IF
  319.     IF GetListItem(CHECKSTATES$, HLPFILE) = "ON" THEN    
  320.             AddSectionFilesToCopyList "HLPFILE", SrcDir$, DEST$
  321.     END IF
  322.  
  323.     IF GetWindowsMinorVersion() = 0 THEN
  324.             AddSectionFilesToCopyList "WIN30", SrcDir$, SYSDEST$
  325.     ENDIF
  326.     CreateDir DEST$, cmoNone
  327.     CreateDir SDEST$, cmoNone
  328.     CreateDir FDEST$, cmoNone
  329.     CreateDir BDEST$, cmoNone
  330.     CopyFilesInCopyList
  331.  
  332. D3:
  333.     IF GetListItem(CHECKSTATES$, DIMENS3) = "ON" THEN 
  334.     szText$="If your package includes the optional 3D/Contour module,please insert the disk into drive: "+GetSymbolValue("STF_SRCDIR")+". Otherwise press cancel to skip this optional installation." 
  335.     i%=DoMsgBox(szText$,"Origin",1)
  336.     IF i%=1 THEN
  337.       IF GetSizeOfFile(SrcDir$+"3D.ID") = 0 THEN  
  338.             GOTO D3
  339.       ELSE 
  340.         CursorSave% = ShowWaitCursor()
  341.         szFulPath$=SrcDir$
  342.         CopyFile szFulPath$+"lab3d.dll", DEST$+"lab3d.dll",cmoNone,0
  343.         CopyFile szFulPath$+"labcolor.dll",DEST$+"labcolor.dll",cmoNone,0
  344.         CopyFile szFulPath$+"mesh.otp",DEST$+"mesh.otp",cmoNone,0
  345.     CopyFile szFulPath$+"xconst.otp",DEST$+"xconst.otp",cmoNone,0
  346.     CopyFile szFulPath$+"yconst.otp",DEST$+"yconst.otp",cmoNone,0
  347.         CopyFile szFulPath$+"wirefrm.otp",DEST$+"wirefrm.otp",cmoNone,0
  348.         CopyFile szFulPath$+"wireface.otp",DEST$+"wireface.otp",cmoNone,0
  349.         CopyFile szFulPath$+"cmap.otp",DEST$+"cmap.otp",cmoNone,0
  350.  
  351.         CopyFile szFulPath$+"3d.otp",DEST$+"3d.otp",cmoNone,0
  352.         CopyFile szFulPath$+"Traject.otp",DEST$+"Traject.otp",cmoNone,0
  353.  
  354.         CopyFile szFulPath$+"bar3d.otp",DEST$+"bar3d.otp",cmoNone,0
  355.  
  356.         CopyFile szFulPath$+"ribbon.otp",DEST$+"RIBBON.OTP",cmoNone,0
  357.         CopyFile szFulPath$+"walls.otp",DEST$+"walls.otp",cmoNone,0
  358.         CopyFile szFulPath$+"water3d.otp",DEST$+"water3d.otp",cmoNone,0
  359.         
  360.         CopyFile szFulPath$+"3d.cnf",DEST$+"3D.CNF",cmoNone,0
  361.         CopyFile szFulPath$+"lab3d.hlp",DEST$+"lab3d.hlp",cmoNone,0
  362.         CopyFile szFulPath$+"labmatrx.dll",DEST$+"labmatrx.dll",cmoNone,0
  363.         CopyFile szFulPath$+"mathgrid.dll",DEST$+"mathgrid.dll",cmoNone,0
  364.         CopyFile szFulPath$+"matrix.cnf",DEST$+"matrix.cnf",cmoNone,0
  365.  
  366.         CopyFile szFulPath$+"contour.dll",DEST$+"contour.dll",cmoNone,0
  367.         CopyFile szFulPath$+"contour.otp",DEST$+"contour.otp",cmoNone,0
  368.         CopyFile szFulPath$+"contgray.otp",DEST$+"contgray.otp",cmoNone,0
  369.         CopyFile szFulPath$+"contline.otp",DEST$+"contline.otp",cmoNone,0
  370.         CopyFile szFulPath$+"contour.cnf",DEST$+"contour.cnf",cmoNone,0
  371.  
  372.         RestoreCursor CursorSave%
  373.       ENDIF
  374.     ELSE 
  375.         OPT1OPT$="0"
  376.       ''  szStr$="Call MicroCal today to get the 3D application."
  377.       ''  j%=DoMsgBox(szStr$,"ORIGIN",0)
  378.     ENDIF
  379.     END IF
  380.  
  381.  
  382.     CreateProgmanGroup "MicroCal Origin", "", cmoOverwrite
  383.     ShowProgmanGroup  "MicroCal Origin", 1, cmoNone
  384.     CreateProgmanItem "MicroCal Origin ", "Origin 3.0", MakePath(DEST$,"origin.exe"), "", cmoOverwrite
  385.     IF (OPT1OPT$ = "1") THEN
  386.     CreateProgmanItem "MicroCal Origin", "3D+CONTOUR 3.0", MakePath(DEST$,"origin.exe -a 3D -a contour"), "", cmoOverwrite
  387.     ENDIF
  388.     AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  389.  
  390. QUIT:
  391.     ON ERROR GOTO ERRQUIT
  392.  
  393.     IF ERR = 0 THEN
  394.         dlg% = EXITSUCCESS
  395.     ELSEIF ERR = STFQUIT THEN
  396.         dlg% = EXITQUIT
  397.     ELSE
  398.         dlg% = EXITFAILURE
  399.     END IF
  400. QUITL1:
  401.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  402.     IF sz$ = "REACTIVATE" THEN
  403.         GOTO QUITL1
  404.     END IF
  405.     UIPop 1
  406.  
  407.     END
  408.  
  409. ERRQUIT:
  410.     i% = DoMsgBox("Setup sources were corrupted!", "Installation Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  411.     END
  412.  
  413. TOOBIG:
  414.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  415.     IF sz$ = "REACTIVATE" THEN
  416.         RecalcPath
  417.         SetDriveStatus
  418.         GOTO TOOBIG
  419.     END IF
  420.     UIPop 1
  421.     RETURN
  422.  
  423. BADPATH:
  424.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  425.     IF sz$ = "REACTIVATE" THEN
  426.         RecalcPath
  427.         SetDriveStatus
  428.         GOTO BADPATH
  429.     END IF
  430.     UIPop 1
  431.     RETURN
  432.  
  433. OVERWR:
  434.    IF GetSizeOfFile(DEST$+"ORIGIN.EXE") = 0 THEN
  435.    ELSE
  436.        sz$ = UIStartDlg(CUIDLL$, OVERWRITE, "FInfoDlgProc", APPHELP, HELPPROC$)
  437.        IF sz$ = "EXIT" THEN
  438.           UIPopAll
  439.           ERROR STFQUIT
  440.        ELSEIF sz$ = "CONTINUE" THEN
  441.           UIPop 1
  442.        ELSEIF sz$ =  "BACK" THEN
  443.           UIPop 1
  444.           GOTO GETPATH
  445.        ELSE
  446.         GOSUB ASKQUIT
  447.         GOTO OVERWR
  448.        END IF
  449.    ENDIF
  450.    RETURN
  451.  
  452. ASKQUIT:
  453.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  454.  
  455.     IF sz$ = "EXIT" THEN
  456.         UIPopAll
  457.         ERROR STFQUIT
  458.     ELSEIF sz$ = "REACTIVATE" THEN
  459.         GOTO ASKQUIT
  460.     ELSE
  461.         UIPop 1
  462.     END IF
  463.     RETURN
  464.  
  465.  
  466. SUB AddOptFilesToCopyList (ftype%) STATIC
  467.  
  468.     IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
  469.         SrcDir$ = GetSymbolValue("STF_SRCDIR")
  470.         IF ftype% = PROGFILE THEN
  471.             AddSectionFilesToCopyList "PROGFILE", SrcDir$, DEST$
  472.            '** AddSectionFilesToCopyList "COMMDLG", SrcDir$, DEST$
  473.         ELSEIF ftype% = CONFIGS THEN
  474.             AddSectionFilesToCopyList "CONFIGS", SrcDir$, DEST$
  475.         ELSEIF ftype% = TEMPLATE THEN
  476.             AddSectionFilesToCopyList "TEMPLATE1", SrcDir$, DEST$
  477.             AddSectionFilesToCopyList "TEMPLATE2", SrcDir$, BDEST$
  478.         ELSEIF ftype% = SAMPLES THEN
  479.             AddSectionFilesToCopyList "SAMPLES", SrcDir$, SDEST$
  480.         ELSEIF ftype% = FITFUNC THEN
  481.             AddSectionFilesToCopyList "FITFUNC", SrcDir$, FDEST$
  482.         ELSEIF ftype% = INIFILE THEN
  483.             AddSectionFilesToCopyList "INIFILE", SrcDir$, DEST$
  484.         ELSEIF ftype% = HLPFILE THEN
  485.             AddSectionFilesToCopyList "HLPFILE", SrcDir$, DEST$
  486.         ELSEIF ftype% = DIMENS3 THEN
  487.             AddSectionFilesToCopyList "3DIMENS", SrcDir$, DEST$
  488.             AddSectionFilesToCopyList "CONTOUR", SrcDir$, DEST$
  489.         END IF
  490.         SrcDir$ = ""
  491.     END IF
  492. END SUB
  493.  
  494. SUB RecalcOptFiles (ftype%) STATIC
  495.     CursorSave% = ShowWaitCursor()
  496.     ClearCopyList
  497.     AddOptFilesToCopyList ftype%
  498.  
  499.     fExtra% = 0
  500.     IF ftype% = PROGFILE THEN
  501.         ListSym$ = PROGNEEDS$
  502.         IF GetListItem(CHECKSTATES$, PROGFILE) = "ON" THEN
  503.             ''Add extra cost to Windows drive for ini/progman, etc.
  504.             ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  505.             ReplaceListItem EXTRACOSTS$, ndrive%, "20480"
  506.             fExtra% = 1
  507.         END IF
  508.     ELSEIF ftype% = CONFIGS THEN
  509.         ListSym$ = CONFNEEDS$
  510.     ELSEIF ftype% = TEMPLATE THEN
  511.         ListSym$ = TEMPNEEDS$
  512.     ELSEIF ftype% = SAMPLES THEN
  513.         ListSym$ = SAMPNEEDS$
  514.     ELSEIF ftype% = FITFUNC THEN
  515.         ListSym$ = FITNEEDS$
  516.     ELSEIF ftype% = INIFILE THEN
  517.         ListSym$ = ININEEDS$
  518.     ELSEIF ftype% = HLPFILE THEN
  519.         ListSym$ = HLPNEEDS$
  520.     ELSEIF ftype% = DIMENS3 THEN
  521.         ListSym$ = DIM3NEEDS$
  522.     END IF
  523.  
  524.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  525.  
  526.     cost& = 0
  527.       FOR i% = 1 TO 26 STEP 1
  528.       cost&  = cost& + VAL(GetListItem(ListSym$, i%))
  529.       NEXT i%
  530.    
  531.  
  532.     ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
  533.  
  534.     IF StillNeed& > 0 THEN
  535.         ReplaceListItem BIGLIST$, ftype%, "YES"
  536.     ELSE
  537.         ReplaceListItem BIGLIST$, ftype%, ""
  538.     END IF
  539.  
  540.     IF fExtra% THEN
  541.         ReplaceListItem EXTRACOSTS$, ndrive%, "0"
  542.     END IF
  543.     RestoreCursor CursorSave%
  544.     ListSym$ = ""
  545. END SUB
  546.  
  547. SUB RecalcPath STATIC
  548.  
  549.     CursorSave% = ShowWaitCursor()
  550.  
  551.     RecalcOptFiles PROGFILE
  552.     RecalcOptFiles CONFIGS
  553.     RecalcOptFiles TEMPLATE
  554.     RecalcOptFiles SAMPLES
  555.     RecalcOptFiles FITFUNC
  556.     RecalcOptFiles INIFILE
  557.     RecalcOptFiles HLPFILE
  558.     RecalcOptFiles DIMENS3
  559.  
  560.     RestoreCursor CursorSave%
  561. END SUB
  562.  
  563. SUB SetDriveStatus STATIC
  564.  
  565.     drive$ = MID$(DEST$, 1, 1)
  566.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  567.     cost& = VAL(GetListItem(PROGNEEDS$, ndrive%)) + VAL(GetListItem(CONFNEEDS$, ndrive%)) + VAL(GetListItem(TEMPNEEDS$, ndrive%))
  568.     cost& = cost& + VAL(GetListItem(SAMPNEEDS$, ndrive%)) + VAL(GetListItem(ININEEDS$, ndrive%)) + VAL(GetListItem(HLPNEEDS$, ndrive%))
  569.     cost& = cost& + VAL(GetListItem(FITNEEDS$, ndrive%))+VAL(GetListItem(DIM3NEEDS$, ndrive%))
  570.     free& = GetFreeSpaceForDrive(drive$)
  571.     ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
  572.     ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  573.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  574.     IF free& < cost& THEN
  575.         FOR i% = 1 TO NUMTYPES STEP 1
  576.           ReplaceListItem BIGLIST$, i%, "YES"
  577.         NEXT i%
  578.     END IF
  579.  
  580.     IF drive$ = WINDRIVE$ THEN
  581.         ReplaceListItem DRIVETEXT$, 4, ""
  582.         ReplaceListItem DRIVETEXT$, 5, ""
  583.         ReplaceListItem DRIVETEXT$, 6, ""
  584.     ELSE
  585.         ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  586.         cost& = VAL(GetListItem(PROGNEEDS$, ndrive%)) + VAL(GetListItem(CONFNEEDS$, ndrive%)) + VAL(GetListItem(TEMPNEEDS$, ndrive%))
  587.         cost& = cost& + VAL(GetListItem(SAMPNEEDS$, ndrive%)) + VAL(GetListItem(ININEEDS$, ndrive%)) + VAL(GetListItem(HLPNEEDS$, ndrive%))
  588.         cost& = cost& + VAL(GetListItem(FITNEEDS$, ndrive%))+VAL(GetListItem(DIM3NEEDS$, ndrive%))
  589.         IF cost& = 0 THEN
  590.             ReplaceListItem DRIVETEXT$, 4, ""
  591.             ReplaceListItem DRIVETEXT$, 5, ""
  592.             ReplaceListItem DRIVETEXT$, 6, ""
  593.         ELSE
  594.             free& = GetFreeSpaceForDrive(WINDRIVE$)
  595.             ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
  596.             ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
  597.             ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
  598.         END IF
  599.     END IF
  600. END SUB
  601.  
  602. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  603.     IF szDir$ = "" THEN
  604.         MakePath = szFile$
  605.     ELSEIF szFile$ = "" THEN
  606.         MakePath = szDir$
  607.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  608.         MakePath = szDir$ + szFile$
  609.     ELSE
  610.         MakePath = szDir$ + "\" + szFile$
  611.     END IF
  612. END FUNCTION
  613.  
  614.