'$INCLUDE 'setupapi.inc'

''Dialog ID's
CONST WELCOME       = 100
CONST ASKQUIT       = 200
CONST DESTPATH      = 300
CONST EXITFAILURE   = 400
CONST EXITQUIT      = 600
CONST EXITSUCCESS   = 700
CONST APPHELP       = 900
CONST BADPATH       = 6400
CONST CHECKDIR      = 1000
CONST TOOBIG        = 6300
CONST SW_MAXIMIZE   = 3   'Maximize Window

GLOBAL DEST$        ''Default destination directory.

DECLARE SUB Install
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
DECLARE FUNCTION ShowWindow LIB "user" (hwnd%, nCmdShow%) AS INTEGER
DECLARE SUB OurSetBitmap LIB "mscuistf.dll" (hWnd%,id%,wFlags%)


INIT:
    CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
    HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure

    OurSetBitmap HwndFrame(),200,0      ''Custom SetBitmap for Home Logo
    OurSetBitmap HwndFrame(),104,1
    fTmp% = ShowWindow(HwndFrame(), SW_MAXIMIZE)
    SetTitle "Custom Entertainment Pack"

    szInf$ = GetSymbolValue("STF_SRCINFPATH")
    IF szInf$ = "" THEN
	szInf$ = GetSymbolValue("STF_CWDDIR") + "setup.INF"
    END IF
    ReadInfFile szInf$

    DEST$ = "C:\EP"

   
WELCOME:
    sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
    IF sz$ = "CONTINUE" THEN
	UIPop 1
    ELSE
	GOSUB ASKQUIT
	GOTO WELCOME
    END IF


GETPATH:
    SetSymbolValue "EditTextIn", DEST$
    SetSymbolValue "EditFocus", "END"
GETPATHL1:
    sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
    DEST$ = GetSymbolValue("EditTextOut")

    IF sz$ = "CONTINUE" THEN
	IF IsDirWritable(DEST$) = 0 THEN
	    GOSUB BADPATH
	    GOTO GETPATHL1
	END IF
	UIPop 1
    ELSEIF sz$ = "REACTIVATE" THEN
	GOTO GETPATHL1
    ELSEIF sz$ = "BACK" THEN
	UIPop 1
	GOTO WELCOME
    ELSE
	GOSUB ASKQUIT
	GOTO GETPATH
    END IF

    IF DoesDirExist(DEST$)=0 THEN
	If DEST$<>"C:\WEPPB" THEN
		sz$ = UIStartDlg(CUIDLL$, CHECKDIR, "FInfoDlgProc", APPHELP, HELPPROC$)
		IF SZ$ = "BACK" THEN 
			UIPOP 1
			GOTO GETPATH
		ELSE
			UIPOP 1
		ENDIF
	ENDIF
    ENDIF

CHECKSIZE:
    IF (GetFreeSpaceForDrive(MID$(DEST$,1,1)) < 3200000) THEN
    sz$ = UIStartDlg(CUIDLL$,TOOBIG,"FInfoDlgProc", APPHELP,HELPPROC$)
    UIPOP 1
    GOTO GETPATHL1
    ENDIF

    Install


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%, "FInfoDlgProc", 0, "")
    IF sz$ = "REACTIVATE" THEN
	GOTO QUITL1
    END IF
    UIPop 1

    END

ERRQUIT:
    i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
    END



BADPATH:
    sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", 0, "")
    IF sz$ = "REACTIVATE" THEN
	GOTO BADPATH
    END IF
    UIPop 1
    RETURN



ASKQUIT:
    sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")

    IF sz$ = "EXIT" THEN
	UIPopAll
	ERROR STFQUIT
    ELSEIF sz$ = "REACTIVATE" THEN
	GOTO ASKQUIT
    ELSE
	UIPop 1
    END IF
    RETURN



'**
'** Purpose:
'**     Builds the copy list and performs all installation operations.
'** Arguments:
'**     none.
'** Returns:
'**     none.
'*************************************************************************
SUB Install STATIC

    SrcDir$ = GetSymbolValue("STF_SRCDIR")
    CreateDir DEST$, cmoNone

    WINDIR$=GetWindowsDir()

    AddSectionFilesToCopyList "Files", SrcDir$, DEST$
    AddSectionFilesToCopyList "Windows Files",SrcDir$, WINDIR$

    CopyFilesInCopyList
    ClearBillboardList

    CreateProgmanGroup "Custom Entertainment Pack", "", cmoNone
    ShowProgmanGroup  "Custom Entertainment Pack", 1, cmoNone
    CreateProgmanItem "Custom Entertainment Pack","Dr. Black Jack",MakePath(DEST$,"blakjak.exe"), "", cmoOverwrite
    CreateProgmanItem "Custom Entertainment Pack","Rodent's Revenge",MakePath(Dest$,"rodent.exe"),"", cmoOverwrite
    CreateProgmanItem "Custom Entertainment Pack","Fuji Golf",MakePath(Dest$,"fujigolf.exe"),"",cmoOverwrite
    CreateProgmanItem "Custom Entertainment Pack","JigSawed",MakePath(Dest$,"jigsawed"),"",cmoOverwrite
    CreateProgmanItem "Custom Entertainment Pack","Life Genesis ",MakePath(DEST$,"lifegen.exe"), "", cmoOverwrite
    CreateProgmanItem "Custom Entertainment Pack","Rattler Race",MakePath(Dest$,"rattler.exe"),"", cmoOverwrite
    CreateProgmanItem "Custom Entertainment Pack","Chess",MakePath(Dest$,"chess.exe"),"",cmoOverwrite
    CreateProgmanItem "Custom Entertainment Pack","SkiFree",MakePath(Dest$,"ski.exe"),"",cmoOverwrite
    
END SUB



'**
'** 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

