home *** CD-ROM | disk | FTP | other *** search
/ 300 Favorite Games / 300GAMES.iso / 365 / marty2.mst < prev    next >
Text File  |  1995-12-04  |  10KB  |  361 lines

  1.   '$DEFINE DEBUG  ''Define for script development/debugging
  2.  
  3. ' This should set a flag if the command line /NO_CHECK was included
  4. ' This must occur before calling setupapi, or any command line args get
  5. ' lost
  6.  
  7.  
  8. '$INCLUDE 'setupapi.inc'
  9. '$INCLUDE 'msdetect.inc'
  10.  
  11. ''Dialog ID's
  12. CONST WELCOME       = 100
  13. CONST ASKQUIT       = 200
  14. CONST DESTPATH      = 300
  15. CONST EXITFAILURE   = 400
  16. CONST TOOBIG        = 500
  17. CONST EXITQUIT      = 600
  18. CONST EXITSUCCESS   = 700
  19. CONST EXITRESTART   = 800
  20. CONST APPHELP       = 900
  21. CONST MODEHELP      = 904
  22. CONST RUNSOUND      = 6300
  23. CONST BADPATH       = 6400
  24. CONST PATHEXISTS    = 6500
  25. CONST BADMODE       = 7704
  26.  
  27.  
  28. '' Some Constant Values for Maximized Install Window
  29. CONST WS_VISIBLE      =&H10000000
  30. CONST WS_BORDER       =&H00800000
  31. CONST WS_CLIPCHILDREN =&H02000000
  32. CONST GWL_STYLE = -16
  33. CONST SW_SHOWMAXIMIZED = 3
  34. '' End Maximized Window Install Constants
  35.  
  36.  
  37. '' Bitmap ID
  38. CONST LOGO = 1
  39.  
  40. GLOBAL DEST$        ''Default destination directory.
  41. GLOBAL USERNAME$    ''User registration name.
  42. GLOBAL COMPANYNAME$ ''Company Name
  43. GLOBAL WINDIR$
  44. GLOBAL WINSYSDIR$
  45. GLOBAL WING1$
  46. GLOBAL SrcDir$
  47. GLOBAL INSTALLOPTION$
  48. GLOBAL INIPATH$
  49. GLOBAL RUNPATH$
  50. GLOBAL bInstallDVA%
  51. GLOBAL SPACENEEDED&
  52.  
  53.  
  54. '' Global directory strings
  55. WINDIR$ = GetWindowsDir()
  56. WINSYSDIR$ = GetWindowsSysDir ()
  57.  
  58. '' Global Source Drive string
  59. SrcDir$ = GetSymbolValue("STF_SRCDIR")
  60. RestartDir$ = GetSymbolValue("STF_CWDDIR")
  61.  
  62. '' Global option and statistic variables
  63. INSTALLOPTION$ = "CD"
  64. SPACENEEDED& = 3663052
  65.  
  66.  
  67. DECLARE SUB Install
  68. DECLARE FUNCTION OnWin3x LIB "setuphlp.DLL" AS INTEGER
  69. DECLARE FUNCTION ExitWindows LIB "user" (rc&, r%) AS INTEGER
  70. DECLARE FUNCTION VflatdPresent LIB "setuphlp.DLL" AS INTEGER
  71.  
  72. '' Some Subroutine Declarations for Maximized Install Window
  73. DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%, iShow%) AS INTEGER
  74. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  75. '' End Declarations for Maximized Window Install
  76.  
  77.  
  78. INIT:
  79. '' This is where we set it to maximize the install window
  80.     hWnd%=HwndFrame()
  81.     i1&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  82.     j1%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  83. '' End of Maximize stuff
  84.  
  85.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  86.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  87.  
  88.     SetBitmap CUIDLL$, LOGO
  89.     SetTitle " Marty Mouse Online Demo Setup"
  90.  
  91.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  92.     IF szInf$ = "" THEN
  93.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  94.     END IF
  95.     ReadInfFile szInf$
  96.  
  97.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  98.     DEST$ = WINDRIVE$ + ":\MARTY"
  99.     IF IsDriveValid(WinDrive$) = 0 THEN
  100.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  101.         GOTO QUIT
  102.     END IF
  103.  
  104.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  105.  
  106.  
  107. '' This just tosses up a nice welcome screen
  108. WELCOME:
  109.     ErrorSection$ = "Welcome"
  110.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
  111.     IF sz$ = "CONTINUE" THEN
  112.         UIPop 1
  113.     ELSE
  114.         GOSUB ASKQUIT
  115.         GOTO WELCOME
  116.     END IF
  117.  
  118.  
  119. '' Check the Windows mode - if user isn't not in Enhanced mode, quit
  120. CHECKMODE:
  121.     ErrorSection$ = "CheckMode"
  122.     i% = GetWindowsMode ()
  123.     IF i% < 2 THEN
  124.         sz$ = UIStartDLG(CUIDLL$, BADMODE, "FInfoDlgProc", MODEHELP, HELPPROC$)
  125.         IF sz$ = "CONTINUE" THEN
  126.             UIPop 1
  127.         ELSE
  128.             UIPop 1
  129.             GOSUB ASKQUIT
  130.             GOTO CHECKMODE
  131.         END IF
  132.     END IF
  133.  
  134. GETPATH:
  135.     SetSymbolValue "EditTextIn", DEST$
  136.     SetSymbolValue "EditFocus", "END"
  137.  
  138. GETPATHL1:
  139.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  140.     DEST$ = GetSymbolValue("EditTextOut")
  141.  
  142.     IF sz$ = "CONTINUE" THEN
  143.         IF MID$(DEST$, LEN(DEST$), 1) = "\" THEN
  144.             DEST$ = MID$(DEST$,1,LEN(DEST$) - 1)
  145.         END IF
  146.         UIPop 1
  147.  
  148.         ' Check space requirements
  149.             IF IsDirWritable(DEST$) = 0 THEN
  150.                 GOSUB BADPATH
  151.                 GOTO GETPATHL1
  152.             END IF
  153.  
  154.             ' Check free space
  155.  
  156.             IF GetFreeSpaceForDrive(MID$(DEST$,1,1)) < SPACENEEDED& THEN
  157.                 GOSUB TOOBIG
  158.                 GOTO GETPATHL1
  159.             END IF
  160.  
  161.         ' Make the empty directories
  162.         CreateDir DEST$, cmoNone
  163.         CreateDir DEST$ + "\ASSETS", cmoNone
  164.         CreateDir DEST$ + "\ASSETS\MUSIC", cmoNone
  165.  
  166.     ELSEIF sz$ = "REACTIVATE" THEN
  167.         GOTO GETPATHL1
  168.     ELSEIF sz$ = "BACK" THEN
  169.         UIPop 1
  170.         GOTO WELCOME
  171.     ELSE
  172.         GOSUB ASKQUIT
  173.         GOTO GETPATH
  174.     END IF
  175.  
  176. ANNOUNCE:
  177.     ErrorSection$ = "Announce"
  178.     sz$ = UIStartDlg(CUIDLL$, APPHELP, "FInfoDlgProc", EXITQUIT, HELPPROC$)
  179.     IF sz$ = "CONTINUE" THEN
  180.         UIPop 1
  181.     ELSE
  182.         GOSUB ASKQUIT
  183.         GOTO ANNOUNCE
  184.     END IF
  185.  
  186.  
  187. DOWING:
  188.     ' This portion installs the DVA.386 driver on machines in Enhanced Mode
  189.     IF OnWin3x() = 1 THEN
  190.         IF VflatdPresent() = 0 THEN
  191.             sz$ = GetIniKeyString( WINDIR$ + "SYSTEM.INI", "386Enh", "device=dva.386" )
  192.             IF sz$ = "" THEN
  193.                 CreateSysIniKeyValue GetWindowsDir + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  194.                 bInstallDVA% = 1
  195.                 WING1$ = "WinG"
  196.                 RemoveIniSection "WIN.INI", WING1$, CmoNone
  197.             ELSE
  198.                 bInstallDVA% = 0
  199.             END IF
  200.         END IF
  201.     END IF
  202.  
  203.  
  204. DOINSTALL:
  205.     Install
  206.  
  207. QUIT:
  208. '    ON ERROR GOTO ERRORSUB
  209. '    IF ERR = 0 THEN
  210. '        dlg% = EXITSUCCESS
  211.     IF ERR = STFQUIT THEN
  212.         dlg% = EXITQUIT
  213.     ELSEIF bInstallDVA% = 1 THEN
  214.         dlg% = EXITRESTART
  215.     ELSE
  216.         dlg% = EXITSUCCESS
  217.     END IF
  218.  
  219. QUITL1:
  220.     ' If dva.386 was installed for WinG, Windows needs restarting.
  221.     IF dlg% = EXITQUIT THEN
  222.         sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  223.         IF sz$ = "REACTIVATE" THEN
  224.             GOTO QUITL1
  225.         END IF
  226.         UIPop 1
  227.         GOTO DONE
  228.     END IF
  229.  
  230.     IF dlg% = EXITRESTART THEN
  231.         sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfoDlgProc", 0, "")
  232.         UIPop 1
  233.     END IF
  234.  
  235.     RUNPATH$ = DEST$
  236.     sz$ = UIStartDlg(CUIDLL$, RUNSOUND, "FInfo0DlgProc", 0, "")
  237.     UIPop 1
  238.     sz$ = RUNPATH$ + "\SSETUP.EXE " + RUNPATH$ + "\MARTY.INI"
  239.     RUN sz$
  240.     sz$ = UIStartDlg(CUIDLL$, EXITSUCCESS, "FInfoDlgProc", 0, "")
  241.     UIPop 1
  242.  
  243. DONE:
  244.     END
  245.  
  246.  
  247. ERRORSUB:
  248.     GOTO QUIT
  249.  
  250. BADPATH:
  251.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  252.     IF sz$ = "REACTIVATE" THEN
  253.         GOTO BADPATH
  254.     END IF
  255.     UIPop 1
  256.     RETURN
  257.  
  258. TOOBIG:
  259.     ' Put up an information dialog which shows the free & needed statistics.
  260.  
  261.     temp$ = "You need" + str$(SPACENEEDED&) + " bytes free to install this demo.  "
  262.     temp2$ = "Free space on this disk is" + str$(GetFreeSpaceForDrive(MID$(DEST$,1,1)))
  263.     i% = DoMsgBox(temp$ + temp2$ + " bytes.", "Disk Space Information", MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION)
  264.  
  265.     ' Do the setup dialog stuff
  266.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  267.     IF sz$ = "REACTIVATE" THEN
  268.         GOTO TOOBIG
  269.     END IF
  270.     UIPop 1
  271.     RETURN
  272.  
  273.  
  274. ASKQUIT:
  275.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  276.  
  277.     IF sz$ = "EXIT" THEN
  278.         UIPopAll
  279.         ERROR STFQUIT
  280.     ELSEIF sz$ = "REACTIVATE" THEN
  281.         GOTO ASKQUIT
  282.     ELSE
  283.         UIPop 1
  284.     END IF
  285.     RETURN
  286.  
  287.  
  288.  
  289. '**
  290. '** Purpose:
  291. '**     Builds the copy list and performs all installation operations.
  292. '** Arguments:
  293. '**     none.
  294. '** Returns:
  295. '**     none.
  296. '*************************************************************************
  297. SUB Install STATIC
  298.  
  299. ''    RUNPATH$ = SrcDir$ + "MARTY"
  300.     RUNPATH$ = DEST$
  301.  
  302.     ClearCopyList
  303.  
  304. '' The following line changed for online demo to install SOUNDMIX.INI
  305. '' in the program directory. ***ATW*** 11/29/95
  306. ''    AddSectionFilesToCopyList "WINDOWS", SrcDir$, WINDIR$
  307.  
  308.     AddSectionFilesToCopyList "SYSTEM", SrcDir$, WINSYSDIR$
  309.     AddSectionFilesToCopyList "EXEDIRFILES", SrcDir$, RUNPATH$
  310.     AddSectionFilesToCopyList "ASSETDIRFILES", SrcDir$, RUNPATH$ + "\ASSETS"
  311.     AddSectionFilesToCopyList "MIDIDIRFILES", SrcDir$, RUNPATH$ + "\ASSETS\MUSIC"
  312.  
  313.     IF bInstallDVA% = 1 THEN
  314.         AddSectionFilesToCopyList "DVA", SrcDir$, WINSYSDIR$
  315.     END IF
  316.  
  317. '' Do the copy
  318.     CopyFilesInCopyList
  319.  
  320.  
  321. '' MARTY.INI will be in the Windows directory, so set INIPATH$ to the
  322. '' Windows path minus its ending \
  323. '' But for the online demo, the INI files are in the program's directory,
  324. '' so do this stuff to the program path for now. ***ATW*** 11/29/95
  325. ''    INIPATH$ = WINDIR$
  326.  
  327.     INIPATH$ = RUNPATH$
  328.     IF MID$(INIPATH$, LEN(INIPATH$), 1) = "\" THEN
  329.         INIPATH$ = MID$(INIPATH$,1,LEN(INIPATH$) - 1)
  330.     END IF
  331.     INIPATH$ = RUNPATH$ + "\MARTY.INI"
  332.  
  333.     CreateProgmanGroup "Maxis", "", cmoNone
  334.     ShowProgmanGroup  "Maxis", 1, cmoNone
  335.     CreateProgmanItem "Maxis", "Marty Mouse", RUNPATH$ + "\MARTY.EXE", "", cmoOverwrite
  336.  
  337.     CreateProgmanItem "Maxis", "Marty Sound Setup", RUNPATH$ + "\SSETUP.EXE " + INIPATH$, "", cmoOverwrite
  338.     CreateProgmanItem "Maxis", "Marty Mouse ReadMe", RUNPATH$ + "\README.WRI", "", cmoOverwrite
  339.     CreateProgmanItem "Maxis", "Maxis Technical Tips", RUNPATH$ + "\TECHTIP.WRI", "", cmoOverwrite
  340.  
  341.     RemoveIniSection INIPATH$, "Sound Settings", CmoNone
  342.     RemoveIniSection INIPATH$, "Interactivity", CmoNone
  343.     RemoveIniSection INIPATH$, "SoundSetup", CmoNone
  344.  
  345.     CreateIniKeyValue INIPATH$, "Sound Settings", "Input Gain", "255", cmoOverwrite
  346.     CreateIniKeyValue INIPATH$, "Sound Settings", "Music Volume", "128", cmoOverwrite
  347.     CreateIniKeyValue INIPATH$, "Sound Settings", "Sound Volume", "128",cmoOverwrite
  348.     CreateIniKeyValue INIPATH$, "Sound Settings", "Threshold", "5", cmoOverwrite
  349.  
  350.     CreateIniKeyValue INIPATH$, "Interactivity", "Interactive", "1", cmoOverwrite
  351.     CreateIniKeyValue INIPATH$, "Interactivity", "Prompting", "1", cmoOverwrite
  352.     CreateIniKeyValue INIPATH$, "Interactivity", "Background Music", "1", cmoOverwrite
  353.  
  354.     CreateIniKeyValue INIPATH$, "SoundSetup", "SoundOutputID", "0", cmoOverwrite
  355.     CreateIniKeyValue INIPATH$, "SoundSetup", "SoundInputID", "0", cmoOverwrite
  356.     CreateIniKeyValue INIPATH$, "SoundSetup", "AuxiliaryInputID", "none", cmoOverwrite
  357.  
  358. END SUB
  359.  
  360.  
  361.