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; |