home *** CD-ROM | disk | FTP | other *** search
Wrap
rem **************************************************************************** rem * rem * File: setup.mst rem * rem * Author: Clive Nutter rem * rem * Purpose: Script file for MS setup engine. rem * rem * Change History: rem * rem * 01.09.95, CLN Created, based on AV title setup.mst. rem * 02.09.95, CLN Added QuickTime version checking. rem * 03.09.95, CLN Amended so each promo has its own copy of rem * engine. rem * 06.09.95, CLN Added code for First World War & War in the rem * Pacific promos. rem * 15.09.95, CLN Add DLL call to update system configuration. rem * Add code to display read-me file. rem * rem **************************************************************************** '$INCLUDE 'setupapi.inc' '$INCLUDE 'mscpydis.inc' ''System '$INCLUDE 'msdetect.inc' ''Detects Available Disk Space '$INCLUDE 'pmgrdde.inc' ''Program Manager DDE '$INCLUDE 'flagtowr.inc' ''FlagTower title values ''Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST ASKPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST APPHELP = 900 CONST SMALLWIN = 2200 CONST RESTART = 2600 CONST RESTARTII = 2700 CONST BADPATH = 6400 'GLOBAL SizeReq& '' Total Disk Size required for installation GLOBAL WinDir$ ''Windows directory GLOBAL WinSysDir$ ''Windows system directory GLOBAL WinSys32Dir$ ''Win32 system directory GLOBAL MinorVer% ''Windows minor version number GLOBAL OnNT$ ''NT flag GLOBAL SrcDir$ ''Source directory GLOBAL CDDrive$ ''CD-Rom drive letter GLOBAL DbPath$ ''Database directory GLOBAL AVDest$ ''Directory to put AV engine libraries global isInstallQTW as integer ''----- External functions called by Video for Windows setup DECLARE FUNCTION ExitWindowsExec LIB "user" (Exec$, Param$) AS INTEGER DECLARE FUNCTION OnWindowsNT LIB "iniupd.dll" AS INTEGER DECLARE SUB Reboot LIB "iniupd.dll" DECLARE FUNCTION VflatdPresent LIB "iniupd.dll" AS INTEGER DECLARE FUNCTION WritePrivateProfileString LIB "krnl386.exe" (szSect$, szEntry$, szString$, szINI$) AS INTEGER ''----- External functions called by WinG setup DECLARE FUNCTION GetRealSystemDirectory LIB "setuphlp.dll" (szDir$, cbBuf%) AS INTEGER DECLARE FUNCTION IsWin32FileNewer LIB "setuphlp.dll" (szOrig$, szNew$) AS INTEGER DECLARE SUB RenameFilePlease LIB "setuphlp.dll" (szOrig$, szNew$) DECLARE FUNCTION RestartWindows LIB "setuphlp.dll" AS INTEGER ''----- Effects library functions used DECLARE FUNCTION DivertBackMessage LIB "avsetup.dll" (WinHandle%, InstHandle%) AS INTEGER DECLARE SUB MaxWindowArea LIB "avsetup.dll" (WinHandle%) DECLARE FUNCTION ShowBitmap LIB "avsetup.dll" (WinHandle%, szName$, nFx%, nFxTime%) AS INTEGER DECLARE FUNCTION SetFileAttribute LIB "avsetup.dll" (szName$, nMode%) AS INTEGER DECLARE FUNCTION setDOSFileAttr LIB "avsetup.dll" (szName$, nAttr%, nIsOverwrite%) AS INTEGER DECLARE FUNCTION getSystemRAM LIB "avsetup.dll" AS INTEGER DECLARE FUNCTION readTitleDescription LIB "avsetup.dll" (szDesc$, lenDesc%, szDescFile$) AS INTEGER DECLARE FUNCTION fnnGetQTWVersion LIB "qtw_vers.dll" (ourVersion&) AS INTEGER DECLARE FUNCTION CallModifyCONFIG LIB "confchk.dll" (WinHandle%) AS INTEGER ''----- Local functions DECLARE FUNCTION CheckVideoSystem(WinMajVer%, WinMinVer%, ProcType%) AS INTEGER DECLARE FUNCTION CreateTitleINIFile(szINI$, szCD$, szDbPath$) AS INTEGER declare sub CopyTitlePromoBinaries(pathBinary$, sectBinary$, sectCDilla$, sectEngine$, sectAccusoft$ ) declare sub CopyTitlePromoDatabase(pathDatabase$, sectDatabase$ ) declare sub InstallTitlePromo( pathRoot$, pathBinary$, pathDatabase$, iniFile$, dllFile$, iconNo% ) DECLARE SUB Install DECLARE FUNCTION MakePath(szDir$, szFile$) AS STRING DECLARE SUB UpdateWinG32(szOrig$) INIT: CUIDLL$ = "ftcuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure MajorVer% = GetWindowsMajorVersion() MinorVer% = GetWindowsMinorVersion() Processor% = GetProcessorType() WinDir$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() WinSys32Dir$ = WinDir$ + "system32" SrcDir$ = GetSymbolValue("STF_SRCDIR") 'Make sure the user's system can handle Video for Windows dummy% = CheckVideoSystem(MajorVer%, MinorVer%, Processor%) IF OnWindowsNT() THEN OnNT$ = "TRUE" END IF 'Read setup's .INF file szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF" END IF ReadInfFile szInf$ 'Divert paint messages of background window to our own routine dummy% = DivertBackMessage(HwndFrame(), HinstFrame()) MaxWindowArea(HwndFrame()) dummy% = ShowBitmap(HwndFrame(), SrcDir$+"logo.bmp",106,1000) WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF GETPATH: AVDest$ = Dir_DefaultInstall SetSymbolValue "EditTextIn", AVDest$ SetSymbolValue "EditTextOut", AVDest$ SetSymbolValue "EditFocus", "END" GETPATHL1: SetSymbolValue "DLGEVENT", "" sz$ = UIStartDlg(CUIDLL$, ASKPATH, "FEditDlgProc", 0, "") AVDest$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN IF IsDirWritable(AVDest$) = 0 THEN GOSUB BADPATH GOTO GETPATHL1 END IF UIPop 1 ELSE IF sz$ = "EXIT" THEN GOSUB ASKQUIT END IF GOTO GETPATH END IF rem *** Prepare copy list ClearCopyList '$ifdef IsAdvert Path_AdvertRoot = AVDest$ + Dir_AdvertRoot Path_AdvertBinary = Path_AdvertRoot + Dir_Binary Path_AdvertEngine = Path_AdvertRoot + Dir_Binary Path_AdvertDatabase = Path_AdvertRoot + Dir_Database '$endif '$ifdef IsSpacePromo Path_SpaceRoot = AVDest$ + Dir_SpaceRoot Path_SpaceBinary = Path_SpaceRoot + Dir_Binary Path_SpaceEngine = Path_SpaceRoot + Dir_Binary Path_SpaceDatabase = Path_SpaceRoot + Dir_Database '$endif '$ifdef IsWW2Promo Path_WW2Root = AVDest$ + Dir_WW2Root Path_WW2Binary = Path_WW2Root + Dir_Binary Path_WW2Engine = Path_WW2Root + Dir_Binary Path_WW2Database = Path_WW2Root + Dir_Database '$endif '$ifdef IsFWWPromo Path_FWWRoot = AVDest$ + Dir_FWWRoot Path_FWWBinary = Path_FWWRoot + Dir_Binary Path_FWWEngine = Path_FWWRoot + Dir_Binary Path_FWWDatabase = Path_FWWRoot + Dir_Database '$endif '$ifdef IsWPCPromo Path_WPCRoot = AVDest$ + Dir_WPCRoot Path_WPCBinary = Path_WPCRoot + Dir_Binary Path_WPCEngine = Path_WPCRoot + Dir_Binary Path_WPCDatabase = Path_WPCRoot + Dir_Database '$endif '' ------------------- Copy list for Video for Windows -------------------- ''Remove DCISVGA file RemoveFile WinSysDir$+"dcisvga.drv", cmoForce IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN 'These files not necessary on Windows NT AddSectionFilesToCopyList "VfW MPlayer", SrcDir$, WinDir$ AddSectionFilesToCopyList "VfW OLE2", SrcDir$, WinSysDir$ END IF AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "VfW ACM Drivers", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "VfW AVICodecs", SrcDir$, WinSysDir$ IF OnNT$ = "TRUE" THEN AddSectionFilesToCopyList "VfW NT MSVideo", SrcDir$, WinSys32Dir$ ENDIF '' --------------------- Copy list for WinG ----------------------- AddSectionFilesToCopyList "WinG runtime", SrcDir$, WinSysDir$ Dest1$ = MakePath (WinSysDir$,"Wing32.dll") Dest2$ = MakePath (WinSysDir$,"Wing32.xxx") RenameFilePlease Dest1$, Dest2$ '' ---------------------- Copy list for WinToon ----------------------- AddSectionFilesToCopyList "WinToon runtime", SrcDir$, WinSysDir$ '' --------------------- Copy list for MediaView ---------------------- AddSectionFilesToCopyList "MediaView runtime", SrcDir$, WinSysDir$ rem *** Copy list for QuickTime isInstallQTW = 0 qtwVersion& = 8748 s% = fnnGetQTWVersion( qtwVersion& ) if s% = 1 then isInstallQTW = 1 AddSectionFilesToCopyList "QuickTime 2.02 runtime", SrcDir$, WinSysDir$ endif '' ------------------------ Copy list for ADS ------------------------- AddSectionFilesToCopyList "ADS", SrcDir$, WinSysDir$ '' ------------------------ Copy list for AAPLAY ------------------------- AddSectionFilesToCopyList "AAPLAY Animation", SrcDir$, WinSysDir$ '' ------------------------ Copy list for Accusoft Pro Gold ------------------------- rem AddSectionFilesToCopyList "Accusoft Pro Gold", SrcDir$, WinSysDir$ '$ifdef IsEncrypted rem *** Copy list for C-Dilla AddSectionFilesToCopyList "C-Dilla system", SrcDir$, WinDir$ '$endif rem *** Common utilities and system files AddSectionFilesToCopyList Sect_GenericUtility, SrcDir$, AVDest$ AddSectionFilesToCopyList Sect_GenericSystem, SrcDir$, WinSysDir$ '$ifdef IsAdvert CopyTitlePromoBinaries Path_AdvertBinary, Sect_AdvertBinary, Sect_AdvertCDilla, Sect_AdvertEngine, Sect_AdvertAccusoftGold CopyTitlePromoDatabase Path_AdvertDatabase, Sect_AdvertDatabase '$endif '$ifdef IsSpacePromo CopyTitlePromoBinaries Path_SpaceBinary, Sect_SpaceBinary, Sect_SpaceCDilla, Sect_SpaceEngine, Sect_SpaceAccusoftGold CopyTitlePromoDatabase Path_SpaceDatabase, Sect_SpaceDatabase '$endif '$ifdef IsWW2Promo CopyTitlePromoBinaries Path_WW2Binary, Sect_WW2Binary, Sect_WW2CDilla, Sect_WW2Engine, Sect_WW2AccusoftGold CopyTitlePromoDatabase Path_WW2Database, Sect_WW2Database '$endif '$ifdef IsFWWPromo CopyTitlePromoBinaries Path_FWWBinary, Sect_FWWBinary, Sect_FWWCDilla, Sect_FWWEngine, Sect_FWWAccusoftGold CopyTitlePromoDatabase Path_FWWDatabase, Sect_FWWDatabase '$endif '$ifdef IsWPCPromo CopyTitlePromoBinaries Path_WPCBinary, Sect_WPCBinary, Sect_WPCCDilla, Sect_WPCEngine, Sect_WPCAccusoftGold CopyTitlePromoDatabase Path_WPCDatabase, Sect_WPCDatabase '$endif '' -------- Check space on hard disk -------- SizeReq& = GetCopyListCost ("","", "") IF SizeReq& <> 0 THEN GOSUB SMALLWIN END END IF '' Perform install Install '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically '' else, it gives the user the choice RESTRT% = RestartListEmpty () Exe$ = WinDir$ + "\_msrstrt.exe" Batch$ = WinDir$ + "\_mssetup.bat" empty$ = "" RESTART: IF RESTRT% = 0 THEN sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO RESTART ENDIF I% = ExitExecRestart () RemoveFile Exe$, cmoForce RemoveFile Batch$, cmoForce END ELSE sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "") IF sz$ = "CONTINUE" THEN I% = ExitWindowsExec (Exe$, empty$) IF I% = 0 THEN GOTO RESTART ELSE END ENDIF ELSEIF sz$ = "EXIT" THEN UIPopAll END ELSEIF sz$ = "REACTIVATE" THEN GOTO RESTART ELSE UIPop 1 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("An installation problem occured.", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll '' ERROR STFQUIT END ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN SMALLWIN: sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO SMALLWIN END IF UIPop 1 RETURN BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN '** '** Purpose: '** Performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC rem *** Change file attribute of 'flagtowr.ttl' to "normal" so it is visible rem dummy% = setDOSFileAttr( Path_TitleUtility + FN_Description, 0, 1 ) rem dummy% = setDOSFileAttr( Path_AdvertUtility + FN_Description, 0, 1 ) SetRestartDir WinDir$ CopyFilesInCopyList UpdateWinG32 WinSysDir$ ''<-------------------- BACK UP INI FILES HERE !!! ----------------------> inia$ = MakePath(WinDir$, "win.ini") inib$ = MakePath(WinDir$, "win.ftw") CopyFile inia$, inib$, cmoOverwrite, 0 inia$ = MakePath(WinDir$, "system.ini") inib$ = MakePath(WinDir$, "system.ftw") CopyFile inia$, inib$, cmoOverwrite, 0 ''----------------- Update INI files for Video for Windows --------------- ''Updating WIN.INI and SYSTEM.INI ''Only update SYSTEM.INI on NT or next version of Windows for other codecs IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN IF VflatdPresent() = 0 THEN CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite END IF END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21") IF I% = 0 THEN CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "mci extensions", "avi", "AVIVideo", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite if isInstallQTW = 1 then rem *** Update INI files for QuickTime CreateIniKeyValue "win.ini", "MCI Extensions", "mov", "QTWVideo", cmoOverwrite CreateIniKeyValue "win.ini", "MCI Extensions", "pic", "QTWVideo", cmoOverwrite CreateIniKeyValue "win.ini", "MCI Extensions", "jpg", "QTWVideo", cmoOverwrite i% = WritePrivateProfileString("MCI", "QTWVideo", MakePath(WinSysDir$, "mciqtw.drv"), "SYSTEM.INI") rem *** Create QTW.INI ini$ = MakePath(WinDir$, "qtw.ini") CreateIniKeyValue ini$, "QuickTime for Windows", "Implementation", "Full" , cmoOverwrite RemoveIniKey ini$, "video", "optimize", cmoNone endif rem Compatibility hacks. i% = WritePrivateProfileString("Macx", "DeviceBitmap", "OFF", "system.ini") CreateIniKeyValue "win.ini", "Mach", "DeviceBitmap", "off", cmoOverwrite rem *** Update INI files for AAPLAY CreateIniKeyValue WinDir$ + "win.ini", "AAPLAY Animation", "FullScreen", "AAVGA.DLL", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "AAPLAY Animation", "DualScreen", "yes", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "AAPLAY Animation", "Int2fSwitch", "no", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "AAPLAY Animation", "WaveAudio", "c,522", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "mci extensions", "flc", "Animation1", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "mci extensions", "fli", "Animation1", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "mci extensions", "aas", "Animation1", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "mci", "Animation1", "mciaap.drv", cmoOverwrite ''------ Register Video for Windows components ----- ''Do not register components not installed with Video for Windows on NT or next version of Windows. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg")) '' Mplayer CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite END IF ''NT and next version of Windows installation stop here. Run ("profdisp.exe") ''Profile display for Video for Windows '$ifdef IsAdvert InstallTitlePromo Path_AdvertRoot, Path_AdvertBinary, Path_AdvertDatabase, INI_Advert, DLL_Advert, Icon_Advert '$endif '$ifdef IsSpacePromo InstallTitlePromo Path_SpaceRoot, Path_SpaceBinary, Path_SpaceDatabase, INI_Space, DLL_Space, Icon_Space rem CreateProgmanItem PMG_FlagTower, PMI_Menu, AVDest$ + "\prommenu.exe" + " " + AVDest$, "", cmoOverwrite '$endif '$ifdef IsWW2Promo InstallTitlePromo Path_WW2Root, Path_WW2Binary, Path_WW2Database, INI_WW2, DLL_WW2, Icon_WW2 rem CreateProgmanItem PMG_FlagTower, PMI_Menu, AVDest$ + "\prommenu.exe" + " " + AVDest$, "", cmoOverwrite '$endif '$ifdef IsFWWPromo InstallTitlePromo Path_FWWRoot, Path_FWWBinary, Path_FWWDatabase, INI_FWW, DLL_FWW, Icon_FWW rem CreateProgmanItem PMG_FlagTower, PMI_Menu, AVDest$ + "\prommenu.exe" + " " + AVDest$, "", cmoOverwrite '$endif '$ifdef IsWPCPromo InstallTitlePromo Path_WPCRoot, Path_WPCBinary, Path_WPCDatabase, INI_WPC, DLL_WPC, Icon_WPC rem CreateProgmanItem PMG_FlagTower, PMI_Menu, AVDest$ + "\prommenu.exe" + " " + AVDest$, "", cmoOverwrite '$endif CreateProgmanItem PMG_FlagTower, PMI_Uninstall, AVDest$ + "\uninstal.exe", "", cmoOverwrite i% = CallModifyCONFIG( HwndFrame() ) Run ( "notepad " + SrcDir$ + "readme.txt" ) END SUB ' -------------------------------------------------------------------------------------------- ' -------------------------------------------------------------------------------------------- ' -------------------------------------------------------------------------------------------- ' Miscellaneous Functions ' -------------------------------------------------------------------------------------------- '** '** 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 SUB UpdateWinG32(szOrig$) STATIC ' ' Check the version of wing32.dll since cannot get version ' checking for Win32 apps from Win16 ' FileNew$ = MakePath(szOrig$, "wing32.dll") FileOrig$ = MakePath(szOrig$, "wing32.xxx") IF IsWin32FileNewer(FileOrig$, FileNew$) THEN RemoveFile FileOrig$, cmoForce ELSE RemoveFile FileNew$, cmoForce RenameFilePlease FileOrig$, FileNew$ END IF END SUB FUNCTION CreateTitleINIFile(szINI$, szCD$, szDbPath$) STATIC AS INTEGER ramSize% = getSystemRAM() ramSizeStr$ = str$( ramSize% ) ramSizeStr$ = ltrim$( ramSizeStr$ ) CreateIniKeyValue szINI$, "METRICS", "CDROM", szCD$ , cmoOverwrite CreateIniKeyValue szINI$, "METRICS", "RAM", ramSizeStr$, cmoOverwrite CreateIniKeyValue szINI$, "METRICS", "VOLUME", "5" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "ROUTING", szDbPath$+"\ROUTING.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "RUNTIME", szDbPath$+"\RUNTIME.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "UNITBASE", szDbPath$+"\UNITBASE.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "FILEBASE", szDbPath$+"\FILEBASE.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "TIMELINE", szDbPath$+"\TL_BASE.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "GCACHE", szDbPath$+"\GCACHE.MBF" , cmoOverwrite CreateTitleINIFile = 0 END FUNCTION sub CopyTitlePromoBinaries(pathBinary$, sectBinary$, sectCDilla$, sectEngine$, sectAccusoft$ ) static rem *** Copy list for Accusoft Pro Gold AddSectionFilesToCopyList sectAccusoft$, SrcDir$, pathBinary$ '$ifdef IsEncrypted rem *** Copy list for C-Dilla AddSectionFilesToCopyList Sect_CDillaSystem, SrcDir$, WinDir$ AddSectionFilesToCopyList sectCDilla$, SrcDir$, pathBinary$ '$endif rem *** Copy list for AV ENGINE AddSectionFilesToCopyList sectEngine$, SrcDir$, pathBinary$ rem *** Copy list for title AddSectionFilesToCopyList sectBinary$, SrcDir$, pathBinary$ dummy% = setDOSFileAttr( pathBinary$ + FN_Description, 0, 1 ) end sub sub CopyTitlePromoDatabase(pathDatabase$, sectDatabase$ ) static AddSectionFilesToCopyList sectDatabase$, SrcDir$, pathDatabase$ end sub sub InstallTitlePromo( pathRoot$, pathBinary$, pathDatabase$, iniFile$, dllFile$, iconNo% ) static CDDrive$ = MID$(SrcDir$,1,1) CreateDir pathRoot$, cmoNone CreateDir pathBinary$, cmoNone CreateDir pathDatabase$, cmoNone dummy% = CreateTitleINIFile( pathBinary$+"\"+iniFile$, CDDrive$, pathDatabase$ ) rem *** Change file attribute of 'flagtowr.ttl' to Read-only+Hidden dummy% = setDOSFileAttr( pathBinary$ + FN_Description, 3, 1 ) rem *** create unitdb.mbf in title database directory to aid performance CopyFile pathDatabase+"\unitbase.mbf", pathDatabase+"\unitdb.mbf", cmoOverwrite, 0 dim PMI_Title as string PMI_Title = string$( 110, 32 ) s% = readTitleDescription( PMI_Title, 110, pathBinary$ + FN_Description ) rem *** Create Program Manager Group CreateProgmanGroup PMG_FlagTower, "", cmoNone ShowProgmanGroup PMG_FlagTower, 1, cmoNone rem *** Create Icon(s) s% = pmDeleteItem( PMI_Title ) TitleDLL$ = pathBinary$+"\"+dllFile$ Launch$ = pathBinary$+"\LAUNCH.EXE " '$ifdef IsEncrypted Other$ = pathBinary$+"\ZLAUNCH.EXE "+","+ str$( iconNo% ) +",0,0,"+pathBinary$ '$else Other$ = Launch$+","+ str$( iconNo% ) +",0,0,"+pathBinary$ '$endif CreateProgmanItem PMG_FlagTower, PMI_Title, Launch$+TitleDLL$ , Other$ , cmoOverwrite END SUB FUNCTION CheckVideoSystem(WinMajVer%, WinMinVer%, ProcType%) STATIC AS INTEGER 'Check if system have necessary processor and version of Windows running to install Video for Windows ''Video for Windows tests IF WinMajVer% < 3 OR (WinMajVer% = 3 AND WinMinVer% < 10) THEN i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF 'Prevents installation on 286 IF ProcType% < 3 THEN i% = DoMsgBox("Video for Windows requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF ' Use Wowexec to determine version of NT. 3.1 did not stamp wowexec and wow returns 3.1 as version IF OnWindowsNT() THEN WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe") IF WowVersion$ = "" THEN i% = DoMsgBox("Video for Windows does not run on Windows NT 3.1. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF END IF END FUNCTION