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

📄 anongame_infos.c

📁 打魔兽战网的都知道他是什么
💻 C
📖 第 1 页 / 共 5 页
字号:
/* * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */#define TIMER_INTERNAL_ACCESS#include "common/setup_before.h"#ifdef STDC_HEADERS# include <stdlib.h>#else# ifdef HAVE_MALLOC_H#  include <malloc.h># endif#endif#ifdef HAVE_STRING_H# include <string.h>#else# ifdef HAVE_STRINGS_H#  include <strings.h># endif#endif#include "compat/strrchr.h"#include <errno.h>#include "compat/strerror.h"#include "common/list.h"#include "common/eventlog.h"#include "common/util.h"#include "common/packet.h"#include "common/tag.h"#include "common/bn_type.h"#include "common/xalloc.h"#include "zlib/pvpgn_zlib.h"#include "tournament.h"#include "anongame_maplists.h"#include "anongame_infos.h"#include "common/setup_after.h"static FILE *fp = NULL;static t_anongame_infos *anongame_infos;static int zlib_compress(void const *src, int srclen, char **dest, int *destlen);static int anongame_infos_data_load(void);static int anongame_infos_URL_init(t_anongame_infos * anongame_infos){    char **anongame_infos_URL;    int i;    if (!(anongame_infos))    {	eventlog(eventlog_level_error, __FUNCTION__, "got NULL anongame_infos");	return -1;    }    anongame_infos_URL = xmalloc(sizeof(char*)*anongame_infos_URL_count);    for (i=0; i<anongame_infos_URL_count; i++)        anongame_infos_URL[i] = NULL;    anongame_infos->anongame_infos_URL = anongame_infos_URL;    return 0;}static int anongame_infos_URL_destroy(char ** anongame_infos_URL){    int i;        if (!(anongame_infos_URL))    {	eventlog(eventlog_level_error, __FUNCTION__, "got NULL anongame_infos_URL");	return -1;    }    for (i=0; i <anongame_infos_URL_count; i++)    {        if (anongame_infos_URL[i])	{            xfree((void *)anongame_infos_URL[i]);	}    }    xfree((void *) anongame_infos_URL);    return 0;}static t_anongame_infos_DESC *anongame_infos_DESC_init(void){    int i;    char ** descs;    t_anongame_infos_DESC *anongame_infos_DESC;    anongame_infos_DESC = xmalloc(sizeof(t_anongame_infos_DESC));    anongame_infos_DESC->langID = NULL;    descs = xmalloc(sizeof(char *)*anongame_infos_DESC_count);    for (i=0; i<anongame_infos_DESC_count; i++)        descs[i] = NULL;    anongame_infos_DESC->descs = descs;    return anongame_infos_DESC;}static int anongame_infos_DESC_destroy(t_anongame_infos_DESC * anongame_infos_DESC){    int i;    char ** descs;        if (!(anongame_infos_DESC))    {	eventlog(eventlog_level_error, __FUNCTION__, "got NULL anongame_infos_DESC");	return -1;    }    if (anongame_infos_DESC->langID)	xfree((void *) anongame_infos_DESC->langID);    if ((descs = anongame_infos_DESC->descs))    {        for (i=0; i<anongame_infos_DESC_count; i++)        {            if ((descs[i]))                free((void *)descs[i]);	}	xfree((void *)descs);    }    xfree((void *) anongame_infos_DESC);    return 0;}static int anongame_infos_THUMBSDOWN_init(t_anongame_infos * anongame_infos){    char * anongame_infos_THUMBSDOWN;    int i;    if (!(anongame_infos))    {	eventlog(eventlog_level_error, __FUNCTION__, "got NULL anongame_infos");	return -1;    }    anongame_infos_THUMBSDOWN = anongame_infos->anongame_infos_THUMBSDOWN;    for (i=0; i<anongame_infos_THUMBSDOWN_count;i++)        anongame_infos_THUMBSDOWN[i] = 0;    return 0;}static int anongame_infos_ICON_REQ_init(t_anongame_infos * anongame_infos){    int *anongame_infos_ICON_REQ;    if (!(anongame_infos))    {	eventlog(eventlog_level_error, __FUNCTION__, "got NULL anongame_infos");	return -1;    }	anongame_infos_ICON_REQ = anongame_infos->anongame_infos_ICON_REQ;    anongame_infos_ICON_REQ[ICON_REQ_WAR3_Level1] = 25;    anongame_infos_ICON_REQ[ICON_REQ_WAR3_Level2] = 250;    anongame_infos_ICON_REQ[ICON_REQ_WAR3_Level3] = 500;    anongame_infos_ICON_REQ[ICON_REQ_WAR3_Level4] = 1500;    anongame_infos_ICON_REQ[ICON_REQ_W3XP_Level1] = 25;    anongame_infos_ICON_REQ[ICON_REQ_W3XP_Level2] = 150;    anongame_infos_ICON_REQ[ICON_REQ_W3XP_Level3] = 350;    anongame_infos_ICON_REQ[ICON_REQ_W3XP_Level4] = 750;    anongame_infos_ICON_REQ[ICON_REQ_W3XP_Level5] = 1500;    anongame_infos_ICON_REQ[ICON_REQ_TRNY_Level1] = 10;    anongame_infos_ICON_REQ[ICON_REQ_TRNY_Level2] = 75;    anongame_infos_ICON_REQ[ICON_REQ_TRNY_Level3] = 150;    anongame_infos_ICON_REQ[ICON_REQ_TRNY_Level4] = 250;    anongame_infos_ICON_REQ[ICON_REQ_TRNY_Level5] = 500;    return 0;}static t_anongame_infos_data_lang *anongame_infos_data_lang_init(char *langID){    t_anongame_infos_data_lang *anongame_infos_data_lang;    anongame_infos_data_lang = xmalloc(sizeof(t_anongame_infos_data_lang));    anongame_infos_data_lang->langID = xstrdup(langID);    anongame_infos_data_lang->desc_data = NULL;    anongame_infos_data_lang->ladr_data = NULL;    anongame_infos_data_lang->desc_comp_data = NULL;    anongame_infos_data_lang->ladr_comp_data = NULL;    anongame_infos_data_lang->desc_len = 0;    anongame_infos_data_lang->ladr_len = 0;    anongame_infos_data_lang->desc_comp_len = 0;    anongame_infos_data_lang->ladr_comp_len = 0;    return anongame_infos_data_lang;}static int anongame_infos_data_lang_destroy(t_anongame_infos_data_lang * anongame_infos_data_lang){    if (!(anongame_infos_data_lang))    {	eventlog(eventlog_level_error, __FUNCTION__, "got NULL anongame_infos_data_lang");	return -1;    }    if (anongame_infos_data_lang->langID)	xfree((void *) anongame_infos_data_lang->langID);    if (anongame_infos_data_lang->desc_data)	xfree((void *) anongame_infos_data_lang->desc_data);    if (anongame_infos_data_lang->ladr_data)	xfree((void *) anongame_infos_data_lang->ladr_data);    if (anongame_infos_data_lang->desc_comp_data)	xfree((void *) anongame_infos_data_lang->desc_comp_data);    if (anongame_infos_data_lang->ladr_comp_data)	xfree((void *) anongame_infos_data_lang->ladr_comp_data);    xfree((void *) anongame_infos_data_lang);    return 0;}static int anongame_infos_data_init(t_anongame_infos * anongame_infos){    t_anongame_infos_data *anongame_infos_data;    t_list *anongame_infos_data_lang;    if (!(anongame_infos))    {	eventlog(eventlog_level_error, __FUNCTION__, "got NULL anongame_infos");	return -1;    }    anongame_infos_data = xmalloc(sizeof(t_anongame_infos_data));    anongame_infos_data_lang = list_create();    anongame_infos_data->url_comp_data = NULL;    anongame_infos_data->url_comp_data_115 = NULL;    anongame_infos_data->map_comp_data = NULL;    anongame_infos_data->type_comp_data = NULL;    anongame_infos_data->desc_comp_data = NULL;    anongame_infos_data->ladr_comp_data = NULL;    anongame_infos_data->url_comp_len = 0;    anongame_infos_data->url_comp_len_115 = 0;    anongame_infos_data->map_comp_len = 0;    anongame_infos_data->type_comp_len = 0;    anongame_infos_data->desc_comp_len = 0;    anongame_infos_data->ladr_comp_len = 0;    anongame_infos->anongame_infos_data_war3 = anongame_infos_data;    anongame_infos->anongame_infos_data_lang_war3 = anongame_infos_data_lang;    anongame_infos_data = xmalloc(sizeof(t_anongame_infos_data));    anongame_infos_data_lang = list_create();    anongame_infos_data->url_comp_data = NULL;    anongame_infos_data->url_comp_data_115 = NULL;    anongame_infos_data->map_comp_data = NULL;    anongame_infos_data->type_comp_data = NULL;    anongame_infos_data->desc_comp_data = NULL;    anongame_infos_data->ladr_comp_data = NULL;    anongame_infos_data->url_comp_len = 0;    anongame_infos_data->url_comp_len_115 = 0;    anongame_infos_data->map_comp_len = 0;    anongame_infos_data->type_comp_len = 0;    anongame_infos_data->desc_comp_len = 0;    anongame_infos_data->ladr_comp_len = 0;    anongame_infos->anongame_infos_data_w3xp = anongame_infos_data;    anongame_infos->anongame_infos_data_lang_w3xp = anongame_infos_data_lang;    return 0;}static int anongame_infos_data_destroy(t_anongame_infos_data * anongame_infos_data, t_list * anongame_infos_data_lang){    t_elem *curr;    t_anongame_infos_data_lang *entry;    if (anongame_infos_data->url_comp_data)	xfree((void *) anongame_infos_data->url_comp_data);    if (anongame_infos_data->url_comp_data_115)	xfree((void *) anongame_infos_data->url_comp_data_115);    if (anongame_infos_data->map_comp_data)	xfree((void *) anongame_infos_data->map_comp_data);    if (anongame_infos_data->type_comp_data)	xfree((void *) anongame_infos_data->type_comp_data);    if (anongame_infos_data->desc_comp_data)	xfree((void *) anongame_infos_data->desc_comp_data);    if (anongame_infos_data->ladr_comp_data)	xfree((void *) anongame_infos_data->ladr_comp_data);    xfree((void *) anongame_infos_data);    if (anongame_infos_data_lang)    {	LIST_TRAVERSE(anongame_infos_data_lang, curr)	{	    if (!(entry = elem_get_data(curr)))		eventlog(eventlog_level_error, __FUNCTION__, "found NULL entry in list");	    else	    {		anongame_infos_data_lang_destroy(entry);	    }	    list_remove_elem(anongame_infos_data_lang, &curr);	}	list_destroy(anongame_infos_data_lang);    }    return 0;}t_anongame_infos *anongame_infos_init(void){    t_anongame_infos *anongame_infos;    anongame_infos = xmalloc(sizeof(t_anongame_infos));    if (anongame_infos_URL_init(anongame_infos) != 0)    {	xfree((void *) anongame_infos);	return NULL;    }    if (anongame_infos_THUMBSDOWN_init(anongame_infos) != 0)    {	anongame_infos_URL_destroy(anongame_infos->anongame_infos_URL);	xfree((void *) anongame_infos);	return NULL;    }    if (anongame_infos_ICON_REQ_init(anongame_infos) != 0)    {	anongame_infos_URL_destroy(anongame_infos->anongame_infos_URL);	xfree((void *) anongame_infos);	return NULL;    }    if (anongame_infos_data_init(anongame_infos) != 0)    {	anongame_infos_URL_destroy(anongame_infos->anongame_infos_URL);	xfree((void *) anongame_infos);	return NULL;    }    anongame_infos->anongame_infos_DESC = NULL;    anongame_infos->anongame_infos_DESC_list = list_create();    return anongame_infos;}static int anongame_infos_destroy(t_anongame_infos * anongame_infos){    t_elem *curr;    t_anongame_infos_DESC *entry;    if (!(anongame_infos))    {	eventlog(eventlog_level_error, __FUNCTION__, "got NULL anongame_infos");	return -1;    }

⌨️ 快捷键说明

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