home *** CD-ROM | disk | FTP | other *** search
/ Shoot'em Up / shootemup_content.zip / shootemup_content / SETUP.MST < prev    next >
Text File  |  1994-09-12  |  10KB  |  301 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 BADPATH       = 6400
  15. CONST SPRACHE       = 10000
  16.  
  17.  
  18. ''Bitmap ID
  19. CONST LOGO = 1
  20.  
  21. GLOBAL DEST$        ''Default destination directory.
  22. GLOBAL OPTCUR$      ''Option selection from option dialog.
  23. GLOBAL SrcDir$
  24. GLOBAL lan$
  25.  
  26. DECLARE SUB Install
  27. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  28.  
  29. DECLARE FUNCTION DSC_Extract LIB "dscomp.dll" (szSrc$,szDest$) AS INTEGER
  30.  
  31. '******************************************************************************
  32. '*                        Initialization
  33. '******************************************************************************
  34.  
  35. INIT:
  36.     CUIDLL$ = "cui_ger.dll"            
  37.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  38.  
  39.     sz$ = UIStartDlg(CUIDLL$, SPRACHE, "FCustInstDlgProc", APPHELP, HELPPROC$)
  40.     UIPop 1
  41.     IF sz$ = "BTN1" THEN             ' deutsch
  42.         CUIDLL$ = "cui_ger.dll"          
  43.         lan$ = "GER"
  44.     ELSEIF sz$ = "BTN2" THEN         ' english
  45.         CUIDLL$ = "cui_eng.dll"            
  46.         lan$ = "ENG"
  47.     ELSEIF sz$ = "BTN3" THEN        ' franz÷sisch
  48.         CUIDLL$ = "cui_fra.dll"            
  49.         lan$ = "FRA"
  50.     ELSEIF sz$ = "BTN4" THEN        ' niederlande
  51.         CUIDLL$ = "cui_neth.dll"            
  52.         lan$ = "NET"
  53.     ELSEIF sz$ = "BTN5" THEN        ' italienisch
  54.         CUIDLL$ = "cui_ital.dll"            
  55.         lan$ = "ITALY"
  56.     ELSEIF sz$ = "BTN6" THEN        ' spanisch
  57.         CUIDLL$ = "cui_spa.dll"            
  58.         lan$ = "SPAIN"
  59.     END IF
  60.  
  61.     SetBitmap CUIDLL$, LOGO
  62.     SetTitle "Setup"
  63.  
  64.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  65.     IF szInf$ = "" THEN
  66.     szInf$ = GetSymbolValue("STF_CWDDIR") + "setup.INF"
  67.     END IF
  68.     ReadInfFile szInf$
  69.  
  70.     DEST$ = "C:\PRG"
  71.  
  72. '$IFDEF DEBUG
  73.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  74.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  75.     IF IsDriveValid(WinDrive$) = 0 THEN
  76.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  77.     GOTO QUIT
  78.     END IF
  79. '$ENDIF ''DEBUG
  80.  
  81. '*****************************************************************************
  82.  
  83. WELCOME:
  84.  
  85.  
  86.  
  87.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  88.  
  89.     IF sz$ = "CONTINUE" THEN
  90.     UIPop 1
  91.     ELSE
  92.     GOSUB ASKQUIT
  93.     GOTO WELCOME
  94.     END IF
  95.  
  96. '******************************************************************************
  97.  
  98. GETPATH:
  99.     SetSymbolValue "EditTextIn", DEST$
  100.     SetSymbolValue "EditFocus", "END"
  101.  
  102. GETPATHL1:
  103.     UIPop 1
  104.     GOTO NoPath
  105.  
  106.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  107.     DEST$ = GetSymbolValue("EditTextOut")
  108.  
  109.     IF sz$ = "CONTINUE" THEN
  110.     IF IsDirWritable(DEST$) = 0 THEN
  111.         GOSUB BADPATH
  112.         GOTO GETPATHL1
  113.     END IF
  114.     UIPop 1
  115.     ELSEIF sz$ = "REACTIVATE" THEN
  116.     GOTO GETPATHL1
  117.     ELSEIF sz$ = "BACK" THEN
  118.     UIPop 1
  119.     GOTO GETPATH
  120.     ELSE
  121.     GOSUB ASKQUIT
  122.     GOTO GETPATH
  123.     END IF
  124.  
  125. NoPath:
  126.  
  127. '******************************************************************************
  128.  
  129. '    maxFreeSpace = 10000
  130. '    IF GetTotalSpaceForDrive(DEST$) < maxFreeSpace THEN
  131. '    i% = DoMsgBox("Der Platz auf dem Laufwerk reicht nicht aus. Sie ben÷tigen noch "+STR$(maxFreeSpace - GetTotalSpaceForDrive(DEST$))+" Byte freien Speicherplatz.", "Setup", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  132. '    GOTO GETPATH
  133. '    END IF
  134.  
  135.     Install
  136.  
  137. '******************************************************************************
  138.  
  139. QUIT:
  140.     ON ERROR GOTO ERRQUIT
  141.  
  142.     IF ERR = 0 THEN
  143.     dlg% = EXITSUCCESS
  144.     ELSEIF ERR = STFQUIT THEN
  145.     dlg% = EXITQUIT
  146.     ELSE
  147.     dlg% = EXITFAILURE
  148.     END IF
  149.  
  150. QUITL1:
  151.  
  152.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  153.  
  154.     IF sz$ = "BACK" THEN     ' Liesmich anzeigen...
  155.     NotePath$=FindFileUsingFileOpen("notepad.exe")
  156.     if NotePath$="" THEN
  157.         i% = DoMsgBox("'NOTEPAD.EXE' nicht gefunden. Die Liesmich-Datei kann nicht geladen werden.", "Setup", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  158.         GOTO ERRQUIT    
  159.     END IF
  160.  
  161.     RUN NotePath$+" "+MakePath(SrcDir$,"GERMAN.txt"),NOWAIT
  162.  
  163.     END
  164.  
  165.     END IF
  166.     
  167.     IF sz$ = "REACTIVATE" THEN
  168.     GOTO QUITL1
  169.     END IF
  170.  
  171.  
  172.     UIPop 1
  173.     IF lan$ = "GER" THEN             ' deutsch
  174.         Run (Makepath(SrcDir$,"infobank\setupinf.exe"))
  175.     END IF
  176.  
  177.     END
  178.  
  179.  
  180. ERRQUIT:
  181.     END
  182.  
  183.  
  184. BADPATH:
  185.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  186.     IF sz$ = "REACTIVATE" THEN
  187.     GOTO BADPATH
  188.     END IF
  189.     UIPop 1
  190.     RETURN
  191.  
  192.  
  193. ASKQUIT:
  194.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  195.  
  196.     IF sz$ = "EXIT" THEN
  197.     UIPopAll
  198.     ERROR STFQUIT
  199.     ELSEIF sz$ = "REACTIVATE" THEN
  200.     GOTO ASKQUIT
  201.     ELSE
  202.     UIPop 1
  203.     END IF
  204.     RETURN
  205.  
  206. '************************************************************************
  207. '**
  208. '** Purpose:
  209. '**     Builds the copy list and performs all installation operations.
  210. '** Arguments:
  211. '**     none.
  212. '** Returns:
  213. '**     none.
  214. '*************************************************************************
  215.  
  216. SUB Install STATIC
  217.  
  218.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  219.  
  220. '    CreateDir DEST$, cmoNone
  221.  
  222.     WinDir$ = GetWindowsDir ()          
  223.  
  224. '    ClearCopyList
  225. '    AddSectionFilesToCopyList "files", SrcDir$, DEST$ 
  226. '    CopyFilesInCopyList
  227.  
  228. '    r% = DSC_Extract(Makepath(DEST$,"disk1.lzh"),DEST$)
  229. '    RemoveFile Makepath(DEST$,"disk1.lzh"),cmoNone
  230.  
  231.     IF lan$ = "GER" THEN             ' deutsch
  232.         CreateProgmanGroup "boeder Shareware", "", cmoNone
  233.         ShowProgmanGroup   "boeder Shareware", 1, cmoNone
  234.         CreateProgmanItem  "boeder Shareware", "Shoot em Up", ""+Makepath(SrcDir$,"start.exe"), "", cmoOverwrite
  235.         CreateProgmanItem  "boeder Shareware", "Liesmich", "notepad.exe "+Makepath(SrcDir$,"german.txt"), "", cmoOverwrite
  236.         CreateIniKeyValue MakePath(WinDir$,"sharewar.ini"), "boeder Shareware", "Sprache", "GER", cmoOverwrite
  237.     ELSEIF lan$ = "ENG" THEN         ' english
  238.         CreateProgmanGroup "boeder Shareware", "", cmoNone
  239.         ShowProgmanGroup   "boeder Shareware", 1, cmoNone
  240.         CreateProgmanItem  "boeder Shareware", "Shoot em Up", ""+Makepath(SrcDir$,"start.exe"), "", cmoOverwrite
  241.         CreateProgmanItem  "boeder Shareware", "Read me", "notepad.exe "+Makepath(SrcDir$,"english.txt"), "", cmoOverwrite
  242.         CreateIniKeyValue MakePath(WinDir$,"sharewar.ini"), "boeder Shareware", "Sprache", "ENG", cmoOverwrite
  243.     ELSEIF lan$ = "FRA" THEN        ' franz÷sisch
  244.         CreateProgmanGroup "boeder Shareware", "", cmoNone
  245.         ShowProgmanGroup   "boeder Shareware", 1, cmoNone
  246.         CreateProgmanItem  "boeder Shareware", "Shoot em Up", ""+Makepath(SrcDir$,"start.exe"), "", cmoOverwrite
  247.         CreateProgmanItem  "boeder Shareware", "Read me", "notepad.exe "+Makepath(SrcDir$,"french.txt"), "", cmoOverwrite
  248.         CreateIniKeyValue MakePath(WinDir$,"sharewar.ini"), "boeder Shareware", "Sprache", "FRA", cmoOverwrite
  249.     ELSEIF lan$ = "NET" THEN        ' niederlande
  250.         CreateProgmanGroup "boeder Shareware", "", cmoNone
  251.         ShowProgmanGroup   "boeder Shareware", 1, cmoNone
  252.         CreateProgmanItem  "boeder Shareware", "Shoot em Up", ""+Makepath(SrcDir$,"start.exe"), "", cmoOverwrite
  253.         CreateProgmanItem  "boeder Shareware", "Read me", "notepad.exe "+Makepath(SrcDir$,"nl.txt"), "", cmoOverwrite
  254.         CreateIniKeyValue MakePath(WinDir$,"sharewar.ini"), "boeder Shareware", "Sprache", "NETH", cmoOverwrite
  255.     ELSEIF lan$ = "ITALY" THEN        ' Italy
  256.         CreateProgmanGroup "boeder Shareware", "", cmoNone
  257.         ShowProgmanGroup   "boeder Shareware", 1, cmoNone
  258.         CreateProgmanItem  "boeder Shareware", "Shoot em Up", ""+Makepath(SrcDir$,"start.exe"), "", cmoOverwrite
  259.         CreateProgmanItem  "boeder Shareware", "Read me", "notepad.exe "+Makepath(SrcDir$,"italiano.txt"), "", cmoOverwrite
  260.         CreateIniKeyValue MakePath(WinDir$,"sharewar.ini"), "boeder Shareware", "Sprache", "ITALY", cmoOverwrite
  261.     ELSEIF lan$ = "SPAIN" THEN        ' Spain
  262.         CreateProgmanGroup "boeder Shareware", "", cmoNone
  263.         ShowProgmanGroup   "boeder Shareware", 1, cmoNone
  264.         CreateProgmanItem  "boeder Shareware", "Shoot em Up", ""+Makepath(SrcDir$,"start.exe"), "", cmoOverwrite
  265.         CreateProgmanItem  "boeder Shareware", "Read me", "notepad.exe "+Makepath(SrcDir$,"spain.txt"), "", cmoOverwrite
  266.         CreateIniKeyValue MakePath(WinDir$,"sharewar.ini"), "boeder Shareware", "Sprache", "SPAIN", cmoOverwrite
  267.     END IF
  268.  
  269.  
  270.  
  271.  
  272.  
  273.     
  274. END SUB
  275.  
  276.  
  277.  
  278. '*************************************************************************
  279. '**
  280. '** Purpose:
  281. '**     Appends a file name to the end of a directory path,
  282. '**     inserting a backslash character as needed.
  283. '** Arguments:
  284. '**     szDir$  - full directory path (with optional ending "\")
  285. '**     szFile$ - filename to append to directory
  286. '** Returns:
  287. '**     Resulting fully qualified path name.
  288. '*************************************************************************
  289.  
  290. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  291.     IF szDir$ = "" THEN
  292.     MakePath = szFile$
  293.     ELSEIF szFile$ = "" THEN
  294.     MakePath = szDir$
  295.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  296.     MakePath = szDir$ + szFile$
  297.     ELSE
  298.     MakePath = szDir$ + "\" + szFile$
  299.     END IF
  300. END FUNCTION
  301.