version 1.3 | | version 1.4 |
---|
| | |
* Routines to configure keyboard, joystick, etc.. | | * Routines to configure keyboard, joystick, etc.. |
* | | * |
* $Log$ | | * $Log$ |
| | * Revision 1.4 1999/11/20 10:05:17 donut |
| | * variable size menu patch from Jan Bobrowski. Variable menu font size support and a bunch of fixes for menus that didn't work quite right, by me (MPM). |
| | * |
* Revision 1.3 1999/10/14 20:33:06 donut | | * Revision 1.3 1999/10/14 20:33:06 donut |
* alpha fixes from Falk Hueffner | | * alpha fixes from Falk Hueffner |
* | | * |
| | |
| | |
| | |
| | |
| | static float scale=1.0; |
void kconfig_sub(kc_item * items,int nitems, char * title) | | void kconfig_sub(kc_item * items,int nitems, char * title) |
{ | | { |
grs_canvas * save_canvas; | | grs_canvas * save_canvas, canvas; |
grs_font * save_font; | | grs_font * save_font; |
int old_keyd_repeat; | | int old_keyd_repeat; |
| | |
| | |
} | | } |
| | |
save_canvas = grd_curcanv; | | save_canvas = grd_curcanv; |
gr_set_current_canvas( NULL ); | | |
| | // menu screen scaling, 10/14/99 Jan Bobrowski - scaling for different font sizes 11/18/99 Matt Mueller |
| | scale=GAME_FONT->ft_h/5.0;//5 is the size of the standard font the menus were designed for. |
| | printf("scale=%f\n",scale); |
| | gr_init_sub_canvas(&canvas, &grd_curscreen->sc_canvas, (SWIDTH - 320*scale)/2, (SHEIGHT - 200*scale)/2, 320*scale, 200*scale); |
| | gr_set_current_canvas(&canvas); |
| | |
save_font = grd_curcanv->cv_font; | | save_font = grd_curcanv->cv_font; |
game_flush_inputs(); | | game_flush_inputs(); |
old_keyd_repeat = keyd_repeat; | | old_keyd_repeat = keyd_repeat; |
keyd_repeat = 1; | | keyd_repeat = 1; |
| | |
nm_draw_background(0,0,grd_curcanv->cv_bitmap.bm_w, grd_curcanv->cv_bitmap.bm_h ); | | nm_draw_background(0,0,grd_curcanv->cv_bitmap.bm_w-1, grd_curcanv->cv_bitmap.bm_h-1 );//args are x,y,x2,y2 NOT x,y,w,h |
| | |
grd_curcanv->cv_font = Gamefonts[GFONT_MEDIUM_3]; | | grd_curcanv->cv_font = Gamefonts[GFONT_MEDIUM_3]; |
| | |
| | |
char * p; | | char * p; |
p = strchr( title, '\n' ); | | p = strchr( title, '\n' ); |
if ( p ) *p = 32; | | if ( p ) *p = 32; |
gr_string( 0x8000, 8, title ); | | gr_string( 0x8000, 8*scale, title ); |
if ( p ) *p = '\n'; | | if ( p ) *p = '\n'; |
} | | } |
| | |
| | |
grd_curcanv->cv_font = GAME_FONT; | | grd_curcanv->cv_font = GAME_FONT; |
gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); | | gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); |
| | |
gr_string( 0x8000, 28, TXT_KCONFIG_STRING_1 ); | | gr_string( 0x8000, 28*scale, TXT_KCONFIG_STRING_1 ); |
gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); | | gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); |
if ( items == kc_keyboard ) | | if ( items == kc_keyboard ) |
{ | | { |
gr_set_fontcolor( BM_XRGB(31,27,6), -1 ); | | gr_set_fontcolor( BM_XRGB(31,27,6), -1 ); |
gr_setcolor( BM_XRGB(31,27,6) ); | | gr_setcolor( BM_XRGB(31,27,6) ); |
| | |
gr_scanline( 98, 106, 42 ); | | gr_scanline( 98*scale, 106*scale, 42*scale ); |
gr_scanline( 120, 128, 42 ); | | gr_scanline( 120*scale, 128*scale, 42*scale ); |
gr_pixel( 98, 43 ); | | gr_pixel( 98*scale, 43*scale ); |
gr_pixel( 98, 44 ); | | gr_pixel( 98*scale, 44*scale ); |
gr_pixel( 128, 43 ); | | gr_pixel( 128*scale, 43*scale ); |
gr_pixel( 128, 44 ); | | gr_pixel( 128*scale, 44*scale ); |
| | |
gr_string( 109, 40, "OR" ); | | gr_string( 109*scale, 40*scale, "OR" ); |
| | |
gr_scanline( 253, 261, 42 ); | | gr_scanline( 253*scale, 261*scale, 42*scale ); |
gr_scanline( 274, 283, 42 ); | | gr_scanline( 274*scale, 283*scale, 42*scale ); |
gr_pixel( 253, 43 ); | | gr_pixel( 253*scale, 43*scale ); |
gr_pixel( 253, 44 ); | | gr_pixel( 253*scale, 44*scale ); |
gr_pixel( 283, 43 ); | | gr_pixel( 283*scale, 43*scale ); |
gr_pixel( 283, 44 ); | | gr_pixel( 283*scale, 44*scale ); |
| | |
gr_string( 264, 40, "OR" ); | | gr_string( 264*scale, 40*scale, "OR" ); |
| | |
} | | } |
else if ( items == kc_joystick ) | | else if ( items == kc_joystick ) |
{ | | { |
gr_set_fontcolor( BM_XRGB(31,27,6), -1 ); | | gr_set_fontcolor( BM_XRGB(31,27,6), -1 ); |
gr_setcolor( BM_XRGB(31,27,6) ); | | gr_setcolor( BM_XRGB(31,27,6) ); |
gr_scanline( 18, 135, 37 ); | | gr_scanline( 18*scale, 135*scale, 37*scale ); |
gr_scanline( 181, 294, 37 ); | | gr_scanline( 181*scale, 294*scale, 37*scale ); |
gr_scanline( 18, 144, 122+10 ); //122 was 119 | | gr_scanline( 18*scale, 144*scale, (122+10)*scale ); //122 was 119 |
gr_scanline( 174, 294, 122+10 ); //122 was 119 | | gr_scanline( 174*scale, 294*scale, (122+10)*scale ); //122 was 119 |
gr_string( 0x8000, 35, TXT_BUTTONS ); | | gr_string( 0x8000, 35*scale, TXT_BUTTONS ); |
gr_string( 0x8000,120+10, TXT_AXES ); //120 was 117 | | gr_string( 0x8000,(120+10)*scale, TXT_AXES ); //120 was 117 |
gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); | | gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); |
gr_string( 81, 137, TXT_AXIS ); | | gr_string( 81*scale, 137*scale, TXT_AXIS ); |
gr_string( 111, 137, TXT_INVERT ); | | gr_string( 111*scale, 137*scale, TXT_INVERT ); |
gr_string( 222, 137, TXT_AXIS ); | | gr_string( 222*scale, 137*scale, TXT_AXIS ); |
gr_string( 252, 137, TXT_INVERT ); | | gr_string( 252*scale, 137*scale, TXT_INVERT ); |
} | | } |
else if ( items == kc_mouse ) | | else if ( items == kc_mouse ) |
{ | | { |
gr_set_fontcolor( BM_XRGB(31,27,6), -1 ); | | gr_set_fontcolor( BM_XRGB(31,27,6), -1 ); |
gr_setcolor( BM_XRGB(31,27,6) ); | | gr_setcolor( BM_XRGB(31,27,6) ); |
gr_scanline( 18, 135, 37 ); | | gr_scanline( 18*scale, 135*scale, 37*scale ); |
gr_scanline( 181, 294, 37 ); | | gr_scanline( 181*scale, 294*scale, 37*scale ); |
gr_scanline( 18, 144, 119+5 ); | | gr_scanline( 18*scale, 144*scale, (119+5)*scale ); |
gr_scanline( 174, 294, 119+5 ); | | gr_scanline( 174*scale, 294*scale, (119+5)*scale ); |
gr_string( 0x8000, 35, TXT_BUTTONS ); | | gr_string( 0x8000, 35*scale, TXT_BUTTONS ); |
gr_string( 0x8000,117+5, TXT_AXES ); | | gr_string( 0x8000,(117+5)*scale, TXT_AXES ); |
gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); | | gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); |
gr_string( 169, 129, TXT_AXIS ); | | gr_string( 169*scale, 129*scale, TXT_AXIS ); |
gr_string( 199, 129, TXT_INVERT ); | | gr_string( 199*scale, 129*scale, TXT_INVERT ); |
} | | } |
else if ( items == kc_d1x ) | | else if ( items == kc_d1x ) |
{ | | { |
gr_set_fontcolor( BM_XRGB(31,27,6), -1 ); | | gr_set_fontcolor( BM_XRGB(31,27,6), -1 ); |
gr_setcolor( BM_XRGB(31,27,6) ); | | gr_setcolor( BM_XRGB(31,27,6) ); |
| | |
gr_string( 94, 40, "KB"); | | gr_string( 94*scale, 40*scale, "KB"); |
gr_string(121, 40, "JOY"); | | gr_string(121*scale, 40*scale, "JOY"); |
} | | } |
| | |
for (i=0; i<nitems; i++ ) | | for (i=0; i<nitems; i++ ) |
| | |
| | |
| | |
if((item->text_num1) < N_TEXT_STRINGS) | | if((item->text_num1) < N_TEXT_STRINGS) |
gr_string( item->x, item->y, Text_string[item->text_num1] ); | | gr_string( item->x*scale, item->y*scale, Text_string[item->text_num1] ); |
else | | else |
{ | | { |
switch(item->text_num1-N_TEXT_STRINGS) | | switch(item->text_num1-N_TEXT_STRINGS) |
{ | | { |
case 0: gr_string( item->x, item->y,"CYC PRIMARY"); break; | | case 0: gr_string( item->x*scale, item->y*scale,"CYC PRIMARY"); break; |
case 1: gr_string( item->x, item->y,"CYC SECONDARY"); break; | | case 1: gr_string( item->x*scale, item->y*scale,"CYC SECONDARY"); break; |
case 2: gr_string( item->x, item->y,"TOGGLE PRIM AUTO"); break; | | case 2: gr_string( item->x*scale, item->y*scale,"TOGGLE PRIM AUTO"); break; |
case 3: gr_string( item->x, item->y,"TOGGLE SEC AUTO"); break; | | case 3: gr_string( item->x*scale, item->y*scale,"TOGGLE SEC AUTO"); break; |
case 4: gr_string( item->x, item->y,"WEAPON 1"); break; | | case 4: gr_string( item->x*scale, item->y*scale,"WEAPON 1"); break; |
case 5: gr_string( item->x, item->y,"WEAPON 2"); break; | | case 5: gr_string( item->x*scale, item->y*scale,"WEAPON 2"); break; |
case 6: gr_string( item->x, item->y,"WEAPON 3"); break; | | case 6: gr_string( item->x*scale, item->y*scale,"WEAPON 3"); break; |
case 7: gr_string( item->x, item->y,"WEAPON 4"); break; | | case 7: gr_string( item->x*scale, item->y*scale,"WEAPON 4"); break; |
case 8: gr_string( item->x, item->y,"WEAPON 5"); break; | | case 8: gr_string( item->x*scale, item->y*scale,"WEAPON 5"); break; |
case 9: gr_string( item->x, item->y,"WEAPON 6"); break; | | case 9: gr_string( item->x*scale, item->y*scale,"WEAPON 6"); break; |
case 10: gr_string( item->x, item->y,"WEAPON 7"); break; | | case 10: gr_string( item->x*scale, item->y*scale,"WEAPON 7"); break; |
case 11: gr_string( item->x, item->y,"WEAPON 8"); break; | | case 11: gr_string( item->x*scale, item->y*scale,"WEAPON 8"); break; |
case 12: gr_string( item->x, item->y,"WEAPON 9"); break; | | case 12: gr_string( item->x*scale, item->y*scale,"WEAPON 9"); break; |
case 13: gr_string( item->x, item->y,"WEAPON 0"); break; | | case 13: gr_string( item->x*scale, item->y*scale,"WEAPON 0"); break; |
} | | } |
} | | } |
| | |
| | |
gr_setcolor( BM_XRGB(21,0,24) ); | | gr_setcolor( BM_XRGB(21,0,24) ); |
else | | else |
gr_setcolor( BM_XRGB(16,0,19) ); | | gr_setcolor( BM_XRGB(16,0,19) ); |
gr_urect( item->w1+item->x, item->y-1, item->w1+item->x+item->w2, item->y+h ); | | gr_urect( (item->w1+item->x)*scale, item->y*scale-1, (item->w1+item->x+item->w2)*scale, item->y*scale+h ); |
| | |
gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); | | gr_set_fontcolor( BM_XRGB(28,28,28), -1 ); |
| | |
x = item->w1+item->x+((item->w2-w)/2); | | x = (item->w1+item->x)*scale+((item->w2*scale-w)/2); |
| | |
gr_string( x, item->y, btext ); | | gr_string( x, item->y*scale, btext ); |
} | | } |
| | |
| | |