home *** CD-ROM | disk | FTP | other *** search
/ Interactive Movie Book: The Little Rascals / RASCALS.iso / lr.mst < prev    next >
Encoding:
Text File  |  1995-07-08  |  6.5 KB  |  239 lines

  1. '**************************************************************************
  2. '*                       SSI Little Rascals Setup
  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       = 900
  19. CONST FREESPACE1    = 6300
  20. CONST FREESPACE2    = 6350
  21. CONST BADPATH       = 6400
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 1
  25. '' Required capacity of target drive
  26. CONST DRIVCAP1& =  20000000
  27. CONST DRIVCAP2& =  300000
  28.  
  29. GLOBAL DEST$        ''Default destination directory.
  30. GLOBAL DRIVE$
  31. GLOBAL OPTCUR$      ''Option selection from option dialog.
  32.  
  33. DECLARE SUB Install
  34. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  35.  
  36.  
  37. INIT:
  38.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  39.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  40.  
  41.     SetBitmap CUIDLL$, LOGO
  42.     SetTitle "Little Rascals Interactive Moviebook"
  43.  
  44.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  45.     IF szInf$ = "" THEN
  46.         szInf$ = GetSymbolValue("STF_CWDDIR") + "LR.INF"
  47.     END IF
  48.     ReadInfFile szInf$
  49.  
  50.     OPTCUR$ = "1"
  51.     DEST$ = "C:\RASCALS"
  52.  
  53. '$IFDEF DEBUG
  54.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  55.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  56.     IF IsDriveValid(WinDrive$) = 0 THEN
  57.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  58.         GOTO QUIT
  59.     END IF
  60. '$ENDIF ''DEBUG
  61.  
  62.  
  63. WELCOME:
  64.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  65.     IF sz$ = "CONTINUE" THEN
  66.         UIPop 1
  67.     ELSE
  68.         GOSUB ASKQUIT
  69.         GOTO WELCOME
  70.     END IF
  71.  
  72.  
  73. OPTION:
  74.     SetSymbolValue "RadioDefault", OPTCUR$
  75. OPTL1:
  76.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  77.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  78.  
  79.     IF sz$ = "CONTINUE" THEN
  80.         UIPop(1)
  81.     ELSEIF sz$ = "REACTIVATE" THEN
  82.         GOTO OPTL1
  83.     ELSE
  84.         GOSUB ASKQUIT
  85.         GOTO OPTION
  86.     END IF
  87.  
  88.  
  89. GETPATH:
  90.     SetSymbolValue "EditTextIn", DEST$
  91.     SetSymbolValue "EditFocus", "END"
  92. GETPATHL1:
  93.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  94.     DEST$ = GetSymbolValue("EditTextOut")
  95.  
  96.     IF sz$ = "CONTINUE" THEN
  97.         IF IsDirWritable(DEST$) = 0 THEN
  98.             GOSUB BADPATH
  99.             GOTO GETPATHL1
  100.         END IF
  101.         UIPop 1
  102.     ELSEIF sz$ = "REACTIVATE" THEN
  103.         GOTO GETPATHL1
  104.     ELSEIF sz$ = "BACK" THEN
  105.         UIPop 1
  106.         GOTO OPTION
  107.     ELSE
  108.         GOSUB ASKQUIT
  109.         GOTO GETPATH
  110.     END IF
  111.  
  112.         DRIVE$ = MID$(DEST$, 1, 1)
  113.         Cap& = GetFreeSpaceForDrive(DRIVE$)
  114.         IF OPTCUR$ = "1" AND Cap& < DRIVCAP1 THEN
  115.                 GOTO SPACEERROR1
  116.         ELSEIF OPTCUR$ = "2" AND Cap& < DRIVCAP2 THEN
  117.                 GOTO SPACEERROR2
  118.         END IF
  119.  
  120.     Install
  121.  
  122.  
  123. QUIT:
  124.     ON ERROR GOTO ERRQUIT
  125.  
  126.     IF ERR = 0 THEN
  127.         dlg% = EXITSUCCESS
  128.     ELSEIF ERR = STFQUIT THEN
  129.         dlg% = EXITQUIT
  130.     ELSE
  131.         dlg% = EXITFAILURE
  132.     END IF
  133. QUITL1:
  134.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  135.     IF sz$ = "REACTIVATE" THEN
  136.         GOTO QUITL1
  137.     END IF
  138.     UIPop 1
  139.     END
  140.  
  141. ERRQUIT:
  142.     i% = DoMsgBox("Setup sources were corrupted, call Product Support!", "Little Rascals Interactive Moviebook", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  143.     END
  144.  
  145. SPACEERROR1:
  146.     sz$ = UIStartDlg(CUIDLL$, FREESPACE1, "FInfoDlgProc", APPHELP, HELPPROC$)
  147.     END
  148. SPACEERROR2:
  149.     sz$ = UIStartDlg(CUIDLL$, FREESPACE2, "FInfoDlgProc", APPHELP, HELPPROC$)
  150.     END
  151.  
  152.  
  153. BADPATH:
  154.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  155.     IF sz$ = "REACTIVATE" THEN
  156.         GOTO BADPATH
  157.     END IF
  158.     UIPop 1
  159.     RETURN
  160.  
  161.  
  162.  
  163. ASKQUIT:
  164.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  165.  
  166.     IF sz$ = "EXIT" THEN
  167.         UIPopAll
  168.         ERROR STFQUIT
  169.     ELSEIF sz$ = "REACTIVATE" THEN
  170.         GOTO ASKQUIT
  171.     ELSE
  172.         UIPop 1
  173.     END IF
  174.     RETURN
  175.  
  176.  
  177.  
  178. '**
  179. '** Purpose:
  180. '**     Builds the copy list and performs all installation operations.
  181. '** Arguments:
  182. '**     none.
  183. '** Returns:
  184. '**     none.
  185. '*************************************************************************
  186. SUB Install STATIC
  187.  
  188.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  189.     CreateDir DEST$, cmoNone
  190.  
  191.  
  192.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  193.     AddSectionKeyFileToCopyList "Options", OPTCUR$, SrcDir$, DEST$
  194.     CopyFilesInCopyList
  195.  
  196.    ini$ = MakePath(DEST$, "IMS.INI")  '' create path and name for ini file
  197.   IF OPTCUR$ = "1" THEN
  198.        CreateIniKeyValue ini$, "Configuration", "Source", SrcDir$, cmoOverwrite
  199.   ELSEIF OPTCUR$ = "2" THEN
  200. ''     CreateIniKeyValue ini$, "Configuration", "Source", MID$(SrcDir$, 1, 1), cmoOverwrite
  201.        CreateIniKeyValue ini$, "Configuration", "Source", SrcDir$, cmoOverwrite
  202.   END IF
  203.  
  204.  
  205. '' These are the program items for both installs.
  206.     CreateProgmanGroup "SSI Moviebooks", "", cmoNone
  207.     ShowProgmanGroup  "SSI Moviebooks", 1, cmoNone
  208.     CreateProgmanItem "SSI Moviebooks", "Little Rascals", MakePath(DEST$,"OVATION.EXE"),MakePath(DEST$,"LR.ICO"), cmoOverwrite
  209.     CreateProgmanItem "SSI Moviebooks", "Instructions", "write.exe "+MakePath(DEST$,"manual.wri"), "", cmoOverwrite
  210. ''  CreateProgmanItem "SSI Moviebooks", "Uninstaller", MakePath(DEST$,"UNINSTAL.EXE"), "", cmoOverwrite
  211.     CreateProgmanItem "SSI Moviebooks", "Video for Windows Installer", MakePath(SrcDir$,"winvideo\setup.EXE"), "", cmoOverwrite  
  212.  
  213. END SUB
  214.  
  215.  
  216.  
  217. '**
  218. '** Purpose:
  219. '**     Appends a file name to the end of a directory path,
  220. '**     inserting a backslash character as needed.
  221. '** Arguments:
  222. '**     szDir$  - full directory path (with optional ending "\")
  223. '**     szFile$ - filename to append to directory
  224. '** Returns:
  225. '**     Resulting fully qualified path name.
  226. '*************************************************************************
  227. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  228.     IF szDir$ = "" THEN
  229.         MakePath = szFile$
  230.     ELSEIF szFile$ = "" THEN
  231.         MakePath = szDir$
  232.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  233.         MakePath = szDir$ + szFile$
  234.     ELSE
  235.         MakePath = szDir$ + "\" + szFile$
  236.     END IF
  237. END FUNCTION
  238.  
  239.