home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Learn 3D Graphics Programming on the PC
/
Learn_3D_Graphics_Programming_on_the_PC_Ferraro.iso
/
rwwin
/
rwsetup.ms_
/
rwsetup.bin
Wrap
Text File
|
1995-11-14
|
39KB
|
904 lines
'**************************************************************************
'* RenderWare Installation
'**************************************************************************
'$DEFINE DEBUG ''Define for script development/debugging
'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'
''Dialog ID's
CONST WELCOME = 100
CONST ASKQUIT = 200
CONST DESTPATH = 300
CONST EXITFAILURE = 400
CONST EXITQUIT = 600
CONST EXITSUCCESS = 700
CONST OPTIONS = 800
CONST APPHELP = 900
CONST COMPCHECK = 1000
CONST DEMOCHECK = 1100
CONST CUSTINST = 6200
CONST TOOBIG = 6300
CONST BADPATH = 6400
CONST COMPHELP = 1200
CONST DEMOHELP = 1300
CONST PATHCHECK = 1600
CONST BILL1 = 1700
CONST BILL2 = 1710
CONST BILL3 = 1720
CONST BILL4 = 1730
CONST BILL5 = 1740
CONST BILL6 = 1750
CONST BILL7 = 1760
CONST BILL8 = 1770
CONST BILL9 = 1780
''Bitmap ID
CONST LOGO = 1
''Demo Types
CONST CYBERDEMO = 1
CONST KNIGHTDEMO = 2
CONST MAZEDEMO = 3
CONST ROLLERDEMO = 4
CONST VIEWDEMO = 5
CONST SHOPDEMO = 6
CONST VISDEMO = 7
CONST PAINTDEMO = 8
CONST WALKDEMO = 9
CONST SIMDEMO = 10
''Compiler Types
CONST WATDLLCOMP = 1
CONST WATCOMCOMP = 2
CONST MSVC15COMP = 3
CONST BORC40COMP = 4
CONST MSVC20COMP = 5
CONST VISBASCOMP = 6
''File Types
CONST COMPFILES = 1
CONST DEMO31FILES = 2
CONST DEMO32FILES = 3
CONST SAMPLEFILES = 4
CONST SCRIPTFILES = 5
CONST DOCFILES = 6
CONST ROOTFILES = 7
GLOBAL DEST$ ''Default destination directory.
GLOBAL DESTDRIVE$ ''Default destination directory.
GLOBAL WINDRIVE$ ''Windows drive letter.
GLOBAL WINDIR$
GLOBAL DRIVENEEDED&
GLOBAL DRIVEFREE&
''CustInst list symbol names
GLOBAL ROOTNEEDS$ ''Option list costs per drive
GLOBAL COMPNEEDS$ ''Option list costs per drive
GLOBAL DEMO31NEEDS$
GLOBAL DEMO32NEEDS$
GLOBAL SAMPLENEEDS$
GLOBAL SCRIPTNEEDS$
GLOBAL DOCNEEDS$
''Dialog list symbol names
GLOBAL COMPSTATES$
GLOBAL DEMO31STATES$
GLOBAL DEMO32STATES$
GLOBAL CHECKSTATES$
GLOBAL STATUSTEXT$
GLOBAL DRIVETEXT$
DECLARE SUB AddOptFilesToCopyList (ftype%)
DECLARE SUB RecalcOptFiles (ftype%)
DECLARE SUB RecalcPath
DECLARE SUB SetDriveStatus
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
''following were taken from windows.h. &H means they're hex
CONST WS_VISIBLE=&H10000000
CONST WS_BORDER =&H00800000
CONST WS_CLIPCHILDREN =&H02000000
CONST GWL_STYLE =-16
CONST SW_SHOWMAXIMIZED=3
DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%,iShow%) AS INTEGER
DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG ''this declaration must all be on one line
INIT:
hWnd%=HwndFrame()
i1&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
j1%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
CUIDLL$ = "mscuistf.dll" ''custom user interface dll
HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
SetBitmap CUIDLL$, LOGO
SetTitle "RenderWare Installation"
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "RWSETUP.INF"
END IF
ReadInfFile szInf$
WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
DEST$ = WINDRIVE$ + ":\RWWIN"
DESTDRIVE$ = MID$(DEST$, 1, 1)
WINDIR$ = GetWindowsDir
''CustInst list symbols
DEMO31STATES$ = "Demo31CheckItemsIn"
DEMO32STATES$ = "Demo32CheckItemsIn"
COMPSTATES$ = "CompCheckItemsIn"
CHECKSTATES$ = "CheckItemsState"
STATUSTEXT$ = "StatusItemsText"
DRIVETEXT$ = "DriveStatusText"
FOR i% = WATDLLCOMP TO VISBASCOMP STEP 1
AddListItem COMPSTATES$, "ON"
NEXT i%
FOR i% = CYBERDEMO TO SIMDEMO STEP 1
AddListItem DEMO31STATES$, "ON"
AddListItem DEMO32STATES$, "ON"
NEXT i%
FOR i% = COMPFILES TO ROOTFILES STEP 1
AddListItem STATUSTEXT$, ""
AddListItem CHECKSTATES$, "ON"
NEXT i%
FOR i% = 1 TO 7 STEP 1
AddListItem DRIVETEXT$, ""
NEXT i%
ReplaceListItem DRIVETEXT$, 7, DEST$
''Disk cost list symbols
ROOTNEEDS$ = "RootNeeds"
COMPNEEDS$ = "CompNeeds"
DEMO31NEEDS$ = "Demo31Needs"
DEMO32NEEDS$ = "Demo32Needs"
SAMPLENEEDS$ = "SampleNeeds"
SCRIPTNEEDS$ = "ScriptNeeds"
DOCNEEDS$ = "DocNeeds"
RecalcPath
SetDriveStatus
'$IFDEF DEBUG
i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal
'$ENDIF ''DEBUG
'' Set up billboard list
'' ClearBillboardList
'' AddToBillboardList CUIDLL$, BILL1, "FModelessDlgProc", 10
'' AddToBillboardList CUIDLL$, BILL2, "FModelessDlgProc", 10
'' AddToBillboardList CUIDLL$, BILL3, "FModelessDlgProc", 10
'' AddToBillboardList CUIDLL$, BILL4, "FModelessDlgProc", 10
'' AddToBillboardList CUIDLL$, BILL5, "FModelessDlgProc", 10
'' AddToBillboardList CUIDLL$, BILL6, "FModelessDlgProc", 10
'' AddToBillboardList CUIDLL$, BILL7, "FModelessDlgProc", 10
'' AddToBillboardList CUIDLL$, BILL8, "FModelessDlgProc", 10
'' AddToBillboardList CUIDLL$, BILL9, "FModelessDlgProc", 10
'' SetCopyGaugePosition 10, 180
WELCOME:
sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
ELSE
GOSUB ASKQUIT
GOTO WELCOME
END IF
CUSTINST:
sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
''Install only if it will fit.
IF DRIVENEEDED& > DRIVEFREE& THEN
GOSUB TOOBIG
GOTO CUSTINST
END IF
UIPop 1
GOTO INSTALL
ELSEIF sz$ = "PATH" THEN
GOTO GETPATH
ELSEIF sz$ = "CHK1" THEN
RecalcOptFiles COMPFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK2" THEN
RecalcOptFiles DEMO31FILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK3" THEN
RecalcOptFiles DEMO32FILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK4" THEN
RecalcOptFiles SAMPLEFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK5" THEN
RecalcOptFiles SCRIPTFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK6" THEN
RecalcOptFiles DOCFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "BTN1" THEN
GOSUB COMPINST
RecalcOptFiles COMPFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "BTN2" THEN
GOSUB DEMO31INST
RecalcOptFiles DEMO31FILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "BTN3" THEN
GOSUB DEMO32INST
RecalcOptFiles DEMO32FILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO CUSTINST
ELSE
GOSUB ASKQUIT
GOTO CUSTINST
END IF
COMPINST:
sz$ = UIStartDlg(CUIDLL$, COMPCHECK, "FCompCheckDlgProc", COMPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
RETURN
ELSEIF sz$ = "BACK" THEN
UIPop 1
RETURN
ELSEIF sz$ = "REACTIVATE" THEN
GOTO COMPINST
ELSE
GOSUB ASKQUIT
GOTO COMPINST
END IF
DEMO31INST:
sz$ = UIStartDlg(CUIDLL$, DEMOCHECK, "FDemo31CheckDlgProc", DEMOHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
RETURN
ELSEIF sz$ = "BACK" THEN
UIPop 1
RETURN
ELSEIF sz$ = "REACTIVATE" THEN
GOTO DEMO31INST
ELSE
GOSUB ASKQUIT
GOTO DEMO31INST
END IF
DEMO32INST:
sz$ = UIStartDlg(CUIDLL$, DEMOCHECK, "FDemo32CheckDlgProc", DEMOHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
RETURN
ELSEIF sz$ = "BACK" THEN
UIPop 1
RETURN
ELSEIF sz$ = "REACTIVATE" THEN
GOTO DEMO32INST
ELSE
GOSUB ASKQUIT
GOTO DEMO32INST
END IF
INSTALL:
IF DoesDirExist(DEST$) = 1 THEN
sz$ = UIStartDlg(CUIDLL$, PATHCHECK, "FInfoDlgProc", 0, "")
UIPop 1
if sz$ <> "CONTINUE" THEN
GOTO CUSTINST
END IF
END IF
ClearCopyList
AddOptFilesToCopyList ROOTFILES
AddOptFilesToCopyList COMPFILES
AddOptFilesToCopyList DEMO31FILES
AddOptFilesToCopyList DEMO32FILES
AddOptFilesToCopyList SAMPLEFILES
AddOptFilesToCopyList SCRIPTFILES
AddOptFilesToCopyList DOCFILES
CreateDir DEST$, cmoNone
CopyFilesInCopyList
IF GetListItem(CHECKSTATES$, DEMO31FILES) = "ON" THEN
CreateProgmanGroup "RenderWare Demo", "", cmoNone
ShowProgmanGroup "RenderWare Demo", 1, cmoNone
CreateProgmanItem "RenderWare Demo", "RfView", DEST$ + "\demo\win3.1x\rfview.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Demo", "RfView Readme", DEST$ + "\demo\win3.1x\rfview.txt", "", cmoOverwrite
IF GetListItem(DEMO31STATES$, CYBERDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Demo", "Cyberstreet", DEST$ + "\demo\win3.1x\rwcyber.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Demo", "Cyberstreet Readme", DEST$ + "\demo\win3.1x\rwcyber.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO31STATES$, KNIGHTDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Demo", "Knight", DEST$ + "\demo\win3.1x\rwknight.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Demo", "Knight Readme", DEST$ + "\demo\win3.1x\rwknight.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO31STATES$, MAZEDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Demo", "Maze", DEST$ + "\demo\win3.1x\rwmaze.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Demo", "Maze Readme", DEST$ + "\demo\win3.1x\rwmaze.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO31STATES$, ROLLERDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Demo", "Rollercoaster", DEST$ + "\demo\win3.1x\rwroller.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Demo", "Rollercoaster Readme", DEST$ + "\demo\win3.1x\rwroller.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO31STATES$, VIEWDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Demo", "Viewer", DEST$ + "\demo\win3.1x\rwview.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Demo", "Viewer Help", DEST$ + "\demo\win3.1x\rwview.hlp", "", cmoOverwrite
END IF
IF GetListItem(DEMO31STATES$, SHOPDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Demo", "TeleShopping", DEST$ + "\demo\win3.1x\rwshop.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Demo", "TeleShopping Readme", DEST$ + "\demo\win3.1x\rwshop.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO31STATES$, VISDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Demo", "Visualisation", DEST$ + "\demo\win3.1x\rwvis.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Demo", "Visualisation Readme", DEST$ + "\demo\win3.1x\rwvis.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO31STATES$, PAINTDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Demo", "Object Painter", DEST$ + "\demo\win3.1x\rwpaint.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Demo", "Object Painter Readme", DEST$ + "\demo\win3.1x\rwpaint.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO31STATES$, WALKDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Demo", "Walkthrough", DEST$ + "\demo\win3.1x\rwwalk.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Demo", "Walkthrough Readme", DEST$ + "\demo\win3.1x\rwwalk.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO31STATES$, SIMDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Demo", "N-Body Simulation", DEST$ + "\demo\win3.1x\rwsim.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Demo", "N-Body Simulation Readme", DEST$ + "\demo\win3.1x\rwsim.txt", "", cmoOverwrite
END IF
END IF
IF GetListItem(CHECKSTATES$, DEMO32FILES) = "ON" THEN
CreateProgmanGroup "RenderWare Win32 Demo", "", cmoNone
ShowProgmanGroup "RenderWare Win32 Demo", 1, cmoNone
CreateProgmanItem "RenderWare Win32 Demo", "RfView", DEST$ + "\demo\win32\rfview.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Win32 Demo", "RfView Readme", DEST$ + "\demo\win32\rfview.txt", "", cmoOverwrite
IF GetListItem(DEMO32STATES$, CYBERDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Win32 Demo", "Cyberstreet", DEST$ + "\demo\win32\rwcyber.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Win32 Demo", "Cyberstreet Readme", DEST$ + "\demo\win32\rwcyber.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO32STATES$, KNIGHTDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Win32 Demo", "Knight", DEST$ + "\demo\win32\rwknight.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Win32 Demo", "Knight Readme", DEST$ + "\demo\win32\rwknight.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO32STATES$, MAZEDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Win32 Demo", "Maze", DEST$ + "\demo\win32\rwmaze.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Win32 Demo", "Maze Readme", DEST$ + "\demo\win32\rwmaze.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO32STATES$, ROLLERDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Win32 Demo", "Rollercoaster", DEST$ + "\demo\win32\rwroller.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Win32 Demo", "Rollercoaster Readme", DEST$ + "\demo\win32\rwroller.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO32STATES$, VIEWDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Win32 Demo", "Viewer", DEST$ + "\demo\win32\rwview.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Win32 Demo", "Viewer Help", DEST$ + "\demo\win32\rwview.hlp", "", cmoOverwrite
END IF
IF GetListItem(DEMO32STATES$, SHOPDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Win32 Demo", "TeleShopping", DEST$ + "\demo\win32\rwshop.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Win32 Demo", "TeleShopping Readme", DEST$ + "\demo\win32\rwshop.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO32STATES$, VISDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Win32 Demo", "Visualisation", DEST$ + "\demo\win32\rwvis.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Win32 Demo", "Visualisation Readme", DEST$ + "\demo\win32\rwvis.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO32STATES$, PAINTDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Win32 Demo", "Object Painter", DEST$ + "\demo\win32\rwpaint.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Win32 Demo", "Object Painter Readme", DEST$ + "\demo\win32\rwpaint.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO32STATES$, WALKDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Win32 Demo", "Walkthrough", DEST$ + "\demo\win32\rwwalk.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Win32 Demo", "Walkthrough Readme", DEST$ + "\demo\win32\rwwalk.txt", "", cmoOverwrite
END IF
IF GetListItem(DEMO32STATES$, SIMDEMO) = "ON" THEN
CreateProgmanItem "RenderWare Win32 Demo", "N-Body Simulation", DEST$ + "\demo\win32\rwsim.exe", "", cmoOverwrite
CreateProgmanItem "RenderWare Win32 Demo", "N-Body Simulation Readme", DEST$ + "\demo\win32\rwsim.txt", "", cmoOverwrite
END IF
END IF
QUIT:
ON ERROR GOTO ERRQUIT
IF ERR = 0 THEN
dlg% = EXITSUCCESS
ELSEIF ERR = STFQUIT THEN
dlg% = EXITQUIT
ELSE
dlg% = EXITFAILURE
END IF
QUITL1:
sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
GOTO QUITL1
END IF
UIPop 1
END
ERRQUIT:
i% = DoMsgBox("Setup sources were corrupted, call +44 (483) 448822", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
END
GETPATH:
SetSymbolValue "EditTextIn", DEST$
SetSymbolValue "EditFocus", "END"
GETPATHL1:
sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
olddest$ = DEST$
DEST$ = GetSymbolValue("EditTextOut")
''Validate new path.
IF IsDirWritable(DEST$) = 0 THEN
GOSUB BADPATH
GOTO GETPATHL1
END IF
UIPop 1
''Truncate display if too long.
IF LEN(DEST$) > 23 THEN
ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
ELSE
ReplaceListItem DRIVETEXT$, 7, DEST$
END IF
''Recalc if path changed.
IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
RecalcPath
SetDriveStatus
END IF
olddest$ = ""
GOTO CUSTINST
ELSEIF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO GETPATHL1
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO GETPATHL1
ELSE
UIPop 1
GOTO CUSTINST
END IF
TOOBIG:
sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO TOOBIG
END IF
UIPop 1
RETURN
BADPATH:
sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO BADPATH
END IF
UIPop 1
RETURN
ASKQUIT:
sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
IF sz$ = "EXIT" THEN
UIPopAll
ERROR STFQUIT
ELSEIF sz$ = "REACTIVATE" THEN
GOTO ASKQUIT
ELSE
UIPop 1
END IF
RETURN
'**
'** Purpose:
'** Adds the specified option files to the copy list.
'** Arguments:
'** ftype% - type of files to add, one of the following:
'** COMPFILES, DEMOFILES, SAMPLEFILES, SCRIPTFILES
'** Returns:
'** none.
'*************************************************************************
SUB AddOptFilesToCopyList (ftype%) STATIC
SrcDir$ = GetSymbolValue("STF_SRCDIR")
IF ftype% = ROOTFILES THEN
AddSectionFilesToCopyList "RootFiles", SrcDir$, DEST$
AddSectionFilesToCopyList "ConvertFiles", SrcDir$, DEST$ + "\convert"
ELSEIF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
IF ftype% = COMPFILES THEN
IF GetListItem(COMPSTATES$, WATDLLCOMP) = "ON" THEN
AddSectionFilesToCopyList "WATDLLFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "PDLLFiles", SrcDir$, WINDIR$ + "system"
AddSectionFilesToCopyList "PDLLFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "DDLLFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "IncludeFiles", SrcDir$, DEST$ + "\include"
END IF
IF GetListItem(COMPSTATES$, WATCOMCOMP) = "ON" THEN
AddSectionFilesToCopyList "WATLibFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "IncludeFiles", SrcDir$, DEST$ + "\include"
END IF
IF GetListItem(COMPSTATES$, MSVC15COMP) = "ON" THEN
AddSectionFilesToCopyList "MSVC15LibFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "PDLLFiles", SrcDir$, WINDIR$ + "system"
AddSectionFilesToCopyList "PDLLFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "DDLLFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "IncludeFiles", SrcDir$, DEST$ + "\include"
END IF
IF GetListItem(COMPSTATES$, BORC40COMP) = "ON" THEN
AddSectionFilesToCopyList "BORC40LibFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "PDLLFiles", SrcDir$, WINDIR$ + "system"
AddSectionFilesToCopyList "PDLLFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "DDLLFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "IncludeFiles", SrcDir$, DEST$ + "\include"
END IF
IF GetListItem(COMPSTATES$, MSVC20COMP) = "ON" THEN
AddSectionFilesToCopyList "MSVC20LibFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "IncludeFiles", SrcDir$, DEST$ + "\include"
END IF
IF GetListItem(COMPSTATES$, VISBASCOMP) = "ON" THEN
AddSectionFilesToCopyList "PDLLFiles", SrcDir$, WINDIR$ + "system"
AddSectionFilesToCopyList "PDLLFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "DDLLFiles", SrcDir$, DEST$ + "\lib"
AddSectionFilesToCopyList "VBIncludeFiles", SrcDir$, DEST$ + "\vb\include"
AddSectionFilesToCopyList "VBSrcFiles", SrcDir$, DEST$ + "\vb\demo\src\rwvbview"
AddSectionFilesToCopyList "VBDemoFiles", SrcDir$, DEST$ + "\vb\demo\rwvbview"
AddSectionFilesToCopyList "VBFiles", SrcDir$, DEST$ + "\vb"
END IF
ELSEIF ftype% = DEMO31FILES THEN
AddSectionFilesToCopyList "DemoFiles", SrcDir$, DEST$ + "\demo"
AddSectionFilesToCopyList "Demo31Files", SrcDir$, DEST$ + "\demo\win3.1x"
IF GetListItem(DEMO31STATES$, CYBERDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo31CyberFiles", SrcDir$, DEST$ + "\demo\win3.1x"
AddSectionFilesToCopyList "DemoCyberScripts", SrcDir$, DEST$ + "\demo\win3.1x\scripts"
AddSectionFilesToCopyList "DemoCyberTextures", SrcDir$, DEST$ + "\demo\win3.1x\textures"
END IF
IF GetListItem(DEMO31STATES$, KNIGHTDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo31KnightFiles", SrcDir$, DEST$ + "\demo\win3.1x"
AddSectionFilesToCopyList "DemoKnightScripts", SrcDir$, DEST$ + "\demo\win3.1x\scripts"
AddSectionFilesToCopyList "DemoKnightTextures", SrcDir$, DEST$ + "\demo\win3.1x\textures"
END IF
IF GetListItem(DEMO31STATES$, MAZEDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo31MazeFiles", SrcDir$, DEST$ + "\demo\win3.1x"
AddSectionFilesToCopyList "DemoMazeScripts", SrcDir$, DEST$ + "\demo\win3.1x\scripts"
AddSectionFilesToCopyList "DemoMazeTextures", SrcDir$, DEST$ + "\demo\win3.1x\textures"
END IF
IF GetListItem(DEMO31STATES$, ROLLERDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo31RollerFiles", SrcDir$, DEST$ + "\demo\win3.1x"
AddSectionFilesToCopyList "DemoRollerScripts", SrcDir$, DEST$ + "\demo\win3.1x\scripts"
AddSectionFilesToCopyList "DemoRollerTextures", SrcDir$, DEST$ + "\demo\win3.1x\textures"
END IF
IF GetListItem(DEMO31STATES$, VIEWDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo31ViewFiles", SrcDir$, DEST$ + "\demo\win3.1x"
END IF
IF GetListItem(DEMO31STATES$, SHOPDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo31ShopFiles", SrcDir$, DEST$ + "\demo\win3.1x"
AddSectionFilesToCopyList "DemoShopScripts", SrcDir$, DEST$ + "\demo\win3.1x\scripts"
AddSectionFilesToCopyList "DemoShopTextures", SrcDir$, DEST$ + "\demo\win3.1x\textures"
END IF
IF GetListItem(DEMO31STATES$, VISDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo31VisFiles", SrcDir$, DEST$ + "\demo\win3.1x"
AddSectionFilesToCopyList "DemoVisTextures", SrcDir$, DEST$ + "\demo\win3.1x\textures"
END IF
IF GetListItem(DEMO31STATES$, PAINTDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo31PaintFiles", SrcDir$, DEST$ + "\demo\win3.1x"
END IF
IF GetListItem(DEMO31STATES$, WALKDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo31WalkFiles", SrcDir$, DEST$ + "\demo\win3.1x"
AddSectionFilesToCopyList "DemoWalkScripts", SrcDir$, DEST$ + "\demo\win3.1x\scripts"
AddSectionFilesToCopyList "DemoWalkTextures", SrcDir$, DEST$ + "\demo\win3.1x\textures"
END IF
IF GetListItem(DEMO31STATES$, SIMDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo31SimFiles", SrcDir$, DEST$ + "\demo\win3.1x"
END IF
ELSEIF ftype% = DEMO32FILES THEN
AddSectionFilesToCopyList "DemoFiles", SrcDir$, DEST$ + "\demo"
AddSectionFilesToCopyList "Demo32Files", SrcDir$, DEST$ + "\demo\win32"
IF GetListItem(DEMO32STATES$, CYBERDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo32CyberFiles", SrcDir$, DEST$ + "\demo\win32"
AddSectionFilesToCopyList "DemoCyberScripts", SrcDir$, DEST$ + "\demo\win32\scripts"
AddSectionFilesToCopyList "DemoCyberTextures", SrcDir$, DEST$ + "\demo\win32\textures"
END IF
IF GetListItem(DEMO32STATES$, KNIGHTDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo32KnightFiles", SrcDir$, DEST$ + "\demo\win32"
AddSectionFilesToCopyList "DemoKnightScripts", SrcDir$, DEST$ + "\demo\win32\scripts"
AddSectionFilesToCopyList "DemoKnightTextures", SrcDir$, DEST$ + "\demo\win32\textures"
END IF
IF GetListItem(DEMO32STATES$, MAZEDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo32MazeFiles", SrcDir$, DEST$ + "\demo\win32"
AddSectionFilesToCopyList "DemoMazeScripts", SrcDir$, DEST$ + "\demo\win32\scripts"
AddSectionFilesToCopyList "DemoMazeTextures", SrcDir$, DEST$ + "\demo\win32\textures"
END IF
IF GetListItem(DEMO32STATES$, ROLLERDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo32RollerFiles", SrcDir$, DEST$ + "\demo\win32"
AddSectionFilesToCopyList "DemoRollerScripts", SrcDir$, DEST$ + "\demo\win32\scripts"
AddSectionFilesToCopyList "DemoRollerTextures", SrcDir$, DEST$ + "\demo\win32\textures"
END IF
IF GetListItem(DEMO32STATES$, VIEWDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo32ViewFiles", SrcDir$, DEST$ + "\demo\win32"
END IF
IF GetListItem(DEMO32STATES$, SHOPDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo32ShopFiles", SrcDir$, DEST$ + "\demo\win32"
AddSectionFilesToCopyList "DemoShopScripts", SrcDir$, DEST$ + "\demo\win32\scripts"
AddSectionFilesToCopyList "DemoShopTextures", SrcDir$, DEST$ + "\demo\win32\textures"
END IF
IF GetListItem(DEMO32STATES$, VISDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo32VisFiles", SrcDir$, DEST$ + "\demo\win32"
AddSectionFilesToCopyList "DemoVisTextures", SrcDir$, DEST$ + "\demo\win32\textures"
END IF
IF GetListItem(DEMO32STATES$, PAINTDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo32PaintFiles", SrcDir$, DEST$ + "\demo\win32"
END IF
IF GetListItem(DEMO32STATES$, WALKDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo32WalkFiles", SrcDir$, DEST$ + "\demo\win32"
AddSectionFilesToCopyList "DemoWalkScripts", SrcDir$, DEST$ + "\demo\win32\scripts"
AddSectionFilesToCopyList "DemoWalkTextures", SrcDir$, DEST$ + "\demo\win32\textures"
END IF
IF GetListItem(DEMO32STATES$, SIMDEMO) = "ON" THEN
AddSectionFilesToCopyList "Demo32SimFiles", SrcDir$, DEST$ + "\demo\win32"
END IF
ELSEIF ftype% = SAMPLEFILES THEN
AddSectionFilesToCopyList "SrcFiles", SrcDir$, DEST$ + "\src"
AddSectionFilesToCopyList "SrcCommonFiles", SrcDir$, DEST$ + "\src\common"
AddSectionFilesToCopyList "SrcCyberFiles", SrcDir$, DEST$ + "\src\sample\rwcyber"
AddSectionFilesToCopyList "SrcCyberSoundFiles", SrcDir$, DEST$ + "\src\sample\rwcyber\sound"
AddSectionFilesToCopyList "SrcCyberWavemix", SrcDir$, DEST$ + "\src\sample\rwcyber\wavemix"
AddSectionFilesToCopyList "DemoCyberScripts", SrcDir$, DEST$ + "\src\sample\rwcyber\scripts"
AddSectionFilesToCopyList "DemoCyberTextures", SrcDir$, DEST$ + "\src\sample\rwcyber\textures"
AddSectionFilesToCopyList "SrcKnightFiles", SrcDir$, DEST$ + "\src\sample\rwknight"
AddSectionFilesToCopyList "DemoKnightScripts", SrcDir$, DEST$ + "\src\sample\rwknight\scripts"
AddSectionFilesToCopyList "DemoKnightTextures", SrcDir$, DEST$ + "\src\sample\rwknight\textures"
AddSectionFilesToCopyList "SrcMazeFiles", SrcDir$, DEST$ + "\src\sample\rwmaze"
AddSectionFilesToCopyList "DemoMazeScripts", SrcDir$, DEST$ + "\src\sample\rwmaze\scripts"
AddSectionFilesToCopyList "DemoMazeTextures", SrcDir$, DEST$ + "\src\sample\rwmaze\textures"
AddSectionFilesToCopyList "SrcRollerFiles", SrcDir$, DEST$ + "\src\sample\rwroller"
AddSectionFilesToCopyList "DemoRollerScripts", SrcDir$, DEST$ + "\src\sample\rwroller\scripts"
AddSectionFilesToCopyList "DemoRollerTextures", SrcDir$, DEST$ + "\src\sample\rwroller\textures"
AddSectionFilesToCopyList "SrcViewFiles", SrcDir$, DEST$ + "\src\sample\rwview"
AddSectionFilesToCopyList "SrcMFCFiles", SrcDir$, DEST$ + "\src\gift\rwmfc"
AddSectionFilesToCopyList "SrcMFCResFiles", SrcDir$, DEST$ + "\src\gift\rwmfc\res"
AddSectionFilesToCopyList "SrcShopFiles", SrcDir$, DEST$ + "\src\gift\rwshop"
AddSectionFilesToCopyList "DemoShopScripts", SrcDir$, DEST$ + "\src\gift\rwshop\scripts"
AddSectionFilesToCopyList "DemoShopTextures", SrcDir$, DEST$ + "\src\gift\rwshop\textures"
AddSectionFilesToCopyList "SrcVisFiles", SrcDir$, DEST$ + "\src\gift\rwvis"
AddSectionFilesToCopyList "DemoVisTextures", SrcDir$, DEST$ + "\src\gift\rwvis\textures"
AddSectionFilesToCopyList "SrcPaintFiles", SrcDir$, DEST$ + "\src\gift\rwpaint"
AddSectionFilesToCopyList "SrcWalkFiles", SrcDir$, DEST$ + "\src\gift\rwwalk"
AddSectionFilesToCopyList "DemoWalkScripts", SrcDir$, DEST$ + "\src\gift\rwwalk\scripts"
AddSectionFilesToCopyList "DemoWalkTextures", SrcDir$, DEST$ + "\src\gift\rwwalk\textures"
AddSectionFilesToCopyList "SrcSimFiles", SrcDir$, DEST$ + "\src\gift\rwsim"
AddSectionFilesToCopyList "SrcRfviewFiles", SrcDir$, DEST$ + "\src\sample\rfview"
AddSectionFilesToCopyList "L10", SrcDir$, DESTDRIVE$ + ":\l3d\chap10"
AddSectionFilesToCopyList "L11", SrcDir$, DESTDRIVE$ + ":\l3d\chap11"
AddSectionFilesToCopyList "L12Car", SrcDir$, DESTDRIVE$ + ":\l3d\chap12\car"
AddSectionFilesToCopyList "L12F16", SrcDir$, DESTDRIVE$ + ":\l3d\chap12\f16"
AddSectionFilesToCopyList "L12Tracks", SrcDir$, DESTDRIVE$ + ":\l3d\chap12\tracks"
AddSectionFilesToCopyList "L12Triad", SrcDir$, DESTDRIVE$ + ":\l3d\chap12\triad"
AddSectionFilesToCopyList "L13Compos", SrcDir$, DESTDRIVE$ + ":\l3d\chap13\compos"
AddSectionFilesToCopyList "L13Coral", SrcDir$, DESTDRIVE$ + ":\l3d\chap13\coral"
AddSectionFilesToCopyList "L15", SrcDir$, DESTDRIVE$ + ":\l3d\chap15"
AddSectionFilesToCopyList "L19Dolphin", SrcDir$, DESTDRIVE$ + ":\l3d\chap19\dolphin"
AddSectionFilesToCopyList "L19Face", SrcDir$, DESTDRIVE$ + ":\l3d\chap19\face"
AddSectionFilesToCopyList "L19Include", SrcDir$, DESTDRIVE$ + ":\l3d\chap19\include"
AddSectionFilesToCopyList "L19Misc", SrcDir$, DESTDRIVE$ + ":\l3d\chap19\misc"
AddSectionFilesToCopyList "L19Reflect", SrcDir$, DESTDRIVE$ + ":\l3d\chap19\reflect"
AddSectionFilesToCopyList "L19Robot", SrcDir$, DESTDRIVE$ + ":\l3d\chap19\robot"
AddSectionFilesToCopyList "L19Share", SrcDir$, DESTDRIVE$ + ":\l3d\chap19\share"
AddSectionFilesToCopyList "L19Triad", SrcDir$, DESTDRIVE$ + ":\l3d\chap19\triad"
AddSectionFilesToCopyList "L19Tv", SrcDir$, DESTDRIVE$ + ":\l3d\chap19\tv"
AddSectionFilesToCopyList "L05Box", SrcDir$, DESTDRIVE$ + ":\l3d\chap5\box"
AddSectionFilesToCopyList "L05Poly", SrcDir$, DESTDRIVE$ + ":\l3d\chap5\poly"
AddSectionFilesToCopyList "L05Robot", SrcDir$, DESTDRIVE$ + ":\l3d\chap5\robot"
AddSectionFilesToCopyList "L05Tex1", SrcDir$, DESTDRIVE$ + ":\l3d\chap5\tex1"
AddSectionFilesToCopyList "L06Kitchen", SrcDir$, DESTDRIVE$ + ":\l3d\chap6\kitchen"
AddSectionFilesToCopyList "L06Robot", SrcDir$, DESTDRIVE$ + ":\l3d\chap6\robot"
AddSectionFilesToCopyList "L06Ship", SrcDir$, DESTDRIVE$ + ":\l3d\chap6\ship"
AddSectionFilesToCopyList "L07Ball", SrcDir$, DESTDRIVE$ + ":\l3d\chap7\ball"
AddSectionFilesToCopyList "L07Color", SrcDir$, DESTDRIVE$ + ":\l3d\chap7\color"
AddSectionFilesToCopyList "L08Box", SrcDir$, DESTDRIVE$ + ":\l3d\chap8\box"
AddSectionFilesToCopyList "L08Fore", SrcDir$, DESTDRIVE$ + ":\l3d\chap8\fore"
AddSectionFilesToCopyList "L08Turn", SrcDir$, DESTDRIVE$ + ":\l3d\chap8\turn"
AddSectionFilesToCopyList "L08Wall", SrcDir$, DESTDRIVE$ + ":\l3d\chap8\wall"
AddSectionFilesToCopyList "L09Ani", SrcDir$, DESTDRIVE$ + ":\l3d\chap9\ani"
AddSectionFilesToCopyList "L09Box", SrcDir$, DESTDRIVE$ + ":\l3d\chap9\box"
AddSectionFilesToCopyList "L09Poly", SrcDir$, DESTDRIVE$ + ":\l3d\chap9\poly"
AddSectionFilesToCopyList "L09Ship", SrcDir$, DESTDRIVE$ + ":\l3d\chap9\ship"
AddSectionFilesToCopyList "L09Tex1", SrcDir$, DESTDRIVE$ + ":\l3d\chap9\tex1"
AddSectionFilesToCopyList "L09Tex2", SrcDir$, DESTDRIVE$ + ":\l3d\chap9\tex2"
ELSEIF ftype% = SCRIPTFILES THEN
AddSectionFilesToCopyList "ScriptFiles", SrcDir$, DEST$ + "\scripts"
AddSectionFilesToCopyList "ScriptExtFiles", SrcDir$, DEST$ + "\scripts\ext"
AddSectionFilesToCopyList "ScriptTextFiles", SrcDir$, DEST$ + "\scripts\text"
AddSectionFilesToCopyList "TextureFiles", SrcDir$, DEST$ + "\textures"
ELSEIF ftype% = DOCFILES THEN
AddSectionFilesToCopyList "DocFiles", SrcDir$, DEST$ + "\doc"
END IF
SrcDir$ = ""
END IF
END SUB
'**
'** Purpose:
'** Recalculates disk space for the given option files and sets
'** the status info symbol "StatusItemsText".
'** Arguments:
'** ftype% - type of files to add, one of the following:
'** LIBFILES, DEMOFILES, SAMPLEFILES, SCRIPTFILES
'** Returns:
'** none.
'*************************************************************************
SUB RecalcOptFiles (ftype%) STATIC
CursorSave% = ShowWaitCursor()
ClearCopyList
AddOptFilesToCopyList ftype%
IF ftype% = ROOTFILES THEN
ListSym$ = ROOTNEEDS$
ELSEIF ftype% = COMPFILES THEN
ListSym$ = COMPNEEDS$
ELSEIF ftype% = DEMO31FILES THEN
ListSym$ = DEMO31NEEDS$
ELSEIF ftype% = DEMO32FILES THEN
ListSym$ = DEMO32NEEDS$
ELSEIF ftype% = SAMPLEFILES THEN
ListSym$ = SAMPLENEEDS$
ELSEIF ftype% = SCRIPTFILES THEN
ListSym$ = SCRIPTNEEDS$
ELSEIF ftype% = DOCFILES THEN
ListSym$ = DOCNEEDS$
END IF
StillNeed& = GetCopyListCost("", ListSym$, "")
cost& = 0
FOR i% = 1 TO 26 STEP 1
cost& = cost& + VAL(GetListItem(ListSym$, i%))
NEXT i%
ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
RestoreCursor CursorSave%
ListSym$ = ""
END SUB
'**
'** Purpose:
'** Recalculates disk space and sets option status info according
'** to the current destination path.
'** Arguments:
'** none.
'** Returns:
'** none.
'*************************************************************************
SUB RecalcPath STATIC
CursorSave% = ShowWaitCursor()
RecalcOptFiles ROOTFILES
RecalcOptFiles COMPFILES
RecalcOptFiles DEMO31FILES
RecalcOptFiles DEMO32FILES
RecalcOptFiles SAMPLEFILES
RecalcOptFiles SCRIPTFILES
RecalcOptFiles DOCFILES
RestoreCursor CursorSave%
END SUB
'**
'** Purpose:
'** Sets drive status info according to latest disk space calcs.
'** Arguments:
'** none.
'** Returns:
'** none.
'*************************************************************************
SUB SetDriveStatus STATIC
drive$ = MID$(DEST$, 1, 1)
ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
cost1& = VAL(GetListItem(ROOTNEEDS$, ndrive%)) + VAL(GetListItem(COMPNEEDS$, ndrive%)) + VAL(GetListItem(DEMO31NEEDS$, ndrive%)) + VAL(GetListItem(DEMO32NEEDS$, ndrive%))
cost2& = VAL(GetListItem(SAMPLENEEDS$, ndrive%)) + VAL(GetListItem(SCRIPTNEEDS$, ndrive%)) + VAL(GetListItem(DOCNEEDS$, ndrive%))
DRIVENEEDED& = cost1& + cost2&
DRIVEFREE& = GetFreeSpaceForDrive(drive$)
ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
ReplaceListItem DRIVETEXT$, 2, STR$(DRIVENEEDED& / 1024) + " K"
ReplaceListItem DRIVETEXT$, 3, STR$(DRIVEFREE& / 1024) + " K"
IF drive$ = WINDRIVE$ THEN
ReplaceListItem DRIVETEXT$, 4, ""
ReplaceListItem DRIVETEXT$, 5, ""
ReplaceListItem DRIVETEXT$, 6, ""
ELSE
ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
cost1& = VAL(GetListItem(ROOTNEEDS$, ndrive%)) + VAL(GetListItem(COMPNEEDS$, ndrive%)) + VAL(GetListItem(DEMO31NEEDS$, ndrive%)) + VAL(GetListItem(DEMO32NEEDS$, ndrive%))
cost2& = VAL(GetListItem(SAMPLENEEDS$, ndrive%)) + VAL(GetListItem(SCRIPTNEEDS$, ndrive%)) + VAL(GetListItem(DOCNEEDS$, ndrive%))
cost& = cost1& + cost2&
IF cost& = 0 THEN
ReplaceListItem DRIVETEXT$, 4, ""
ReplaceListItem DRIVETEXT$, 5, ""
ReplaceListItem DRIVETEXT$, 6, ""
ELSE
free& = GetFreeSpaceForDrive(WINDRIVE$)
ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
END IF
END IF
END SUB
'**
'** Purpose:
'** Appends a file name to the end of a directory path,
'** inserting a backslash character as needed.
'** Arguments:
'** szDir$ - full directory path (with optional ending "\")
'** szFile$ - filename to append to directory
'** Returns:
'** Resulting fully qualified path name.
'*************************************************************************
FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
IF szDir$ = "" THEN
MakePath = szFile$
ELSEIF szFile$ = "" THEN
MakePath = szDir$
ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
MakePath = szDir$ + szFile$
ELSE
MakePath = szDir$ + "\" + szFile$
END IF
END FUNCTION