⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tournament.c

📁 打魔兽战网的都知道他是什么
💻 C
📖 第 1 页 / 共 2 页
字号:
		if (!tag_check_client((ctag = tag_case_str_to_uint(clienttag)))) {		    continue;		}		mname = xstrdup(mapname);				anongame_add_tournament_map(ctag, mname);		eventlog(eventlog_level_trace,__FUNCTION__,"added tournament map \"%s\" for %s",mname,clienttag);		xfree(mname);	    }	} else {	    variable = buff;	    pointer = strchr(variable,'=');	    for(pointer--;pointer[0]==' ' || pointer[0]=='\t';pointer--);	    pointer[1]='\0';	    pointer++;	    pointer++;	    pointer = strchr(pointer,'=');	    pointer++;	    	    if (strcmp(variable,"start_preliminary") == 0) {	        pointer = strchr(pointer,'\"');	        pointer++;	        value = pointer;	        pointer = strchr(pointer,'\"');	        pointer[0]='\0';	        	        sscanf(value,format,&mon,&day,&year,&hour,&min,&sec);		tournament_check_date(&mon,&day,&year,&hour,&min,&sec,variable);	        	        timestamp->tm_mon	= mon-1;	        timestamp->tm_mday	= day;	        timestamp->tm_year	= year-1900;	        timestamp->tm_hour	= hour;	        timestamp->tm_min	= min;	        timestamp->tm_sec	= sec;	        timestamp->tm_isdst	= -1;	        	        tournament_info->start_preliminary = mktime(timestamp);	    }	    else if (strcmp(variable,"end_signup") == 0) {	        pointer = strchr(pointer,'\"');	        pointer++;	        value = pointer;	        pointer = strchr(pointer,'\"');	        pointer[0]='\0';	        	        sscanf(value,format,&mon,&day,&year,&hour,&min,&sec);	        		tournament_check_date(&mon,&day,&year,&hour,&min,&sec,variable);	        timestamp->tm_mon	= mon-1;	        timestamp->tm_mday	= day;	        timestamp->tm_year	= year-1900;	        timestamp->tm_hour	= hour;	        timestamp->tm_min	= min;	        timestamp->tm_sec	= sec;	        timestamp->tm_isdst	= -1;				tournament_info->end_signup = mktime(timestamp);	    }	    else if (strcmp(variable,"end_preliminary") == 0) {	        pointer = strchr(pointer,'\"');	        pointer++;	        value = pointer;	        pointer = strchr(pointer,'\"');	        pointer[0]='\0';	        	        sscanf(value,format,&mon,&day,&year,&hour,&min,&sec);	        		tournament_check_date(&mon,&day,&year,&hour,&min,&sec,variable);	        timestamp->tm_mon	= mon-1;	        timestamp->tm_mday	= day;	        timestamp->tm_year	= year-1900;	        timestamp->tm_hour	= hour;	        timestamp->tm_min	= min;	        timestamp->tm_sec	= sec;	        timestamp->tm_isdst	= -1;    	        tournament_info->end_preliminary = mktime(timestamp);	    }	    else if (strcmp(variable,"start_round_1") == 0) {		pointer = strchr(pointer,'\"');	        pointer++;	        value = pointer;	        pointer = strchr(pointer,'\"');	        pointer[0]='\0';	        	        sscanf(value,format,&mon,&day,&year,&hour,&min,&sec);	        		tournament_check_date(&mon,&day,&year,&hour,&min,&sec,variable);	        timestamp->tm_mon	= mon-1;	        timestamp->tm_mday	= day;	        timestamp->tm_year	= year-1900;	        timestamp->tm_hour	= hour;	        timestamp->tm_min	= min;	        timestamp->tm_sec	= sec;	        timestamp->tm_isdst	= -1;    			        tournament_info->start_round_1 = mktime(timestamp);	    }	    else if (strcmp(variable,"start_round_2") == 0) {	        pointer = strchr(pointer,'\"');	        pointer++;	        value = pointer;	        pointer = strchr(pointer,'\"');	        pointer[0]='\0';	        	        sscanf(value,format,&mon,&day,&year,&hour,&min,&sec);	        		tournament_check_date(&mon,&day,&year,&hour,&min,&sec,variable);	        timestamp->tm_mon	= mon-1;	        timestamp->tm_mday	= day;	        timestamp->tm_year	= year-1900;	        timestamp->tm_hour	= hour;	        timestamp->tm_min	= min;	        timestamp->tm_sec	= sec;	        timestamp->tm_isdst	= -1;			        tournament_info->start_round_2 = mktime(timestamp);	    }	    else if (strcmp(variable,"start_round_3") == 0) {		pointer = strchr(pointer,'\"');	        pointer++;	        value = pointer;	        pointer = strchr(pointer,'\"');	        pointer[0]='\0';	        	        sscanf(value,format,&mon,&day,&year,&hour,&min,&sec);	        		tournament_check_date(&mon,&day,&year,&hour,&min,&sec,variable);	        timestamp->tm_mon	= mon-1;	        timestamp->tm_mday	= day;	        timestamp->tm_year	= year-1900;	        timestamp->tm_hour	= hour;	        timestamp->tm_min	= min;	        timestamp->tm_sec	= sec;	        timestamp->tm_isdst	= -1;			        tournament_info->start_round_3 = mktime(timestamp);	    }	    else if (strcmp(variable,"start_round_4") == 0) {	        pointer = strchr(pointer,'\"');	        pointer++;	        value = pointer;	        pointer = strchr(pointer,'\"');	        pointer[0]='\0';	        	        sscanf(value,format,&mon,&day,&year,&hour,&min,&sec);	        		tournament_check_date(&mon,&day,&year,&hour,&min,&sec,variable);	        timestamp->tm_mon	= mon-1;	        timestamp->tm_mday	= day;	        timestamp->tm_year	= year-1900;	        timestamp->tm_hour	= hour;	        timestamp->tm_min	= min;	        timestamp->tm_sec	= sec;	        timestamp->tm_isdst	= -1;			        tournament_info->start_round_4 = mktime(timestamp);	    }	    else if (strcmp(variable,"tournament_end") == 0) {		pointer = strchr(pointer,'\"');	        pointer++;	        value = pointer;	        pointer = strchr(pointer,'\"');	        pointer[0]='\0';	        	        sscanf(value,format,&mon,&day,&year,&hour,&min,&sec);	        		tournament_check_date(&mon,&day,&year,&hour,&min,&sec,variable);	        timestamp->tm_mon	= mon-1;	        timestamp->tm_mday	= day;	        timestamp->tm_year	= year-1900;	        timestamp->tm_hour	= hour;	        timestamp->tm_min	= min;	        timestamp->tm_sec	= sec;	        timestamp->tm_isdst	= -1;			        tournament_info->tournament_end = mktime(timestamp);	    }	    else if (strcmp(variable,"game_selection") == 0) {		if (atoi(pointer) >= 1 && atoi(pointer) <= 2)		    tournament_info->game_selection = atoi(pointer);	    }	    else if (strcmp(variable,"game_type") == 0) {		if (atoi(pointer) >= 1 && atoi(pointer) <= 4)		    tournament_info->game_type = atoi(pointer);	    }	    else if (strcmp(variable,"game_client") == 0) {		if (atoi(pointer) >= 1 && atoi(pointer) <= 2)		    tournament_info->game_client = atoi(pointer);	    }	    else if (strcmp(variable,"format") == 0) {	        pointer = strchr(pointer,'\"');	        pointer++;	        value = pointer;	        pointer = strchr(pointer,'\"');	        pointer[0]='\0';	        	        if (tournament_info->format) xfree((void *)tournament_info->format);	        tournament_info->format = xstrdup(value);	    }	    else if (strcmp(variable,"races") == 0) {	        unsigned int intvalue = 0;	        unsigned int i;	        	        pointer = strchr(pointer,'\"');	        pointer++;	        value = pointer;	        pointer = strchr(pointer,'\"');	        pointer[0]='\0';	        	        for(i=0;i<strlen(value);i++) {		    if (value[i] == 'H') intvalue = intvalue | 0x01;		    if (value[i] == 'O') intvalue = intvalue | 0x02;		    if (value[i] == 'N') intvalue = intvalue | 0x04;		    if (value[i] == 'U') intvalue = intvalue | 0x08;		    if (value[i] == 'R') intvalue = intvalue | 0x20;		}				if (intvalue == 0 || intvalue == 0x2F)		    intvalue = 0x3F; /* hack to make all races availiable */			        tournament_info->races = intvalue;	    }	    else if (strcmp(variable,"sponsor") == 0) {		pointer = strchr(pointer,'\"');		pointer++;	        value = pointer;	        pointer = strchr(pointer,'\"');	        pointer[0]='\0';			        have_sponsor = xstrdup(value);	    }	    else if (strcmp(variable,"icon") == 0) {	        pointer = strchr(pointer,'\"');	        pointer++;	        value = pointer;	        pointer = strchr(pointer,'\"');	        pointer[0]='\0';			        have_icon = xstrdup(value);	    }	    else if (strcmp(variable,"thumbs_down") == 0) {	        tournament_info->thumbs_down = atoi(pointer);	    }	    else	        eventlog(eventlog_level_error,__FUNCTION__,"bad option \"%s\" in \"%s\"",variable,filename);	    	    if (have_sponsor && have_icon) {	        sponsor = xmalloc(strlen(have_sponsor)+6);				if (strlen(have_icon) == 4)		    sprintf(sponsor, "%c%c%c%c,%s",have_icon[3],have_icon[2],have_icon[1],have_icon[0],have_sponsor);		else if (strlen(have_icon) == 2)		    sprintf(sponsor, "%c%c3W,%s",have_icon[1],have_icon[0],have_sponsor);		else {		    sprintf(sponsor, "PX3W,%s",have_sponsor); /* default to standard FT icon */		    eventlog(eventlog_level_warn,__FUNCTION__,"bad icon length, using W3XP");		}				if (tournament_info->sponsor)		    xfree((void *)tournament_info->sponsor);	        		tournament_info->sponsor = xstrdup(sponsor);	        xfree((void *)have_sponsor);		xfree((void *)have_icon);	        xfree((void *)sponsor);		have_sponsor = NULL;	        have_icon = NULL;	    }	}    }    if (have_sponsor) xfree((void *)have_sponsor);    if (have_icon) xfree((void *)have_icon);    xfree((void *)timestamp);    file_get_line(NULL); // clear file_get_line buffer    fclose(fp);        /* check if we have timestamps for all the times */     /* if not disable tournament by setting "start_preliminary" to 0 */    if (tournament_info->end_signup == 0 || tournament_info->end_preliminary == 0 ||	    tournament_info->start_round_1 == 0 || tournament_info->start_round_2 == 0 ||	    tournament_info->start_round_3 == 0 || tournament_info->start_round_4 == 0 ||	    tournament_info->tournament_end == 0) {	tournament_info->start_preliminary = 0;	eventlog(eventlog_level_warn,__FUNCTION__,"one or more timestamps for tournaments is not valid, tournament has been disabled");    } else {    	tournamentlist_create();    }        return 0;}extern int tournament_destroy(void){    if (tournament_info->format) xfree((void *)tournament_info->format);    if (tournament_info->sponsor) xfree((void *)tournament_info->sponsor);    if (tournament_info) xfree((void *)tournament_info);    tournament_info = NULL;    gamelist_destroy();    return 0;}extern int tournament_reload(char const * filename){	time_t tm;	time(&tm);	if((tm >= tournament_info->start_preliminary) && (tm <= tournament_info->tournament_end))	{		eventlog(eventlog_level_info,__FUNCTION__,"unable to reload tournament, tournament is in process");		return -1;	}	tournament_destroy();	return tournament_init(filename);}/*****/extern unsigned int tournament_get_start_preliminary(void){    return tournament_info->start_preliminary;}extern unsigned int tournament_get_end_signup(void){    return tournament_info->end_signup;}extern unsigned int tournament_get_end_preliminary(void){    return tournament_info->end_preliminary;}extern unsigned int tournament_get_start_round_1(void){    return tournament_info->start_round_1;}extern unsigned int tournament_get_start_round_2(void){    return tournament_info->start_round_2;}extern unsigned int tournament_get_start_round_3(void){    return tournament_info->start_round_3;}extern unsigned int tournament_get_start_round_4(void){    return tournament_info->start_round_4;}extern unsigned int tournament_get_tournament_end(void){    return tournament_info->tournament_end;}extern unsigned int tournament_get_game_selection(void){    return tournament_info->game_selection;}extern unsigned int tournament_get_game_type(void){    return tournament_info->game_type;}extern unsigned int tournament_get_races(void){    return tournament_info->races;}extern char * tournament_get_format(void){    return tournament_info->format;}extern char * tournament_get_sponsor(void){    return tournament_info->sponsor;}extern unsigned int tournament_get_thumbs_down(void){    return tournament_info->thumbs_down;}/****/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -