Subversion Repositories eduke32

Rev

Rev 873 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 873 Rev 877
Line 313... Line 313...
313
inline int menutext(int x,int y,int s,int p,const char *t)
313
inline int menutext(int x,int y,int s,int p,const char *t)
314
{
314
{
315
    return(menutext_(x,y,s,p,(char *)stripcolorcodes(t)));
315
    return(menutext_(x,y,s,p,(char *)stripcolorcodes(t)));
316
}
316
}
317
317
318
static void bar_(int type, int x,int y,short *p,int dainc,int damodify,int s, int pa)
318
static void _bar(int type, int x,int y,int *p,int dainc,int damodify,int s, int pa, int min, int max)
319
{
319
{
320
    short xloc;
320
    int xloc;
321
    char rev;
321
    char rev;
322
322
323
    if (dainc < 0)
323
    if (dainc < 0)
324
    {
324
    {
325
        dainc = -dainc;
325
        dainc = -dainc;
Line 330... Line 330...
330
330
331
    if (damodify)
331
    if (damodify)
332
    {
332
    {
333
        if (rev == 0)
333
        if (rev == 0)
334
        {
334
        {
335
            if (*p > 0 && (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || ((buttonstat&1) && (WHEELUP || mii < -256))))         // && onbar) )
335
            if (*p > min && (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || ((buttonstat&1) && (WHEELUP || mii < -256))))         // && onbar) )
336
            {
336
            {
337
                KB_ClearKeyDown(sc_LeftArrow);
337
                KB_ClearKeyDown(sc_LeftArrow);
338
                KB_ClearKeyDown(sc_kpad_4);
338
                KB_ClearKeyDown(sc_kpad_4);
339
                MOUSE_ClearButton(WHEELUP_MOUSE);
339
                MOUSE_ClearButton(WHEELUP_MOUSE);
340
                mii = 0;
340
                mii = 0;
341
                *p -= dainc;
341
                *p -= dainc;
342
                if (*p < 0)
342
                if (*p < min)
343
                    *p = 0;
343
                    *p = min;
344
                sound(KICK_HIT);
344
                sound(KICK_HIT);
345
            }
345
            }
346
            if (*p < 63 && (KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || ((buttonstat&1) && (WHEELDOWN || mii > 256))))        //&& onbar) )
346
            if (*p < max && (KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || ((buttonstat&1) && (WHEELDOWN || mii > 256))))        //&& onbar) )
347
            {
347
            {
348
                KB_ClearKeyDown(sc_RightArrow);
348
                KB_ClearKeyDown(sc_RightArrow);
349
                KB_ClearKeyDown(sc_kpad_6);
349
                KB_ClearKeyDown(sc_kpad_6);
350
                MOUSE_ClearButton(WHEELDOWN_MOUSE);
350
                MOUSE_ClearButton(WHEELDOWN_MOUSE);
351
                mii = 0;
351
                mii = 0;
352
                *p += dainc;
352
                *p += dainc;
353
                if (*p > 63)
353
                if (*p > max)
354
                    *p = 63;
354
                    *p = max;
355
                sound(KICK_HIT);
355
                sound(KICK_HIT);
356
            }
356
            }
357
        }
357
        }
358
        else
358
        else
359
        {
359
        {
360
            if (*p > 0 && (KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || ((buttonstat&1) && minfo.dyaw > 256)))        //&& onbar) )
360
            if (*p > min && (KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || ((buttonstat&1) && minfo.dyaw > 256)))        //&& onbar) )
361
            {
361
            {
362
                KB_ClearKeyDown(sc_RightArrow);
362
                KB_ClearKeyDown(sc_RightArrow);
363
                KB_ClearKeyDown(sc_kpad_6);
363
                KB_ClearKeyDown(sc_kpad_6);
364
364
365
                *p -= dainc;
365
                *p -= dainc;
366
                if (*p < 0)
366
                if (*p < min)
367
                    *p = 0;
367
                    *p = min;
368
                sound(KICK_HIT);
368
                sound(KICK_HIT);
369
            }
369
            }
370
            if (*p < 64 && (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || ((buttonstat&1) && minfo.dyaw < -256)))         // && onbar) )
370
            if (*p < 64 && (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || ((buttonstat&1) && minfo.dyaw < -256)))         // && onbar) )
371
            {
371
            {
372
                KB_ClearKeyDown(sc_LeftArrow);
372
                KB_ClearKeyDown(sc_LeftArrow);
373
                KB_ClearKeyDown(sc_kpad_4);
373
                KB_ClearKeyDown(sc_kpad_4);
374
374
375
                *p += dainc;
375
                *p += dainc;
376
                if (*p > 64)
376
                if (*p > max)
377
                    *p = 64;
377
                    *p = max;
378
                sound(KICK_HIT);
378
                sound(KICK_HIT);
379
            }
379
            }
380
        }
380
        }
381
    }
381
    }
382
382
383
    xloc = *p;
383
    xloc = *p;
384
-
 
385
    rotatesprite((x<<16)+(22<<(16-type)),(y<<16)-(3<<(16-type)),65536L>>type,0,SLIDEBAR,s,pa,10,0,0,xdim-1,ydim-1);
384
    rotatesprite((x<<16)+(22<<(16-type)),(y<<16)-(3<<(16-type)),65536L>>type,0,SLIDEBAR,s,pa,10,0,0,xdim-1,ydim-1);
386
    if (rev == 0)
385
    if (rev == 0)
387
        rotatesprite((x<<16)+((xloc+1)<<(16-type)),(y<<16)+(1<<(16-type)),65536L>>type,0,SLIDEBAR+1,s,pa,10,0,0,xdim-1,ydim-1);
386
        rotatesprite((x<<16)+((scale(64,xloc-min,max-min)+1)<<(16-type)),(y<<16)+(1<<(16-type)),65536L>>type,0,SLIDEBAR+1,s,pa,10,0,0,xdim-1,ydim-1);
388
    else
387
    else
389
        rotatesprite((x<<16)+((65-xloc)<<(16-type)),(y<<16)+(1<<(16-type)),65536L>>type,0,SLIDEBAR+1,s,pa,10,0,0,xdim-1,ydim-1);
388
        rotatesprite((x<<16)+((65-scale(64,xloc-min,max-min))<<(16-type)),(y<<16)+(1<<(16-type)),65536L>>type,0,SLIDEBAR+1,s,pa,10,0,0,xdim-1,ydim-1);
390
}
389
}
391
390
392
#define bar(x,y,p,dainc,damodify,s,pa) bar_(0,x,y,p,dainc,damodify,s,pa);
391
#define bar(x,y,p,dainc,damodify,s,pa) _bar(0,x,y,p,dainc,damodify,s,pa,0,63);
393
#define barsm(x,y,p,dainc,damodify,s,pa) bar_(1,x,y,p,dainc,damodify,s,pa);
392
#define barsm(x,y,p,dainc,damodify,s,pa) _bar(1,x,y,p,dainc,damodify,s,pa,0,63);
394
393
395
static void modval(int min, int max,int *p,int dainc,int damodify)
394
static void modval(int min, int max,int *p,int dainc,int damodify)
396
{
395
{
397
    char rev;
396
    char rev;
398
397
Line 2554... Line 2553...
2554
                yy += 8;
2553
                yy += 8;
2555
            }
2554
            }
2556
        }
2555
        }
