| version 1.13 | | version 1.14 |
|---|
| | |
| void change_res() | | void change_res() |
| { | | { |
| //edited 05/27/99 Matt Mueller - ingame fullscreen changing | | //edited 05/27/99 Matt Mueller - ingame fullscreen changing |
| newmenu_item m[8]; | | newmenu_item m[11]; |
| u_int32_t modes[8]; | | u_int32_t modes[11]; |
| int i=0, mc=0; | | int i=0, mc=0, num_presets=0; |
| | | char customres[16]; |
| #ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE | | #ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE |
| int fullscreenc; | | int fullscreenc; |
| #endif | | #endif |
| | |
| m[mc].type = NM_TYPE_RADIO; m[mc].text = "800x600"; m[mc].value=(Game_screen_mode==SM(800,600)); m[mc].group=0; modes[mc] = SM(800,600); mc++; | | m[mc].type = NM_TYPE_RADIO; m[mc].text = "800x600"; m[mc].value=(Game_screen_mode==SM(800,600)); m[mc].group=0; modes[mc] = SM(800,600); mc++; |
| m[mc].type = NM_TYPE_RADIO; m[mc].text = "1024x768"; m[mc].value=(Game_screen_mode==SM(1024,768)); m[mc].group=0; modes[mc] = SM(1024,768); mc++; | | m[mc].type = NM_TYPE_RADIO; m[mc].text = "1024x768"; m[mc].value=(Game_screen_mode==SM(1024,768)); m[mc].group=0; modes[mc] = SM(1024,768); mc++; |
| //end section - OE | | //end section - OE |
| | | num_presets = mc; |
| | | for (i=0; i<mc; i++) |
| | | if (m[mc].value) |
| | | break; |
| | | m[mc].type = NM_TYPE_RADIO; m[mc].text = "custom:"; m[mc].value=(i==mc); m[mc].group=0; modes[mc] = 0; mc++; |
| | | sprintf(customres, "%ix%i", SM_W(Game_screen_mode), SM_H(Game_screen_mode)); |
| | | m[mc].type = NM_TYPE_INPUT; m[mc].text = customres; m[mc].text_len=11; modes[mc] = 0; mc++; |
| | | |
| // m[mc].type = NM_TYPE_CHECK; m[mc].text = "No Doublebuffer"; m[mc].value = use_double_buffer; | | // m[mc].type = NM_TYPE_CHECK; m[mc].text = "No Doublebuffer"; m[mc].value = use_double_buffer; |
| | | |
| | |
| //end addition -MM | | //end addition -MM |
| | | |
| | | |
| i=newmenu_do1( NULL, "Screen Resolution", mc, m, &change_res_poll, i); | | i=newmenu_do1( NULL, "Screen Resolution", mc, m, &change_res_poll, 0); |
| | | |
| //added 05/27/99 Matt Mueller - ingame fullscreen changing | | //added 05/27/99 Matt Mueller - ingame fullscreen changing |
| #ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE | | #ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE |
| | |
| #endif | | #endif |
| //end addition -MM | | //end addition -MM |
| | | |
| for(i=0;(m[i].value==0)&&(i<6);i++); | | for(i=0;(m[i].value==0)&&(i<num_presets);i++); |
| | | if (modes[i]==0){ |
| | | char *h=strchr(customres, 'x'); |
| | | if (!h) |
| | | return; |
| | | screen_mode = SM(atoi(customres), atoi(h+1)); |
| | | }else{ |
| | | screen_mode = modes[i]; |
| | | } |
| | | |
| | | screen_width = SM_W(screen_mode); |
| | | screen_height = SM_H(screen_mode); |
| | | if (screen_height<=0 || screen_width<=0) |
| | | return; |
| | | |
| switch(screen_mode = modes[i]) | | switch(screen_mode) |
| { | | { |
| case SM(320,100)://19: | | case SM(320,100)://19: |
| screen_width = 320; | | |
| screen_height = 100; | | |
| screen_compatible = 0; | | screen_compatible = 0; |
| use_double_buffer = 0; | | use_double_buffer = 0; |
| break; | | break; |
| case SM(320,200)://SM_320x200C: | | case SM(320,200)://SM_320x200C: |
| screen_width = 320; | | |
| screen_height = 200; | | |
| screen_compatible = 1; | | screen_compatible = 1; |
| use_double_buffer = 0; | | use_double_buffer = 0; |
| break; | | break; |
| case SM(320,240)://SM_320x240U: | | default: |
| screen_width = 320; | | |
| screen_height = 240; | | |
| screen_compatible = 0; | | |
| use_double_buffer = 1; | | |
| break; | | |
| case SM(320,400)://SM_320x400U: | | |
| screen_width = 320; | | |
| screen_height = 400; | | |
| screen_compatible = 0; | | |
| use_double_buffer = 1; | | |
| break; | | |
| case SM(640,400)://SM_640x400V: | | |
| screen_width = 640; | | |
| screen_height = 400; | | |
| screen_compatible = 0; | | |
| use_double_buffer = 1; | | |
| break; | | |
| case SM(640,480)://SM_640x480V: | | |
| screen_width = 640; | | |
| screen_height = 480; | | |
| screen_compatible = 0; | | |
| use_double_buffer = 1; | | |
| break; | | |
| case SM(800,600)://SM_800x600V: | | |
| screen_width = 800; | | |
| screen_height = 600; | | |
| screen_compatible = 0; | | |
| use_double_buffer = 1; | | |
| break; | | |
| case SM(1024,768)://SM_1024x768V: | | |
| screen_width = 1024; | | |
| screen_height = 768; | | |
| screen_compatible = 0; | | screen_compatible = 0; |
| use_double_buffer = 1; | | use_double_buffer = 1; |
| break; | | break; |