Пример #1
0
int startwin_run(void)
{
	MSG msg;
	if (!startupdlg) return 1;

	done = -1;

	ScanGroups();

	SetPage(TAB_CONFIG);
	EnableConfig(1);

	settings.fullscreen = ScreenMode;
	settings.xdim = ScreenWidth;
	settings.ydim = ScreenHeight;
	settings.bpp = ScreenBPP;
    settings.samplerate = MixRate;
    settings.bitspersample = NumBits;
    settings.channels = NumChannels;
	settings.forcesetup = ForceSetup;
	settings.usemouse = UseMouse;
	settings.usejoy = UseJoystick;
	strncpy(settings.selectedgrp, grpfile, BMAX_PATH);
	PopulateForm(-1);

	while (done < 0) {
		switch (GetMessage(&msg, NULL, 0,0)) {
			case 0: done = 1; break;
			case -1: return -1;
			default:
				 if (IsWindow(startupdlg) && IsDialogMessage(startupdlg, &msg)) break;
				 TranslateMessage(&msg);
				 DispatchMessage(&msg);
				 break;
		}
	}

	SetPage(TAB_MESSAGES);
	EnableConfig(0);
	if (done) {
		ScreenMode = settings.fullscreen;
		ScreenWidth = settings.xdim;
		ScreenHeight = settings.ydim;
		ScreenBPP = settings.bpp;
        MixRate = settings.samplerate;
        NumBits = settings.bitspersample;
        NumChannels = settings.channels;        
		ForceSetup = settings.forcesetup;
		UseMouse = settings.usemouse;
		UseJoystick = settings.usejoy;
		grpfile = settings.selectedgrp;
	}

	FreeGroups();

	return done;
}
Пример #2
0
int32_t startwin_run(void)
{
    MSG msg;
    if (!startupdlg) return 1;

    done = -1;

    SetPage(TAB_CONFIG);
    EnableConfig(1);

    settings.fullscreen = fullscreen;
    settings.xdim2d = xdim2d;
    settings.ydim2d = ydim2d;
    settings.xdim3d = xdimgame;
    settings.ydim3d = ydimgame;
    settings.bpp3d = bppgame;
    settings.forcesetup = forcesetup;
    PopulateForm();

    while (done < 0)
    {
        switch (GetMessage(&msg, NULL, 0,0))
        {
        case 0:
            done = 1;
            break;
        case -1:
            return -1;
        default:
            if (IsWindow(startupdlg) && IsDialogMessage(startupdlg, &msg)) break;
            TranslateMessage(&msg);
            DispatchMessage(&msg);
            break;
        }
    }

    SetPage(TAB_MESSAGES);
    EnableConfig(0);
    if (done)
    {
        fullscreen = settings.fullscreen;
        xdim2d = settings.xdim2d;
        ydim2d = settings.ydim2d;
        xdimgame = settings.xdim3d;
        ydimgame = settings.ydim3d;
        bppgame = settings.bpp3d;
        forcesetup = settings.forcesetup;
    }

    return done;
}
Пример #3
0
int32_t startwin_open(void)
{
    INITCOMMONCONTROLSEX icc;
    if (startupdlg) return 1;
    icc.dwSize = sizeof(icc);
    icc.dwICC = ICC_TAB_CLASSES;
    InitCommonControlsEx(&icc);
    startupdlg = CreateDialog((HINSTANCE)win_gethinstance(), MAKEINTRESOURCE(WIN_STARTWIN), NULL, startup_dlgproc);
    if (startupdlg)
    {
        SetPage(TAB_MESSAGES);
        EnableConfig(0);
        return 0;
    }
    return -1;
}
Пример #4
0
int startwin_open(void)
{
	INITCOMMONCONTROLSEX icc;
	if (startupdlg) return 1;
	icc.dwSize = sizeof(icc);
	icc.dwICC = ICC_TAB_CLASSES;
	InitCommonControlsEx(&icc);
	startupdlg = CreateDialog((HINSTANCE)win_gethinstance(), MAKEINTRESOURCE(WIN_STARTWIN), NULL, startup_dlgproc);
	if (startupdlg) {
        {
            static int soundQualityFrequencies[] = { 44100, 22050, 11025 };
            static int soundQualitySampleSizes[] = { 16, 8 };
            static int soundQualityChannels[]    = { 2, 1 };
            unsigned int f, b, c, i;
            
            i = sizeof(soundQualityFrequencies) *
                sizeof(soundQualitySampleSizes) *
                sizeof(soundQualityChannels) /
                sizeof(int) + 2;    // one for the terminator, one for a custom setting
            soundQualities = (struct soundQuality_t *) malloc(i * sizeof(struct soundQuality_t));
            
            i = 0;
            for (c = 0; c < sizeof(soundQualityChannels) / sizeof(int); c++) {
                for (b = 0; b < sizeof(soundQualitySampleSizes) / sizeof(int); b++) {
                    for (f = 0; f < sizeof(soundQualityFrequencies) / sizeof(int); f++) {
                        soundQualities[i].frequency = soundQualityFrequencies[f];
                        soundQualities[i].samplesize = soundQualitySampleSizes[b];
                        soundQualities[i].channels = soundQualityChannels[c];
                        
                        i++;
                    }
                }
            }
            
            soundQualities[i].frequency = -1;
        }
	
		SetPage(TAB_MESSAGES);
		EnableConfig(0);
		return 0;
	}
	return -1;
}
Пример #5
0
int32_t startwin_run(void)
{
    MSG msg;
    if (!startupdlg) return 1;

    done = -1;

#ifdef JFAUD
    EnumAudioDevs(&wavedevs, NULL, NULL);
#endif
    SetPage(TAB_CONFIG);
    EnableConfig(1);

    settings.flags = 0;
    if (ud.config.ScreenMode) settings.flags |= 1;
#ifdef POLYMER
    if (glrendmode == REND_POLYMER) settings.flags |= 2;
#endif
    if (ud.config.NoAutoLoad) settings.flags |= 4;
    settings.xdim = ud.config.ScreenWidth;
    settings.ydim = ud.config.ScreenHeight;
    settings.bpp = ud.config.ScreenBPP;
    settings.forcesetup = ud.config.ForceSetup;
    settings.usemouse = ud.config.UseMouse;
    settings.usejoy = ud.config.UseJoystick;
    settings.game = g_gameType;
//    settings.crcval = 0;
    Bstrncpyz(settings.selectedgrp, G_GrpFile(), BMAX_PATH);
    settings.gamedir = g_modDir;
    PopulateForm(-1);

    while (done < 0)
    {
        switch (GetMessage(&msg, NULL, 0,0))
        {
        case 0:
            done = 1;
            break;
        case -1:
            return -1;
        default:
            if (IsWindow(startupdlg) && IsDialogMessage(startupdlg, &msg)) break;
            TranslateMessage(&msg);
            DispatchMessage(&msg);
            break;
        }
    }

    SetPage(TAB_MESSAGES);
    EnableConfig(0);
    if (done)
    {
        ud.config.ScreenMode = (settings.flags&1);
#ifdef POLYMER
        if (settings.flags & 2) glrendmode = REND_POLYMER;
        else glrendmode = REND_POLYMOST;
#endif
        if (settings.flags & 4) ud.config.NoAutoLoad = 1;
        else ud.config.NoAutoLoad = 0;
        ud.config.ScreenWidth = settings.xdim;
        ud.config.ScreenHeight = settings.ydim;
        ud.config.ScreenBPP = settings.bpp;
        ud.config.ForceSetup = settings.forcesetup;
        ud.config.UseMouse = settings.usemouse;
        ud.config.UseJoystick = settings.usejoy;

        clearGrpNamePtr();
        g_grpNamePtr = dup_filename(settings.selectedgrp);

        g_gameType = settings.game;

        if (g_noSetup == 0 && settings.gamedir != NULL)
            Bstrcpy(g_modDir,settings.gamedir);
        else Bsprintf(g_modDir,"/");

        {
            struct grpfile *grp;
            for (grp = listgrps; grp; grp=grp->next)
                if (settings.crcval == grp->crcval) break;

            if (grp)
            {
                g_gameNamePtr = grp->name;
                g_dependencyCRC = grp->dependency;

                if (grp->scriptname && g_scriptNamePtr == NULL)
                    g_scriptNamePtr = dup_filename(grp->scriptname);

                if (grp->defname && g_defNamePtr == NULL)
                    g_defNamePtr = dup_filename(grp->defname);
            }
        }
    }

    if (wavedevs)
    {
        struct audioenumdev *d, *e;
        Bfree(wavedevs->drvs);
        for (e=wavedevs->devs; e; e=d)
        {
            d = e->next;
            if (e->devs) Bfree(e->devs);
            Bfree(e);
        }
        Bfree(wavedevs);
    }

    return done;
}