2557
#endif
2556
#endif
2558
        break;
2557
        break;
-
 
2558
    case 231:
-
 
2559
        rotatesprite(320<<15,19<<16,65536L,0,MENUBAR,16,0,10,0,0,xdim-1,ydim-1);
-
 
2560
        menutext(320>>1,24,0,0,"BRIGHTNESS");
-
 
2561
-
 
2562
        c = (320>>1)-120;
-
 
2563
-
 
2564
        x = 4;
-
 
2565
-
 
2566
        onbar = 1;
-
 
2567
        x = probe(c,probey==3?58:50,16,x);
-
 
2568
-
 
2569
        if (x == -1)
-
 
2570
        {
-
 
2571
            cmenu(203);
-
 
2572
            probey = 4;
-
 
2573
            break;
-
 
2574
        }
-
 
2575
-
 
2576
        menutext(c,50,MENUHIGHLIGHT(0),0,"GAMMA");
-
 
2577
        menutext(c,50+16,MENUHIGHLIGHT(1),0,"CONTRAST");
-
 
2578
        menutext(c,50+16+16,MENUHIGHLIGHT(2),0,"BRIGHTNESS");
-
 
2579
        menutext(c,50+16+16+16+8,MENUHIGHLIGHT(3),0,"RESET TO DEFAULTS");
