home *** CD-ROM | disk | FTP | other *** search
/ 1,000 Best Games for Windows / 1000BestGamesForWindows.iso / sharewarefin / WNBATTLE.ZIP / BFM.MST < prev    next >
Text File  |  1994-06-07  |  8KB  |  280 lines

  1. '**************************************************************************
  2. '*                       BFM Software                                     *
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 100
  19. CONST BADPATH       = 6400
  20. CONST CDGETNAMEORG  = 7500
  21. CONST CDPRODUCTS    = 8000
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 1
  25.  
  26. GLOBAL DEST$        ''Default destination directory.
  27. GLOBAL OPTCUR$      ''Option selection from option dialog.
  28.                            
  29. GLOBAL IDRIVE$      ''Drive installed from                           
  30.                            
  31. GLOBAL WT$          ''Product
  32. GLOBAL WS$          ''Product
  33. GLOBAL WB$          ''Product
  34. GLOBAL WPS$         ''Product
  35. GLOBAL DS$          ''Product
  36. GLOBAL CDW$         ''Product
  37.  
  38. DECLARE SUB Install
  39. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  40.  
  41. ' Extraction functions 
  42. DECLARE SUB SetBackgroundMode LIB "UZDLL12.dll" (bMode%)
  43. DECLARE FUNCTION ExtractZipFiles LIB "UZDLL12.dll" (szFileName$, szMask$, szDestDir$, bOverwrite%, bCreateDir%) AS INTEGER
  44.                                                     
  45. ' Windows stuff
  46. DECLARE FUNCTION SetErrorMode LIB "KRNL386.EXE" (bMode%) AS INTEGER
  47.  
  48. INIT:
  49.     rc = SetErrorMode(1)
  50.  
  51.     SetBackgroundMode 0
  52.  
  53.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  54.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  55.  
  56.     SetBitmap CUIDLL$, LOGO
  57.     SetTitle "Setup BFM Software Shareware"
  58.  
  59.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  60.     IF szInf$ = "" THEN
  61.         szInf$ = GetSymbolValue("STF_CWDDIR") + "BFM.INF"
  62.     END IF
  63.  
  64.     ReadInfFile szInf$
  65.  
  66.     OPTCUR$ = "1"
  67.     DEST$ = GetWindowsDir() + "BFM"
  68.     
  69.     GetRemovableDrivesList "BFM_REMOVABLE"
  70.     Drives$ = GetSymbolValue("BFM_REMOVABLE")
  71.     numEntries = ((len(Drives$)-2)/4)+1
  72.     FOR c1%=1 TO numEntries
  73.         IDRIVE$ = MID$(Drives$, ((c1%-1)*4)+2+1, 1) + ":"
  74.         IF (DoesFileExist(IDRIVE$+"\bfm.ms_", femExists) = 1) THEN
  75.             EXIT FOR
  76.         END IF
  77.     NEXT c1%
  78.     IF (c1% > numEntries) THEN
  79.         i% = DoMsgBox("Setup file not found on a floppy drive!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  80.         END
  81.     END IF
  82.  
  83. WELCOME:
  84.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  85.     IF sz$ = "CONTINUE" THEN
  86.         UIPop 1
  87.     ELSE
  88.         GOSUB ASKQUIT
  89.         GOTO WELCOME
  90.     END IF
  91.  
  92.  
  93. GETPATH:
  94.     SetSymbolValue "EditTextIn", DEST$
  95.     SetSymbolValue "EditFocus", "END"
  96. GETPATH1:
  97.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  98.     DEST$ = GetSymbolValue("EditTextOut")
  99.  
  100.     IF sz$ = "CONTINUE" THEN
  101.         IF IsDirWritable(DEST$) = 0 THEN
  102.             GOSUB BADPATH
  103.             GOTO GETPATH1
  104.         END IF
  105.         UIPop 1
  106.     ELSEIF sz$ = "REACTIVATE" THEN
  107.         GOTO GETPATH1
  108.     ELSE
  109.         GOSUB ASKQUIT
  110.         GOTO GETPATH1
  111.     END IF
  112.  
  113.  
  114.     ' init all items
  115.     FOR c1% = 1 to 10
  116.         AddListItem "CheckItemsIn", "ON"
  117.     NEXT c1%
  118. GETPROD:
  119.     sz$ = UIStartDlg(CUIDLL$, CDPRODUCTS, "FCheckDlgProc", APPHELP, HELPPROC$)
  120.  
  121.     WT$ = GetListItem("CheckItemsOut", 1)
  122.     WS$ = GetListItem("CheckItemsOut", 2)
  123.     WB$ = GetListItem("CheckItemsOut", 3)
  124.     WPS$ = GetListItem("CheckItemsOut", 4)
  125.     DS$ = GetListItem("CheckItemsOut", 5)
  126.     CDW$ = GetListItem("CheckItemsOut", 6)
  127.     
  128.     IF sz$ = "CONTINUE" THEN
  129.         UIPop 1
  130.     ELSEIF sz$ = "REACTIVATE" THEN
  131.         GOTO GETPROD
  132.     ELSE
  133.         GOSUB ASKQUIT
  134.         GOTO GETPROD
  135.     END IF
  136.                       
  137.                       
  138.     ' call install s/r
  139.     Install
  140.  
  141.  
  142. QUIT:
  143.     ON ERROR GOTO ERRQUIT
  144.  
  145.     IF ERR = 0 THEN
  146.         dlg% = EXITSUCCESS
  147.     ELSEIF ERR = STFQUIT THEN
  148.         dlg% = EXITQUIT
  149.     ELSE
  150.         dlg% = EXITFAILURE
  151.     END IF
  152. QUITL1:
  153.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  154.     IF sz$ = "REACTIVATE" THEN
  155.         GOTO QUITL1
  156.     END IF
  157.     UIPop 1
  158.  
  159.     END
  160.  
  161. ERRQUIT:
  162.     i% = DoMsgBox("Setup sources were corrupted, contact BFM Software!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  163.     END
  164.  
  165.  
  166.  
  167. BADPATH:
  168.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  169.     IF sz$ = "REACTIVATE" THEN
  170.     GOTO BADPATH
  171.     END IF
  172.     UIPop 1
  173.     RETURN
  174.  
  175.  
  176. ASKQUIT:
  177.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  178.  
  179.     IF sz$ = "EXIT" THEN
  180.         UIPopAll
  181.         ERROR STFQUIT
  182.     ELSEIF sz$ = "REACTIVATE" THEN
  183.         GOTO ASKQUIT
  184.     ELSE
  185.         UIPop 1
  186.     END IF
  187.     RETURN
  188.  
  189.  
  190.  
  191. '**
  192. '** Purpose:
  193. '**     Builds the copy list and performs all installation operations.
  194. '** Arguments:
  195. '**     none.
  196. '** Returns:
  197. '**     none.
  198. '*************************************************************************
  199. SUB Install STATIC
  200.  
  201.     SaveCursor% = ShowWaitCursor()
  202.  
  203.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  204.     CreateDir DEST$, cmoNone
  205.  
  206.     ' create program manager group and icons
  207.     CreateProgmanGroup "BFM Software", "", cmoNone
  208.     ShowProgmanGroup  "BFM Software", 1, cmoNone
  209.  
  210.     IF WT$ = "ON" THEN
  211.         rc = ExtractZipFiles(IDRIVE$+"\WT.ZIP", "*.*", DEST$, 1, 0) 
  212.         CreateProgmanItem "BFM Software", "Win Trek Readme", "notepad " + MakePath(DEST$,"wtread.txt"), "", cmoOverwrite
  213.         CreateProgmanItem "BFM Software", "Win Trek", MakePath(DEST$,"wt.exe"), "", cmoOverwrite
  214.         CreateProgmanItem "BFM Software", "Win Trek Help", "winhelp " + MakePath(DEST$,"wt.hlp"), "", cmoOverwrite
  215.     END IF
  216.  
  217.     IF WS$ = "ON" THEN
  218.         rc = ExtractZipFiles(IDRIVE$+"\WS.ZIP", "*.*", DEST$, 1, 0) 
  219.         CreateProgmanItem "BFM Software", "Win Slot Readme", "notepad " + MakePath(DEST$,"wsread.txt"), "", cmoOverwrite
  220.         CreateProgmanItem "BFM Software", "Win Slot", MakePath(DEST$,"ws.exe"), "", cmoOverwrite
  221.         CreateProgmanItem "BFM Software", "Win Slot Help", "winhelp " + MakePath(DEST$,"ws.hlp"), "", cmoOverwrite
  222.     END IF
  223.  
  224.     IF WB$ = "ON" THEN
  225.         rc = ExtractZipFiles(IDRIVE$+"\WB.ZIP", "*.*", DEST$, 1, 0) 
  226.         CreateProgmanItem "BFM Software", "Win Battle Readme", "notepad " + MakePath(DEST$,"wbreadme.txt"), "", cmoOverwrite
  227.         CreateProgmanItem "BFM Software", "Win Battle", MakePath(DEST$,"wb.exe"), "", cmoOverwrite
  228.         CreateProgmanItem "BFM Software", "Win Battle Help", "winhelp " + MakePath(DEST$,"wb.hlp"), "", cmoOverwrite
  229.     END IF
  230.  
  231.     IF WPS$ = "ON" THEN
  232.         rc = ExtractZipFiles(IDRIVE$+"\WPS.ZIP", "*.*", DEST$, 1, 0) 
  233.         CreateProgmanItem "BFM Software", "Win Pelvis-n-Space Readme", "notepad " + MakePath(DEST$,"wpsread.txt"), "", cmoOverwrite
  234.         CreateProgmanItem "BFM Software", "Win Pelvis-n-Space", MakePath(DEST$,"wps.exe"), "", cmoOverwrite
  235.         CreateProgmanItem "BFM Software", "Win Pelvis Help", "winhelp " + MakePath(DEST$,"wps.hlp"), "", cmoOverwrite
  236.     END IF
  237.  
  238.     IF DS$ = "ON" THEN
  239.         rc = ExtractZipFiles(IDRIVE$+"\DS.ZIP", "*.*", DEST$, 1, 0) 
  240.         CreateProgmanItem "BFM Software", "Dino Slot Readme", "notepad " + MakePath(DEST$,"dsread.txt"), "", cmoOverwrite
  241.         CreateProgmanItem "BFM Software", "Dino Slot", MakePath(DEST$,"ds.exe"), "", cmoOverwrite
  242.         CreateProgmanItem "BFM Software", "Dino Slot Help", "winhelp " + MakePath(DEST$,"ds.hlp"), "", cmoOverwrite
  243.     END IF
  244.  
  245.     IF CDW$ = "ON" THEN
  246.         rc = ExtractZipFiles(IDRIVE$+"\CDW.ZIP", "*.*", DEST$, 1, 0) 
  247.         CreateProgmanItem "BFM Software", "CD Wizzard Readme", "notepad " + MakePath(DEST$,"cdwread.txt"), "", cmoOverwrite
  248.         CreateProgmanItem "BFM Software", "CD Wizzard", MakePath(DEST$,"cdw.exe"), "", cmoOverwrite
  249.         CreateProgmanItem "BFM Software", "CD Wizzard Help", "winhelp " + MakePath(DEST$,"cdw.hlp"), "", cmoOverwrite
  250.         CreateProgmanItem "BFM Software", "CD Audio Readme", "notepad " + MakePath(DEST$,"cdaudio.txt"), "", cmoOverwrite
  251.     END IF
  252.  
  253.     RestoreCursor SaveCursor%
  254.  
  255. END SUB
  256.  
  257.  
  258.  
  259. '**
  260. '** Purpose:
  261. '**     Appends a file name to the end of a directory path,
  262. '**     inserting a backslash character as needed.
  263. '** Arguments:
  264. '**     szDir$  - full directory path (with optional ending "\")
  265. '**     szFile$ - filename to append to directory
  266. '** Returns:
  267. '**     Resulting fully qualified path name.
  268. '*************************************************************************
  269. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  270.     IF szDir$ = "" THEN
  271.         MakePath = szFile$
  272.     ELSEIF szFile$ = "" THEN
  273.         MakePath = szDir$
  274.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  275.         MakePath = szDir$ + szFile$
  276.     ELSE
  277.         MakePath = szDir$ + "\" + szFile$
  278.     END IF
  279. END FUNCTION
  280.