?? anongame_infos.c
字號:
/* * 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 + -