-
 
2580
        {
-
 
2581
            int b = (vid_gamma*40960.f);
-
 
2582
            _bar(0,c+171,50,&b,4096,x==0,MENUHIGHLIGHT(0),0,8192,163840);
-
 
2583
-
 
2584
            if (b != (vid_gamma*40960.f))
-
 
2585
            {
-
 
2586
                vid_gamma = b/40960.f;
-
 
2587
                ud.brightness = min(max((float)((vid_gamma-1.0)*10.0),0),15);
-
 
2588
                ud.brightness <<= 2;
-
 
2589
                setgamma();
-
 
2590
            }
-
 
2591
-
 
2592
            b = (vid_contrast*40960.f);
-
 
2593
            _bar(0,c+171,50+16,&b,4096,x==1,MENUHIGHLIGHT(1),0,4096,122880);
-
 
2594
-
 
2595
            if (b != (vid_contrast*40960.f))
-
 
2596
            {
-
 
2597
                vid_contrast = b/40960.f;
-
 
2598
                setgamma();
-
 
2599
            }
-
 
2600
-
 
2601
            b = (vid_brightness*40960.f);
-
 
2602
            _bar(0,c+171,50+16+16,&b,2048,x==2,MENUHIGHLIGHT(2),0,-32767,32767);
-
 
2603
-
 
2604
            if (b != (vid_brightness*40960.f))
-
 
2605
            {
-
 
2606
                vid_brightness = b/40960.f;
-
 
2607
                setgamma();
-
 
2608
            }
-
 
2609
-
 
2610
            if (x == 3)
-
 
2611
            {
-
 
2612
                vid_gamma = DEFAULT_GAMMA;
-
 
2613
                vid_contrast = DEFAULT_CONTRAST;
-
 
2614
                vid_brightness = DEFAULT_BRIGHTNESS;
-
 
2615
                setgamma();
-
 
2616
            }
-
 
2617
        }
-
 
2618
-
 
2619
        break;
2559
2620
2560
    case 200:
2621
    case 200:
2561
2622
2562
        rotatesprite(320<<15,19<<16,65536L,0,MENUBAR,16,0,10,0,0,xdim-1,ydim-1);
2623
        rotatesprite(320<<15,19<<16,65536L,0,MENUBAR,16,0,10,0,0,xdim-1,ydim-1);
2563
        menutext(320>>1,24,0,0,"GAME SETUP");
2624
        menutext(320>>1,24,0,0,"GAME SETUP");
Line 2638... Line 2699...
2638
                    break;
2699
                    break;
2639
                case 2:
2700
                case 2:
2640
                {
2701
                {
2641
                    int i;
2702
                    int i;
2642
                    i = ud.screen_size;
2703
                    i = ud.screen_size;
2643
                    barsm(d+8,yy+7, (short *)&ud.screen_size,-4,x==io,MENUHIGHLIGHT(io),PHX(-5));
2704
                    barsm(d+8,yy+7, &ud.screen_size,-4,x==io,MENUHIGHLIGHT(io),PHX(-5));
2644
                    if (i < ud.screen_size && i == 8 && ud.statusbarmode == 1 && bpp > 8)
2705
                    if (i < ud.screen_size && i == 8 && ud.statusbarmode == 1 && bpp > 8)
2645
                    {
2706
                    {
2646
                        ud.statusbarmode = 0;
2707
                        ud.statusbarmode = 0;
2647
                        if (ud.statusbarscale != 100)
2708
                        if (ud.statusbarscale != 100)
2648
                            ud.screen_size = i;
2709
                            ud.screen_size = i;
Line 2657... Line 2718...
2657
                    }
2718
                    }
2658
                }
2719
                }
