?? gui.c
字號:
sprintf(gamename, "%s %s (%dMb)", raine_translate_text("Game:"), name,size/1024); } if (current_game_has_hiscores()) sprintf(hiscores,"[Hiscores]"); else *hiscores=0; if (CheatCount) sprintf(cheats,"[Cheats]"); else *cheats = 0;#if 0 if (bestbpp > 0 && bestbpp <=32) { WantScreen = 1; display_cfg.bpp = bestbpp; bestbpp = 0; }#endif if (bestw && besth) { //display_cfg.screen_type = bestmode; display_cfg.screen_x = bestw; display_cfg.screen_y = besth; display_cfg.scanlines = display_cfg.eagle_fx = 0; WantScreen = 1; bestw = besth = 0; } if (raine_cfg.save_game_screen_settings) WantScreen=1; break; case LOAD_FATAL_ERROR: // FATAL ERROR - REMOVE GAME case LOAD_FATAL_ERROR|LOAD_WARNING: FadeGUI(); load_problem[2].dp = load_debug; raine_do_dialog(load_problem,-1); current_game->clear_game(); ClearDefault(); current_game = NULL; sprintf(gamename,"%s %s", raine_translate_text("Game:"), raine_translate_text("<No Game Loaded>")); break; } free(load_debug);}void load_progress(void){ if(current_game_rom_load_count < current_game_rom_count) current_game_rom_load_count ++; loading_dialog[2].d1 = current_game_rom_load_count; loading_dialog[2].d2 = current_game_rom_count; scare_mouse(); SEND_MESSAGE(&loading_dialog[2], MSG_DRAW, 0); unscare_mouse();}// game_select_proc():// Display then process Game Select dialogint game_select_opts_proc(int msg, DIALOG *d, int c){ int ret=x_raine_button_proc(msg, d, c); if(ret==D_CLOSE){ Unselect_Button(d); FadeGUI(); // sound game_select_opts[2].flags= game_select_opts[3].flags= game_select_opts[4].flags= // status game_select_opts[6].flags = game_select_opts[7].flags = game_select_opts[8].flags = // year game_select_opts[10].flags = game_select_opts[11].flags = game_select_opts[12].flags =0; if (ssound==0) game_select_opts[2].flags = D_SELECTED; else game_select_opts[2+ssound].flags=D_SELECTED; game_select_opts[6+sstatus].flags = D_SELECTED; game_select_opts[10+syear].flags = D_SELECTED; raine_centre_dialog(game_select_opts); raine_do_dialog(game_select_opts,-1); SEND_MESSAGE(&game_select[GAME_LIST], MSG_END, 0); SEND_MESSAGE(&game_select[GAME_LIST], MSG_START, 0); SEND_MESSAGE(&game_select[GAME_LIST], MSG_DRAW, 0); SEND_MESSAGE(&game_select[9], MSG_DRAW, 0); // Update infos listbox_getter(-4,&game_select[GAME_LIST].d1); return D_REDRAW; } return ret; }int game_select_proc(int msg, DIALOG *d, int c){ int ta; int ret=x_raine_button_proc(msg, d, c); if(ret==D_CLOSE){ Unselect_Button(d); FadeGUI(); /* set radio buttons */ // I want these outside the main dlg, but they can be initialized here...#ifdef RAINE_WIN32 if (display_cfg.screen_type == GFX_DIRECTX_WIN || display_cfg.screen_type == GFX_GDI) wants_switch_res = 1;#endif if(rgui_cfg.game_list_mode>2) rgui_cfg.game_list_mode = 2; if(ssound>2) ssound = 2; if (sstatus>2) sstatus = 2; if (wants_switch_res>1) wants_switch_res = 1; if (syear >2) syear = 2; game_select[5+0].flags= game_select[5+1].flags= game_select[5+2].flags= // switch res game_select[GAME_SWITCH_RES+1].flags = game_select[GAME_SWITCH_RES+2].flags = 0; game_select[GAME_SWITCH_RES+2-wants_switch_res].flags = D_SELECTED; game_select[5+rgui_cfg.game_list_mode].flags = D_SELECTED; build_game_avail_list(); // Do the Dialog // ------------- listbox_active = 0; listbox_getter(-4,&game_select[GAME_LIST].d1); listbox_active = 1; ret=raine_do_dialog(game_select,-1); listbox_active = 0; destroy_snapshot(0); set_palette(gui_pal); // Load game (if user didn't click cancel) // --------------------------------------- if((ret!=3)&&(ret!=-1)){ switch(rgui_cfg.game_list_mode){ case 0x00: ta = game_select[GAME_LIST].d1; if((ta >= 0)&&(ta < my_game_count)){ raine_cfg.req_game_index = ta; do_load_game(); } break; case 0x01: ta = game_select[GAME_LIST].d1; if((ta >= 0)&&((UINT32)ta < GameAvailCount)){ raine_cfg.req_game_index = GameAvail[ta]; do_load_game(); } break; case 0x02: ta = game_select[GAME_LIST].d1; if((ta >= 0)&&((UINT32)ta < GameMissingCount)){ raine_cfg.req_game_index = GameMissing[ta]; do_load_game(); } break; } } free_game_avail_list(); if(WantScreen) return D_EXIT; else return D_REDRAW; } return ret;}int romdir_edit_proc(int msg, DIALOG *d, int c){ int i; int ret=x_raine_button_proc(msg, d, c); if(ret==D_CLOSE){ Unselect_Button(d); FadeGUI(); sprintf(romedit[0],"%s",dir_cfg.rom_dir[0]); sprintf(romedit[1],"%s",dir_cfg.rom_dir[1]); sprintf(romedit[2],"%s",dir_cfg.rom_dir[2]); sprintf(romedit[3],"%s",dir_cfg.rom_dir[3]); ret=raine_do_dialog(romdir_edit_dialog,-1); if(ret==1){ sprintf(dir_cfg.rom_dir[0],"%s",romedit[0]); sprintf(dir_cfg.rom_dir[1],"%s",romedit[1]); sprintf(dir_cfg.rom_dir[2],"%s",romedit[2]); sprintf(dir_cfg.rom_dir[3],"%s",romedit[3]); for(i = 0; i < 4; i ++){ if(dir_cfg.rom_dir[i][0]){ put_backslash(dir_cfg.rom_dir[i]); strlwr(dir_cfg.rom_dir[i]); } } build_game_avail_list(); scare_mouse(); SEND_MESSAGE(&game_select[GAME_LIST], MSG_START, 0); SEND_MESSAGE(&game_select[GAME_LIST], MSG_DRAW, 0); SEND_MESSAGE(&game_select[9], MSG_DRAW, 0); unscare_mouse(); dialog_oxygen(); } return D_REDRAW; } return ret;}int dir_edit_proc(int msg, DIALOG *d, int c){ char dir_path[256]; char *ta; int ret; ret = x_raine_button_proc(msg, d, c); if(ret==D_CLOSE){ Unselect_Button(d); FadeGUI(); sprintf(dir_path,"%s",romedit[d->d1]); if(raine_file_select("Select directory", dir_path, NULL)){ // Cut any filename ta = get_filename(dir_path); if(ta) ta[0] = 0; sprintf(romedit[d->d1],"%s",dir_path); } return D_REDRAW; } return ret;}/******************************************************************************/int auto_edit_proc(int msg, DIALOG *d, int c){ int ret = x_raine_button_proc(msg, d, c); if(ret==D_CLOSE){ Unselect_Button(d); if(InputCount){ InputList[auto_select[1].d1].auto_rate ++; if(InputList[auto_select[1].d1].auto_rate>5) InputList[auto_select[1].d1].auto_rate = 0; } ret = D_REDRAW; } return ret;}static char *AutoName(char rate){ switch(rate){ case 0: return "Off"; case 1: return "1 (30 fps)"; case 2: return "2 (15 fps)"; case 3: return "3 (10 fps)"; case 4: return "4 (07 fps)"; case 5: return "5 (06 fps)"; default: return "Off"; }}char *autolist_getter(int index, int *list_size){ static char S[128]; if(InputCount){ switch(index){ case -1: // Return List Size *list_size=InputCount; return NULL; break; case -2: // Act upon List Object Selection if(InputCount){ InputList[auto_select[1].d1].auto_rate ++; if(InputList[auto_select[1].d1].auto_rate>5) InputList[auto_select[1].d1].auto_rate = 0; } *list_size=D_REDRAW; return NULL; break; case -3: // Act Keyboard Input return NULL; break; default: if((index >= 0)&&(index < InputCount)){ sprintf(S,"%-21s %s",InputList[index].InputName, AutoName(InputList[index].auto_rate)); return S; } else return NULL; break; } } else{ if(index==-1){ *list_size=1; return NULL; } else{ if(index==0){ return(raine_translate_text("<No Inputs Mapped>")); } else{ return NULL; } } }}int auto_select_proc(int msg, DIALOG *d, int c){ int ret = x_raine_button_proc(msg,d,c); if(ret==D_CLOSE){ Unselect_Button(d); FadeGUI(); ret=0; while((ret!=2)&&(ret!=-1)){ ret=raine_do_dialog(auto_select,-1); if((ret!=2)&&(ret!=-1)){ if(InputCount){ InputList[auto_select[1].d1].auto_rate ++; if(InputList[auto_select[1].d1].auto_rate>5) InputList[auto_select[1].d1].auto_rate = 0; } } } ret = D_REDRAW; } return ret;}/******************************************************************************/typedef struct GUI_JOY{ char *name; // Mode name/string UINT32 id; // ID_ Value for this mode} GUI_JOY;static GUI_JOY joystick_data[] ={ { "Autodetect", JOY_TYPE_AUTODETECT, }, { "None", JOY_TYPE_NONE, },#ifdef JOYSTICK_DRIVER_STANDARD { "Joystick (2 buttons)", JOY_TYPE_STANDARD, }, // Standard { "Joystick (4 buttons)", JOY_TYPE_4BUTTON, }, { "Joystick (6 buttons)", JOY_TYPE_6BUTTON, }, { "Joystick (8 buttons)", JOY_TYPE_8BUTTON, }, { "Joystick (2 pads)", JOY_TYPE_2PADS, }, { "Flightstick Pro", JOY_TYPE_FSPRO, }, { "Wingman Extreme", JOY_TYPE_WINGEX, },#endif#ifdef JOYSTICK_DRIVER_WINGWARRIOR { "Wingman Warrior", JOY_TYPE_WINGWARRIOR, }, // Wingman Warrior#endif#ifdef JOYSTICK_DRIVER_GAMEPAD_PRO { "Gamepad Pro", JOY_TYPE_GAMEPAD_PRO, }, // Game Pad Pro#endif#ifdef JOYSTICK_DRIVER_GRIP { "Grip", JOY_TYPE_GRIP, }, // Grip { "Grip 4 way", JOY_TYPE_GRIP4, },#endif#ifdef JOYSTICK_DRIVER_SIDEWINDER { "Sidewinder", JOY_TYPE_SIDEWINDER, }, // Sidewinder#endif#ifdef JOY_TYPE_SIDEWINDER_AG { "Sidewinder Aggressive", JOY_TYPE_SIDEWINDER_AG, }, // Sidewinder Aggressive#endif#ifdef JOYSTICK_DRIVER_SNESPAD { "SNES (port 1)", JOY_TYPE_SNESPAD_LPT1, }, // SNES { "SNES (port 2)", JOY_TYPE_SNESPAD_LPT2, }, { "SNES (port 3)", JOY_TYPE_SNESPAD_LPT3, },#endif#ifdef JOYSTICK_DRIVER_PSXPAD { "PSX (port 1)", JOY_TYPE_PSXPAD_LPT1, }, // PSX { "PSX (port 2)", JOY_TYPE_PSXPAD_LPT2, }, { "PSX (port 3)", JOY_TYPE_PSXPAD_LPT3, },#endif#ifdef JOYSTICK_DRIVER_N64PAD { "N64 (port 1)", JOY_TYPE_N64PAD_LPT1, }, // N64 { "N64 (port 2)", JOY_TYPE_N64PAD_LPT2, }, { "N64 (port 3)", JOY_TYPE_N64PAD_LPT3, },#endif#ifdef JOYSTICK_DRIVER_DB9 { "DB9 (port 1)", JOY_TYPE_DB9_LPT1, }, // DB9 { "DB9 (port 2)", JOY_TYPE_DB9_LPT2, }, { "DB9 (port 3)", JOY_TYPE_DB9_LPT3, },#endif#ifdef JOYSTICK_DRIVER_TURBOGRAFX { "Turbografx (port 1)", JOY_TYPE_TURBOGRAFX_LPT1, }, // TURBOGFX { "Turbografx (port 2)", JOY_TYPE_TURBOGRAFX_LPT2, }, { "Turbografx (port 3)", JOY_TYPE_TURBOGRAFX_LPT3, },#endif#ifdef JOYSTICK_DRIVER_IFSEGA_ISA { "SEGA (isa)", JOY_TYPE_IFSEGA_ISA, }, // SEGA ISA#endif#ifdef JOYSTICK_DRIVER_IFSEGA_PCI { "SEGA (pci)", JOY_TYPE_IFSEGA_PCI, }, // SEGA PCI#endif#ifdef JOYSTICK_DRIVER_IFSEGA_PCI_FAST { "SEGA (pci fast)", JOY_TYPE_IFSEGA_PCI_FAST, }, // SEGA PCI FAST#endif#ifdef JOYSTICK_DRIVER_WIN32 { "Win32 Joystick Driver", JOY_TYPE_WIN32, }, // Win32/DirectX#endif};/* gfx_card_getter: * Listbox data getter routine for the graphics card list. */char *joylist_getter(int index, int *list_size){ switch(index){ case -1: // Return List Size if(list_size){ *list_size = (sizeof(joystick_data) / sizeof(GUI_JOY)); } return NULL; break; case -2: FadeGUI(); DoJoyEdit(); *list_size=D_REDRAW; return NULL; break; case -3: // Act Keyboard Input return NULL; break; default: if((index >= 0)&&(index < (sizeof(joystick_data) / sizeof(GUI_JOY)))) return joystick_data[index].name; else return NULL; break; }}// joy_name():// Get card name for card IDchar *joy_name(int index){ int ta,tb; tb = (sizeof(joystick_data) / sizeof(GUI_JOY)); for(ta=0;ta<tb;ta++){ if(joystick_data[ta].id == (UINT32)index) return joystick_data[ta].name; } return joystick_data[1].name; // None}int joystick_number(int index){ int ta,tb; tb = (sizeof(joystick_data) / sizeof(GUI_JOY)); for(ta=0;ta<tb;ta++){ if(joystick_data[ta].id == (UINT32)index) return ta; } return 1; // None}// joystick_id():
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -