亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? .#gui.c.1.58

?? 著名ARC模擬器源碼,包括多個平臺
?? 58
?? 第 1 頁 / 共 5 頁
字號:
void build_game_avail_list(void){   int ta,oldcount;   build_game_list();   if(GameAvail) free_game_avail_list();   oldcount = my_game_count;   if (!my_game_count) my_game_count = 1; // To avoid the segfault with efence   // when there are no games at all !!!      GameAvail   = (int *) malloc(sizeof(int) * my_game_count);   GameMissing = (int *) malloc(sizeof(int) * my_game_count);   my_game_count=oldcount;      GameAvailCount = 0;   GameMissingCount = 0;   for(ta=0; ta<my_game_count; ta++){      if( game_exists(ta) )         GameAvail[GameAvailCount++] = ta;      else         GameMissing[GameMissingCount++] = ta;   }   ta = rgui_cfg.game_list_mode;   rgui_cfg.game_list_mode = 0;   game_select[GAME_LIST].d1 = raine_cfg.req_game_index;   set_game_list_mode(ta);}void free_game_avail_list(void){   if(GameAvail) free(GameAvail);   GameAvail = NULL;   if(GameMissing) free(GameMissing);   GameMissing = NULL;}// listbox_getter():// Get game names for game select list, three// different listing modes.char *get_long_name(GAME_MAIN *game){#if 0	int len;#endif    return game->long_name;  // The rest of this function was to add a "S" for sound at the end...#if 0  strncpy(name_buffer,game->long_name,BOARD_POS);  len = strlen(name_buffer);  if (len < BOARD_POS) {    memset(&name_buffer[len],32,BOARD_POS-len);    name_buffer[BOARD_POS] = 0;  }  if (game->sound_list) {    strncat(name_buffer,"S",MAX_NAME_BUFFER-BOARD_POS);  }  name_buffer[MAX_NAME_BUFFER-1] = 0;  return name_buffer;#endif}static int get_normal_index(int index){  return index;}static int get_avail_index(int index){  return GameAvail[index];}static int get_missing_index(int index){  return GameMissing[index];}static char* pad(char* s,int len){  int len0=strlen(s);  strcpy(pad_buf,s);  if (len>len0)    memset(&pad_buf[len0],0x20,len-len0);  pad_buf[len] = 0;  return pad_buf;}static char* ipad(int n, int len){  char buff[10];  sprintf(buff,"%d",n);  return pad(buff,len);}static char* game_type_name(int type,int len){  char buff[50];  int ta;  buff[0]=0;  for (ta=0; ta<=7; ta++)    if (type & (1 << ta)){      sprintf(buff+strlen(buff),"%s ",game_type[ta+1]);      break;    }  return pad(buff,len);}static void setup_game_bitmap() {  game_select[GAME_BITMAP].dp   = snapshot;  if (snapshot->w > snapshot->h) { // horizontal    game_select[GAME_BITMAP].x = game_select[0].x+150;    game_select[GAME_BITMAP].y = game_select[0].y+150;    game_select[GAME_BITMAP].w    = (snapshot->w < 130 ? snapshot->w : 130);    game_select[GAME_BITMAP].h    = (snapshot->h < 76 ? snapshot->h : 76);  } else { // vertical    game_select[GAME_BITMAP].x = game_select[0].x + 235;    game_select[GAME_BITMAP].y = game_select[0].y + 105;    game_select[GAME_BITMAP].w    = (snapshot->w < 70 ? snapshot->w : 70);    game_select[GAME_BITMAP].h    = (snapshot->h < 120 ? snapshot->h : 120);  }}void destroy_snapshot(int redraw) {  if (redraw) // stupid allegro...    rectfill(screen, game_select[GAME_BITMAP].x, game_select[GAME_BITMAP].y, game_select[GAME_BITMAP].x+game_select[GAME_BITMAP].w-1, game_select[GAME_BITMAP].y+game_select[GAME_BITMAP].h-1, CGUI_BOX_COL_MIDDLE);  destroy_mapped_bitmap(snapshot,snapshot_cols);  snapshot = NULL;}  char *listbox_getter(int index, int *list_size){   int ta=0,list_length=0;   char tb[2];   char tc[2];   int (*get_index)(int)=get_normal_index;   DIR_INFO *head;   UINT8 *dir;   char str[256];   PALETTE my_palette;      switch(rgui_cfg.game_list_mode){   case 0x00:			// Mode 0: List all games     list_length = my_game_count;     get_index = get_normal_index;     break;   case 0x01:			// Mode 1: List available games     list_length = GameAvailCount;     get_index = get_avail_index;     break;   case 2:     list_length = GameMissingCount;     get_index = get_missing_index;   }      switch(index){   case -1:			// Return List Size     *list_size = list_length;     return NULL;     break;   case -2:			// Act upon List Object Selection     break;   case -4:      if (snapshot)       destroy_snapshot(1);     if ((rgui_cfg.game_list_mode==0 && my_game_count>0) ||	 (rgui_cfg.game_list_mode==1 && GameAvailCount>0) ||	 (rgui_cfg.game_list_mode==2 && GameMissingCount>0)) {       ta = get_index(*list_size);       sprintf(game_select[GAME_DATA].dp,	       pad(game_company_name(my_game_list[ta]->company_id),20));       sprintf(game_select[GAME_DATA+1].dp,	       ipad(my_game_list[ta]->year,20));       if (my_game_list[ta]->sound_list)	 sprintf(game_select[GAME_DATA+2].dp,"Yes  ");       else	 sprintf(game_select[GAME_DATA+2].dp,"No   ");       sprintf(game_select[GAME_DATA+3].dp,	       game_type_name(my_game_list[ta]->flags & 0xff,14));	        sprintf(str,"%ssnapshot" SLASH "%s.pcx", dir_cfg.exe_path,my_game_list[ta]->main_name);       snapshot_cols = 240;              snapshot = load_pcx(str,my_palette);       if (!snapshot) {	 head = my_game_list[ta]->dir_list;	 for (; head; head++) {	   dir = head[0].maindir;	   if( dir ){	     	     if( IS_ROMOF(dir) ){	     	       GAME_MAIN *game_romof;	       game_romof = find_game(dir+1);	     	       sprintf(str,"%ssnapshot" SLASH "%s.pcx", dir_cfg.exe_path,game_romof->main_name);	       snapshot = load_pcx(str,my_palette);	       if (snapshot) break;	     }	   } else	     break;	 }       }     } else {       sprintf(game_select[GAME_DATA].dp,	       pad("---",20));       sprintf(game_select[GAME_DATA+1].dp,	       pad("---",20));       if (my_game_list[ta]->sound_list)	 sprintf(game_select[GAME_DATA+2].dp,"--- ");       else	 sprintf(game_select[GAME_DATA+2].dp,"--- ");       sprintf(game_select[GAME_DATA+3].dp,	       pad("---",14));       snapshot = NULL;            }            if (!snapshot) {       snapshot_cols = 7;       snapshot = make_mapped_bitmap(RaineData[RaineLogo].dat, &ta, RaineData[GUIPalette].dat, snapshot_cols);     } else       set_palette_range(my_palette,0,239,1);          setup_game_bitmap();          // Redraw data fields     for (ta = 0; ta < 4; ta++)       SEND_MESSAGE(&game_select[GAME_DATA+ta], MSG_DRAW, 0);     // Redraw titles     for (ta = -4; ta < 0; ta++)       SEND_MESSAGE(&game_select[GAME_DATA+ta], MSG_DRAW, 0);     SEND_MESSAGE(&game_select[GAME_BITMAP],MSG_DRAW,0);          return NULL;   case -3:			// Act Keyboard Input     tb[0] = *list_size & 0xFF;     tb[1] = 0;     tc[1] = 0;     for(ta=0;ta<list_length;ta++){       tc[0] = my_game_list[get_index(ta)]->long_name[0];       if(!(strcasecmp(tb,tc))){	 game_select[GAME_LIST].d1 = ta;	 if(ta < (game_select[GAME_LIST].d2     )) game_select[GAME_LIST].d2 = ta;	 if(ta > (game_select[GAME_LIST].d2 + GLIST_SIZE)) game_select[GAME_LIST].d2 = ta - GLIST_SIZE+1;	 *list_size = D_USED_CHAR;	 return NULL;       }     }     return NULL;     break;   default:     if((index >= 0)&&(index<list_length))       return get_long_name(my_game_list[get_index(index)]);     else       return NULL;     break;   }   return NULL;}// game_radio_proc():// Radio buttons for game list mode, need to be custom// to incorporate automatic update on button selection.int game_radio_proc(int msg, DIALOG *d, int c){   int i;   int ret=x_raine_radio_proc(msg, d, c);   if((msg==MSG_KEY)||(msg==MSG_CLICK)){      // Get selected List Mode      // ----------------------      if((game_select[5+0].flags)&D_SELECTED) i = 0;      else if((game_select[5+1].flags)&D_SELECTED) i = 1;      else if((game_select[5+2].flags)&D_SELECTED) i = 2;	  else i = 0;      set_game_list_mode(i);      // Refresh the Game List      // ---------------------      SEND_MESSAGE(&game_select[GAME_LIST], MSG_END, 0);      SEND_MESSAGE(&game_select[GAME_LIST], MSG_START, 0);      	scare_mouse();      broadcast_dialog_message(MSG_DRAW, 0);	unscare_mouse();      // Wait for release      // ----------------	while(gui_mouse_b()){	  dialog_oxygen();	}   }   return ret;}static UINT32 current_game_rom_count;static UINT32 current_game_rom_load_count;int load_game_proc(int msg, DIALOG *d, int c){  int oldbpp = 0;	(void)(d);	(void)(c);  switch(msg){      case MSG_IDLE:         mouse_on_real_screen();         dialog_on_real_screen();         LoadDefault();         load_error = 0;         load_debug = malloc(0x10000);         sprintf(load_debug,"Load Game\n---------\n\n");	 if (my_game_list) // normal loading	   current_game = my_game_list[raine_cfg.req_game_index];	 else // uses -g switch	   current_game = game_list[raine_cfg.req_game_index];	 // I have to change the depth BEFORE loading.	 // Probably because of the set_color_mapper in the loading function	 if(wants_switch_res) // && switch_res(current_game->video_info))){	   switch_res(current_game->video_info);#if 0	 // For now I disable automatic depth changing, now that almost	 // every game does support all the depths...	 // Because some people running raine in a 16bpp display might	 // prefer running 8bpp games in 16bpp (like me)	   if (bestbpp) {	     oldbpp = display_cfg.bpp;	     display_cfg.bpp = bestbpp;	   }#endif	          /*         count roms         */         {            ROM_INFO *rom_list;            current_game_rom_count = 0;            current_game_rom_load_count = 0;            rom_list = current_game->rom_list;            while(rom_list->name)            {               current_game_rom_count ++;               rom_list ++;            }            if(!current_game_rom_count)               current_game_rom_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();         }         load_game_rom_info();	 	 if (!(load_error & LOAD_FATAL_ERROR)) {	   current_game->load_game();	   // bpp must be changed in the last moment !!!	   if (oldbpp)	     display_cfg.bpp = oldbpp;	   	   init_inputs();	   init_dsw();	   init_romsw();	   init_sound_list();	   hs_open();	 }         dialog_on_buffer_screen();         mouse_on_buffer_screen();         loading_dialog[2].d1 = current_game_rom_count;         loading_dialog[2].d2 = current_game_rom_count;	   scare_mouse();         SEND_MESSAGE(&loading_dialog[2], MSG_DRAW,  0);	   unscare_mouse();         dialog_oxygen();         return D_EXIT;      break;      default:         return D_O_K;      break;   }}void do_load_game(void){   BITMAP *load_mouse;   int ta,size;   /*   satisfy the request   */   raine_cfg.req_load_game = 0;   /*   don't reload if the game is already in memory   */   if(my_game_list && current_game == my_game_list[raine_cfg.req_game_index])      return;   /*   close down the current game (if there is one)   */   if(current_game){      save_game_config();      hs_close();      current_game->clear_game();      ClearDefault();      current_game = NULL;   }      // Do the load (via a loading window)     load_mouse = make_mapped_bitmap_2(RaineData[mouse_busy].dat, &ta, RaineData[mouse_busy_pal].dat, 16);      set_mouse_sprite(load_mouse);      loading_dialog[2].d1 = 0;      loading_dialog[2].d2 = 1;      FadeGUI();            raine_do_dialog(loading_dialog,-1);      set_mouse_sprite(RaineData[Mouse].dat);      destroy_mapped_bitmap(load_mouse, 16);      // Check if the load was successful, if ok, load game config, if bad clear the mess      switch(load_error&3){      case LOAD_WARNING:			// WARNING - IT MIGHT RUN OK         FadeGUI();	 strcat(load_debug,"\n\nThe game might not run correctly.");         load_problem[2].dp = load_debug;         raine_do_dialog(load_problem,-1);      case 0x00:				// SUCCESS	size = GetMemoryPoolSize()/1024; // Minimum Kb	memcpy(&prev_display_cfg, &display_cfg, sizeof(DISPLAY_CFG));	load_game_config();	reset_game_hardware();		{	  char name[40];	  	  strncpy(name,current_game->long_name,39);	  name[39] = 0;	  	  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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷一区二区三区| 亚洲国产精品传媒在线观看| 在线看国产一区二区| 国产69精品久久久久777| 中文字幕在线一区免费| 91福利小视频| 色乱码一区二区三区88| 91香蕉视频mp4| 麻豆成人av在线| 日韩理论片在线| 日韩码欧中文字| 亚洲人成在线观看一区二区| 欧美激情一区在线| 国产精品国产三级国产| 91麻豆精品国产自产在线| 欧美另类videos死尸| 欧美亚洲一区二区在线观看| 欧美性受xxxx黑人xyx性爽| 欧美在线不卡一区| 欧美三区在线观看| 日韩理论片一区二区| 亚洲视频在线一区| 日韩欧美一区在线| 久久久精品国产99久久精品芒果 | 99re热视频精品| 99久久综合狠狠综合久久| 99热精品国产| 91九色02白丝porn| 日韩午夜激情电影| 国产情人综合久久777777| 精品少妇一区二区三区免费观看| 91农村精品一区二区在线| 在线观看亚洲a| 日韩欧美国产综合| 51久久夜色精品国产麻豆| 精品少妇一区二区三区日产乱码| 欧美日韩免费观看一区三区| 欧美一区二区三区在| 久久久精品国产免大香伊| 欧美r级在线观看| 中文文精品字幕一区二区| 夜夜嗨av一区二区三区中文字幕| 1000部国产精品成人观看| 日韩制服丝袜先锋影音| 国产大陆a不卡| 欧美日精品一区视频| wwww国产精品欧美| 亚洲一区二区在线免费观看视频| 亚洲色图视频网| 久久电影网电视剧免费观看| 成年人午夜久久久| 日韩欧美综合一区| 亚洲天堂福利av| 久久99久久99小草精品免视看| 久久99国产精品久久99| 91免费在线视频观看| 精品国产乱码久久久久久久| 亚洲男人都懂的| 国产精品99久久久久久有的能看 | 99久久精品国产精品久久| 欧美一区二区网站| 日韩三级在线观看| 亚洲欧洲制服丝袜| 亚洲综合视频在线| 成人在线一区二区三区| 成人精品鲁一区一区二区| 欧美日韩美少妇| 亚洲人成精品久久久久久 | 一区二区不卡在线播放| 国产麻豆精品theporn| 欧美日韩国产高清一区二区三区 | 日本美女一区二区三区| 激情伊人五月天久久综合| 国产成人a级片| 日韩欧美一区二区免费| 一区二区三区高清在线| 免费看欧美女人艹b| 色呦呦网站一区| 国产嫩草影院久久久久| 久久国产日韩欧美精品| 欧美高清一级片在线| 亚洲人快播电影网| a4yy欧美一区二区三区| 久久影院视频免费| 麻豆91精品91久久久的内涵| 国产在线日韩欧美| 91麻豆精品国产| 国产欧美精品一区aⅴ影院| 麻豆成人久久精品二区三区小说| 国产91丝袜在线18| 26uuu国产在线精品一区二区| 亚洲欧美一区二区视频| 丁香婷婷综合五月| 国产亚洲美州欧州综合国| 激情综合色综合久久综合| 日韩视频一区在线观看| 蜜臀久久久久久久| 91精品欧美综合在线观看最新| 久久久久久夜精品精品免费| 久草在线在线精品观看| 色综合久久中文字幕综合网| 1024成人网色www| 91麻豆免费看片| 亚洲青青青在线视频| 一本大道久久a久久精品综合| 日韩欧美一二三区| 久久精品国产在热久久| 日韩欧美国产高清| 亚洲美女在线一区| 欧美羞羞免费网站| 日韩国产精品久久久久久亚洲| 成人精品视频网站| 综合久久久久久| 精品夜夜嗨av一区二区三区| 精品久久久久久无| 国产精品一区二区无线| 欧美日韩国产一二三| 日韩有码一区二区三区| 91黄色小视频| 亚欧色一区w666天堂| 欧美一区二区三区在线观看| 理论电影国产精品| 国产日产欧美一区| 另类小说图片综合网| 久久亚洲影视婷婷| 9色porny自拍视频一区二区| 亚洲精选在线视频| 91精品国产色综合久久ai换脸| 亚洲精品国产一区二区精华液 | 欧美丰满一区二区免费视频| 日本vs亚洲vs韩国一区三区| 久久久三级国产网站| jlzzjlzz亚洲女人18| 亚洲一二三四区| 日韩精品一区二区三区视频播放 | 国产做a爰片久久毛片| 国产农村妇女精品| 色婷婷综合久久久中文字幕| 中文幕一区二区三区久久蜜桃| 国产综合久久久久久鬼色| 欧美一区二区美女| 国产福利91精品| 久久久久久一级片| 在线看一区二区| 精品一区二区免费| 欧美xfplay| 色婷婷综合久色| 久久成人久久爱| 久久综合av免费| 国产乱对白刺激视频不卡| 国产精品丝袜在线| 91精品国产综合久久久久| 国产99精品视频| 日韩不卡一区二区三区| 国产精品嫩草影院av蜜臀| 67194成人在线观看| 成人美女视频在线看| 日韩和欧美一区二区| 中文字幕在线不卡| 精品少妇一区二区三区免费观看| 九九在线精品视频| 一区二区三区电影在线播| 欧美亚洲另类激情小说| 国产91精品露脸国语对白| 石原莉奈在线亚洲三区| 日韩一区二区精品| 91麻豆免费在线观看| 国产久卡久卡久卡久卡视频精品| 久久九九国产精品| 欧美一区二区成人6969| 色婷婷激情一区二区三区| 国产精品亚洲一区二区三区妖精| 国产精品久久久久久户外露出 | 欧美在线一区二区| 风间由美性色一区二区三区| 国产精品久久久久婷婷二区次| 91色综合久久久久婷婷| 国产毛片精品一区| 蜜桃久久av一区| 亚洲成人精品影院| 亚洲婷婷综合色高清在线| 欧美日韩一区视频| 91欧美激情一区二区三区成人| 亚洲chinese男男1069| 亚洲色图视频网| 日本一区二区高清| 欧美性大战久久久久久久 | 久草在线在线精品观看| 午夜精品在线看| 久久久久久99精品| 4438成人网| 欧美狂野另类xxxxoooo| 欧美丝袜自拍制服另类| 色综合久久久久网| 成人黄色777网| 日本少妇一区二区| 三级在线观看一区二区 | 亚洲同性gay激情无套| 在线观看91av| 欧美老女人第四色|