2659
                break;
2720
                break;
2660
                case 3:
2721
                case 3:
2661
                {
2722
                {
2662
                    short sbs, sbsl;
2723
                    int sbs, sbsl;
2663
                    sbs = sbsl = ud.statusbarscale-37;
2724
                    sbs = sbsl = ud.statusbarscale-37;
2664
                    barsm(d+8,yy+7, (short *)&sbs,8,x==io,MENUHIGHLIGHT(io),PHX(-5));
2725
                    barsm(d+8,yy+7, &sbs,8,x==io,MENUHIGHLIGHT(io),PHX(-5));
2665
                    if (x == io && sbs != sbsl)
2726
                    if (x == io && sbs != sbsl)
2666
                    {
2727
                    {
2667
                        sbs += 37;
2728
                        sbs += 37;
2668
                        setstatusbarscale(sbs);
2729
                        setstatusbarscale(sbs);
2669
                    }
2730
                    }
Line 2963... Line 3024...
2963
#if defined(POLYMOST) && defined(USE_OPENGL)
3024
#if defined(POLYMOST) && defined(USE_OPENGL)
2964
        x = (6+(bpp>8));
3025
        x = (6+(bpp>8));
2965
#else
3026
#else
2966
        x = 6;
3027
        x = 6;
2967
#endif
3028
#endif
2968
        onbar = (probey == 4);
3029
        onbar = 0; // (probey == 4);
2969
        if (probey == 0 || probey == 1 || probey == 2)
3030
        if (probey == 0 || probey == 1 || probey == 2)
2970
            x = probe(c,50,16,x);
3031
            x = probe(c,50,16,x);
2971
        else if (probey == 3)
3032
        else if (probey == 3)
2972
            x = probe(c,50+16+16+22,0,x);
3033
            x = probe(c,50+16+16+22,0,x);
2973
        else
3034
        else
Line 3185... Line 3246...
3185
                ud.config.ScreenBPP = bpp;
3246
                ud.config.ScreenBPP = bpp;
3186
            }
3247
            }
3187
            break;
3248
            break;
3188
3249
3189
        case 4:
3250
        case 4:
-
 
3251
            cmenu(231);
3190
            break;
3252
            break;
3191
3253
3192
        case 5:
3254
        case 5:
3193
            if (bpp==8)
3255
            if (bpp==8)
3194
            {
3256
            {
Line 3237... Line 3299...
3237
        menutext(c+154,50+16+16,MENUHIGHLIGHT(2),0,newfullscreen?"YES":"NO");
3299
        menutext(c+154,50+16+16,MENUHIGHLIGHT(2),0,newfullscreen?"YES":"NO");
3238
3300
3239
        menutext(c+16,50+16+16+22,MENUHIGHLIGHT(3),changesmade==0,"APPLY CHANGES");
3301
        menutext(c+16,50+16+16+22,MENUHIGHLIGHT(3),changesmade==0,"APPLY CHANGES");
3240
3302
3241
        menutext(c,50+62+16,MENUHIGHLIGHT(4),PHX(-6),"BRIGHTNESS");
3303
        menutext(c,50+62+16,MENUHIGHLIGHT(4),PHX(-6),"BRIGHTNESS");
3242
        {
3304
        /*        {
3243
            short ss = ud.brightness;
3305
                    short ss = ud.brightness;
3244
            bar(c+171,50+62+16,&ss,8,x==4,MENUHIGHLIGHT(4),PHX(-6));
3306
                    bar(c+171,50+62+16,&ss,8,x==4,MENUHIGHLIGHT(4),PHX(-6));
3245
            if (x==4)
3307
                    if (x==4)
3246
            {
3308
                    {
3247
                ud.brightness = ss;
3309
                        ud.brightness = ss;
3248
                setbrightness(ud.brightness>>2,&g_player[myconnectindex].ps->palette[0],0);
3310
                        setbrightness(ud.brightness>>2,&g_player[myconnectindex].ps->palette[0],0);
3249
            }
3311
                    }
3250
        }
3312
                }
3251
3313
        */
3252
        if (bpp == 8)
3314
        if (bpp == 8)
3253
        {
3315
        {
3254
            menutext(c,50+62+16+16,MENUHIGHLIGHT(5),0,"DETAIL");
3316
            menutext(c,50+62+16+16,MENUHIGHLIGHT(5),0,"DETAIL");
3255
            menutext(c+154,50+62+16+16,MENUHIGHLIGHT(5),0,ud.detail?"HIGH":"LOW");
3317
            menutext(c+154,50+62+16+16,MENUHIGHLIGHT(5),0,ud.detail?"HIGH":"LOW");
3256
            modval(0,1,(int *)&ud.detail,1,probey==5);
3318
            modval(0,1,(int *)&ud.detail,1,probey==5);
Line 3518... Line 3580...
3518
        gametextpal(40,122+9,"MOUSE AIMING TOGGLE",!ud.mouseaiming?MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+1):DISABLEDMENUSHADE,10);
3580
        gametextpal(40,122+9,"MOUSE AIMING TOGGLE",!ud.mouseaiming?MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+1):DISABLEDMENUSHADE,10);
3519
        gametextpal(40,122+9+9,"INVERT MOUSE AIM",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2),10);
3581
        gametextpal(40,122+9+9,"INVERT MOUSE AIM",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2),10);
3520
        gametextpal(40,122+9+9+9,"ADVANCED",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2+1),10);
3582
        gametextpal(40,122+9+9+9,"ADVANCED",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2+1),10);
3521
3583
3522
        {
3584
        {
3523
            short sense;
3585
            int sense;
3524
            sense = CONTROL_GetMouseSensitivity()-1;
3586
            sense = CONTROL_GetMouseSensitivity()-1;
3525
            barsm(248,128,&sense,2,x==(MAXMOUSEBUTTONS-2)*2+2,MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2),PHX(-7));
3587
            barsm(248,128,&sense,2,x==(MAXMOUSEBUTTONS-2)*2+2,MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2),PHX(-7));
3526
            CONTROL_SetMouseSensitivity(sense+1);
3588
            CONTROL_SetMouseSensitivity(sense+1);
3527
        }
3589
        }
3528
3590
Line 3772... Line 3834...
3772
            break;
3834
            break;
3773
        }
3835
        }
3774
3836
3775
        menutext(c,46,MENUHIGHLIGHT(0),0,"X-AXIS SCALE");
3837
        menutext(c,46,MENUHIGHLIGHT(0),0,"X-AXIS SCALE");
3776
        l = (ud.config.MouseAnalogueScale[0]+262144) >> 13;
3838
        l = (ud.config.MouseAnalogueScale[0]+262144) >> 13;
3777
        bar(c+160+40,46,(short *)&l,1,x==0,MENUHIGHLIGHT(0),0);
3839
        bar(c+160+40,46,&l,1,x==0,MENUHIGHLIGHT(0),0);
3778
        l = (l<<13)-262144;
3840
        l = (l<<13)-262144;
3779
        if (l != ud.config.MouseAnalogueScale[0])
3841
        if (l != ud.config.MouseAnalogueScale[0])
3780
        {
3842
        {
3781
            CONTROL_SetAnalogAxisScale(0, l, controldevice_mouse);
3843
            CONTROL_SetAnalogAxisScale(0, l, controldevice_mouse);
3782
            ud.config.MouseAnalogueScale[0] = l;
3844
            ud.config.MouseAnalogueScale[0] = l;
Line 3784... Line 3846...
3784
        Bsprintf(tempbuf,"%s%.2f",l>=0?" ":"",(float)l/65536.0);
3846
        Bsprintf(tempbuf,"%s%.2f",l>=0?" ":"",(float)l/65536.0);
3785
        gametext(c+160-16,46-8,tempbuf,MENUHIGHLIGHT(0),2+8+16);
3847
        gametext(c+160-16,46-8,tempbuf,MENUHIGHLIGHT(0),2+8+16);
3786
3848
3787
        menutext(c,46+16,MENUHIGHLIGHT(1),0,"Y-AXIS SCALE");
3849
        menutext(c,46+16,MENUHIGHLIGHT(1),0,"Y-AXIS SCALE");
3788
        l = (ud.config.MouseAnalogueScale[1]+262144) >> 13;
3850
        l = (ud.config.MouseAnalogueScale[1]+262144) >> 13;
3789
        bar(c+160+40,46+16,(short *)&l,1,x==1,MENUHIGHLIGHT(1),0);
3851
        bar(c+160+40,46+16,&l,1,x==1,MENUHIGHLIGHT(1),0);
3790
        l = (l<<13)-262144;
3852
        l = (l<<13)-262144;
3791
        if (l != ud.config.MouseAnalogueScale[1])
3853
        if (l != ud.config.MouseAnalogueScale[1])
3792
        {
3854
        {
3793
            CONTROL_SetAnalogAxisScale(1, l, controldevice_mouse);
3855
            CONTROL_SetAnalogAxisScale(1, l, controldevice_mouse);
3794
            ud.config.MouseAnalogueScale[1] = l;
3856
            ud.config.MouseAnalogueScale[1] = l;
Line 3796... Line 3858...
3796
        Bsprintf(tempbuf,"%s%.2f",l>=0?" ":"",(float)l/65536.0);
3858
        Bsprintf(tempbuf,"%s%.2f",l>=0?" ":"",(float)l/65536.0);
3797
        gametext(c+160-16,46+16-8,tempbuf,MENUHIGHLIGHT(1),2+8+16);
3859
        gametext(c+160-16,46+16-8,tempbuf,MENUHIGHLIGHT(1),2+8+16);
3798
3860
3799
        menutext(c,46+16+16,MENUHIGHLIGHT(2),0,"DEAD ZONE");
3861
        menutext(c,46+16+16,MENUHIGHLIGHT(2),0,"DEAD ZONE");
3800
        l = ud.config.MouseFilter>>1;
3862
        l = ud.config.MouseFilter>>1;
3801
        bar(c+160+40,46+16+16,(short *)&l,2,x==2,MENUHIGHLIGHT(2),0);
3863
        bar(c+160+40,46+16+16,&l,2,x==2,MENUHIGHLIGHT(2),0);
3802
        ud.config.MouseFilter = l<<1;
3864
        ud.config.MouseFilter = l<<1;
3803
        menutext(c,46+16+16+16+8,/*(MENUHIGHLIGHT(3))+(MENUHIGHLIGHT(4))+(MENUHIGHLIGHT(5))+(MENUHIGHLIGHT(6))-24*/0,0,"DIGITAL AXES ACTIONS");
3865
        menutext(c,46+16+16+16+8,/*(MENUHIGHLIGHT(3))+(MENUHIGHLIGHT(4))+(MENUHIGHLIGHT(5))+(MENUHIGHLIGHT(6))-24*/0,0,"DIGITAL AXES ACTIONS");
3804
3866
3805
        if (ud.config.MouseFilter == 0)
3867
        if (ud.config.MouseFilter == 0)
3806
            Bsprintf(tempbuf," OFF");
3868
            Bsprintf(tempbuf," OFF");
Line 4051... Line 4113...
4051
            Bstrcpy(tempbuf,(char *)getjoyname(0,thispage*2+1));
4113
            Bstrcpy(tempbuf,(char *)getjoyname(0,thispage*2+1));
4052
            menutext(42,32+64,0,0,tempbuf);
4114
            menutext(42,32+64,0,0,tempbuf);
4053
        }
4115
        }
4054
        gametext(76,38,"SCALE",0,2+8+16);
4116
        gametext(76,38,"SCALE",0,2+8+16);
4055
        l = (ud.config.JoystickAnalogueScale[thispage*2]+262144) >> 13;
4117
        l = (ud.config.JoystickAnalogueScale[thispage*2]+262144) >> 13;
4056
        bar(140+56,38+8,(short *)&l,1,x==0,0,0);
4118
        bar(140+56,38+8,&l,1,x==0,0,0);
4057
        l = (l<<13)-262144;
4119
        l = (l<<13)-262144;
4058
        if (l != ud.config.JoystickAnalogueScale[thispage*2])
4120
        if (l != ud.config.JoystickAnalogueScale[thispage*2])
4059
        {
4121
        {
4060
            CONTROL_SetAnalogAxisScale(thispage*2, l, controldevice_joystick);
4122
            CONTROL_SetAnalogAxisScale(thispage*2, l, controldevice_joystick);
4061
            ud.config.JoystickAnalogueScale[thispage*2] = l;
4123
            ud.config.JoystickAnalogueScale[thispage*2] = l;
Line 4092... Line 4154...
4092
4154
4093
        if (twothispage)
4155
        if (twothispage)
4094
        {
4156
        {
4095
            gametext(76,38+64,"SCALE",0,2+8+16);
4157
            gametext(76,38+64,"SCALE",0,2+8+16);
4096
            l = (ud.config.JoystickAnalogueScale[thispage*2+1]+262144) >> 13;
4158
            l = (ud.config.JoystickAnalogueScale[thispage*2+1]+262144) >> 13;
4097
            bar(140+56,38+8+64,(short *)&l,1,x==4,0,0);
4159
            bar(140+56,38+8+64,&l,1,x==4,0,0);
4098
            l = (l<<13)-262144;
4160
            l = (l<<13)-262144;
4099
            if (l != ud.config.JoystickAnalogueScale[thispage*2+1])
4161
            if (l != ud.config.JoystickAnalogueScale[thispage*2+1])
4100
            {
4162
            {
4101
                CONTROL_SetAnalogAxisScale(thispage*2+1, l, controldevice_joystick);
4163
                CONTROL_SetAnalogAxisScale(thispage*2+1, l, controldevice_joystick);
4102
                ud.config.JoystickAnalogueScale[thispage*2+1] = l;
4164
                ud.config.JoystickAnalogueScale[thispage*2+1] = l;
Line 4170... Line 4232...
4170
            break;
4232
            break;
4171
        }
4233
        }
4172
4234
4173
        for (m=first;m<last;m++)
4235
        for (m=first;m<last;m++)
4174
        {
4236
        {
4175
            unsigned short odx,dx,ody,dy;
4237
            int odx,dx,ody,dy;
4176
            Bstrcpy(tempbuf,(char *)getjoyname(0,m));
4238
            Bstrcpy(tempbuf,(char *)getjoyname(0,m));
4177
            menutext(32,48+30*(m-first),0,0,tempbuf);
4239
            menutext(32,48+30*(m-first),0,0,tempbuf);
4178
4240
4179
            gametext(128,48+30*(m-first)-8,"DEAD",0,2+8+16);
4241
            gametext(128,48+30*(m-first)-8,"DEAD",0,2+8+16);
4180
            gametext(128,48+30*(m-first)-8+15,"SATU",0,2+8+16);
4242
            gametext(128,48+30*(m-first)-8+15,"SATU",0,2+8+16);
4181
4243
4182
            dx = odx = min(64,64l*ud.config.JoystickAnalogueDead[m]/10000l);
4244
            dx = odx = min(64,64l*ud.config.JoystickAnalogueDead[m]/10000l);
4183
            dy = ody = min(64,64l*ud.config.JoystickAnalogueSaturate[m]/10000l);
4245
            dy = ody = min(64,64l*ud.config.JoystickAnalogueSaturate[m]/10000l);
4184
4246
4185
            bar(217,48+30*(m-first),(short *)&dx,4,x==((m-first)*2),0,0);
4247
            bar(217,48+30*(m-first),&dx,4,x==((m-first)*2),0,0);
4186
            bar(217,48+30*(m-first)+15,(short *)&dy,4,x==((m-first)*2+1),0,0);
4248
            bar(217,48+30*(m-first)+15,&dy,4,x==((m-first)*2+1),0,0);
4187
4249
4188
            Bsprintf(tempbuf,"%3d%%",100*dx/64);
4250
            Bsprintf(tempbuf,"%3d%%",100*dx/64);
4189
            gametext(217-49,48+30*(m-first)-8,tempbuf,0,2+8+16);
4251
            gametext(217-49,48+30*(m-first)-8,tempbuf,0,2+8+16);
4190
            Bsprintf(tempbuf,"%3d%%",100*dy/64);
4252
            Bsprintf(tempbuf,"%3d%%",100*dy/64);
4191
            gametext(217-49,48+30*(m-first)-8+15,tempbuf,0,2+8+16);
4253
            gametext(217-49,48+30*(m-first)-8+15,tempbuf,0,2+8+16);
Line 4292... Line 4354...
4292
        menutext(c,50,MENUHIGHLIGHT(0),(ud.config.FXDevice<0),"SOUND");
4354
        menutext(c,50,MENUHIGHLIGHT(0),(ud.config.FXDevice<0),"SOUND");
4293
        menutext(c,50+16+16,MENUHIGHLIGHT(2),(ud.config.FXDevice<0)||ud.config.SoundToggle==0,"SOUND VOLUME");
4355
        menutext(c,50+16+16,MENUHIGHLIGHT(2),(ud.config.FXDevice<0)||ud.config.SoundToggle==0,"SOUND VOLUME");
4294
        {
4356
        {
4295
            l = ud.config.FXVolume;
4357
            l = ud.config.FXVolume;
4296
            ud.config.FXVolume >>= 2;
4358
            ud.config.FXVolume >>= 2;
4297
            bar(c+167+40,50+16+16,(short *)&ud.config.FXVolume,4,(ud.config.FXDevice>=0)&&x==2,MENUHIGHLIGHT(2),ud.config.SoundToggle==0||(ud.config.FXDevice<0));
4359
            bar(c+167+40,50+16+16,&ud.config.FXVolume,4,(ud.config.FXDevice>=0)&&x==2,MENUHIGHLIGHT(2),ud.config.SoundToggle==0||(ud.config.FXDevice<0));
4298
            if (l != ud.config.FXVolume)
4360
            if (l != ud.config.FXVolume)
4299
                ud.config.FXVolume <<= 2;
4361
                ud.config.FXVolume <<= 2;
4300
            if (l != ud.config.FXVolume)
4362
            if (l != ud.config.FXVolume)
4301
                FX_SetVolume((short) ud.config.FXVolume);
4363
                FX_SetVolume((short) ud.config.FXVolume);
4302
        }
4364
        }
Line 4304... Line 4366...
4304
        menutext(c,50+16+16+16,MENUHIGHLIGHT(3),(ud.config.MusicDevice<0)||ud.config.MusicToggle==0,"MUSIC VOLUME");
4366
        menutext(c,50+16+16+16,MENUHIGHLIGHT(3),(ud.config.MusicDevice<0)||ud.config.MusicToggle==0,"MUSIC VOLUME");
4305
        {
4367
        {
4306
            l = ud.config.MusicVolume;
4368
            l = ud.config.MusicVolume;
4307
            ud.config.MusicVolume >>= 2;
4369
            ud.config.MusicVolume >>= 2;
4308
            bar(c+167+40,50+16+16+16,
4370
            bar(c+167+40,50+16+16+16,
4309
                (short *)&ud.config.MusicVolume,4,
4371
                &ud.config.MusicVolume,4,
4310
                (ud.config.MusicDevice>=0) && x==3,MENUHIGHLIGHT(3),
4372
                (ud.config.MusicDevice>=0) && x==3,MENUHIGHLIGHT(3),
4311
                ud.config.MusicToggle==0||(ud.config.MusicDevice<0));
4373
                ud.config.MusicToggle==0||(ud.config.MusicDevice<0));
4312
            ud.config.MusicVolume <<= 2;
4374
            ud.config.MusicVolume <<= 2;
4313
            if (l != ud.config.MusicVolume)
4375
            if (l != ud.config.MusicVolume)
4314
                MUSIC_SetVolume((short) ud.config.MusicVolume);
4376
                MUSIC_SetVolume((short) ud.config.MusicVolume);