… | |
… | |
3039 | if (version_exception == 0) |
3039 | if (version_exception == 0) |
3040 | { |
3040 | { |
3041 | if (m->map_version < (int)NEED_MIN_BINFILE_MAPVERSION) |
3041 | if (m->map_version < (int)NEED_MIN_BINFILE_MAPVERSION) |
3042 | { |
3042 | { |
3043 | dbg(0, "!!**Warning**!!: This map is too old for your version of ZANavi. You need at least a version %d map\n", (int)NEED_MIN_BINFILE_MAPVERSION); |
3043 | dbg(0, "!!**Warning**!!: This map is too old for your version of ZANavi. You need at least a version %d map\n", (int)NEED_MIN_BINFILE_MAPVERSION); |
|
|
3044 | |
|
|
3045 | #ifdef HAVE_API_ANDROID |
|
|
3046 | gchar* xy=g_strdup_printf("%d:%d:%s\n", (int)m->map_version, (int)NEED_MIN_BINFILE_MAPVERSION, m->filename); |
|
|
3047 | android_send_generic_text(31,xy); |
|
|
3048 | g_free(xy); |
|
|
3049 | #endif |
3044 | return 0; |
3050 | return 0; |
3045 | } |
3051 | } |
3046 | } |
3052 | } |
3047 | } |
3053 | } |
3048 | return 1; |
3054 | return 1; |
… | |
… | |
3079 | } |
3085 | } |
3080 | |
3086 | |
3081 | static void binfile_check_version(struct map_priv *m) |
3087 | static void binfile_check_version(struct map_priv *m) |
3082 | { |
3088 | { |
3083 | int version = -1; |
3089 | int version = -1; |
|
|
3090 | |
3084 | if (!m->check_version) |
3091 | if (!m->check_version) |
|
|
3092 | { |
3085 | return; |
3093 | return; |
|
|
3094 | } |
|
|
3095 | |
3086 | if (m->fi) |
3096 | if (m->fi) |
|
|
3097 | { |
3087 | version = file_version(m->fi, m->check_version); |
3098 | version = file_version(m->fi, m->check_version); |
|
|
3099 | } |
|
|
3100 | |
3088 | if (version != m->version) |
3101 | if (version != m->version) |
3089 | { |
3102 | { |
3090 | if (m->fi) |
3103 | if (m->fi) |
|
|
3104 | { |
3091 | map_binfile_close(m); |
3105 | map_binfile_close(m); |
|
|
3106 | } |
3092 | map_binfile_open(m); |
3107 | map_binfile_open(m); |
3093 | } |
3108 | } |
3094 | } |
3109 | } |
3095 | |
3110 | |
3096 | struct map_priv * |
3111 | struct map_priv * |
… | |
… | |
3099 | struct map_priv *m; |
3114 | struct map_priv *m; |
3100 | struct attr *data = attr_search(attrs, NULL, attr_data); |
3115 | struct attr *data = attr_search(attrs, NULL, attr_data); |
3101 | struct attr *check_version, *map_pass, *flags, *url, *download_enabled; |
3116 | struct attr *check_version, *map_pass, *flags, *url, *download_enabled; |
3102 | struct file_wordexp *wexp; |
3117 | struct file_wordexp *wexp; |
3103 | char **wexp_data; |
3118 | char **wexp_data; |
|
|
3119 | |
3104 | if (!data) |
3120 | if (!data) |
|
|
3121 | { |
3105 | return NULL; |
3122 | return NULL; |
|
|
3123 | } |
3106 | |
3124 | |
3107 | // wexp = file_wordexp_new(data->u.str); |
3125 | // wexp = file_wordexp_new(data->u.str); |
3108 | // wexp_data = file_wordexp_get_array(wexp); |
3126 | // wexp_data = file_wordexp_get_array(wexp); |
3109 | // dbg(0, "map_new_binfile %s\n", data->u.str); |
3127 | // dbg(0, "map_new_binfile %s\n", data->u.str); |
3110 | *meth = map_methods_binfile; |
3128 | *meth = map_methods_binfile; |
… | |
… | |
3115 | m->filename = g_strdup(data->u.str); |
3133 | m->filename = g_strdup(data->u.str); |
3116 | // file_wordexp_destroy(wexp); |
3134 | // file_wordexp_destroy(wexp); |
3117 | check_version = attr_search(attrs, NULL, attr_check_version); |
3135 | check_version = attr_search(attrs, NULL, attr_check_version); |
3118 | |
3136 | |
3119 | if (check_version) |
3137 | if (check_version) |
|
|
3138 | { |
3120 | m->check_version = check_version->u.num; |
3139 | m->check_version = check_version->u.num; |
|
|
3140 | } |
3121 | |
3141 | |
3122 | map_pass = attr_search(attrs, NULL, attr_map_pass); |
3142 | map_pass = attr_search(attrs, NULL, attr_map_pass); |
3123 | |
3143 | |
3124 | if (map_pass) |
3144 | if (map_pass) |
|
|
3145 | { |
3125 | m->passwd = g_strdup(map_pass->u.str); |
3146 | m->passwd = g_strdup(map_pass->u.str); |
|
|
3147 | } |
3126 | |
3148 | |
3127 | flags = attr_search(attrs, NULL, attr_flags); |
3149 | flags = attr_search(attrs, NULL, attr_flags); |
3128 | |
3150 | |
3129 | if (flags) |
3151 | if (flags) |
|
|
3152 | { |
3130 | m->flags = flags->u.num; |
3153 | m->flags = flags->u.num; |
|
|
3154 | } |
3131 | |
3155 | |
3132 | url = attr_search(attrs, NULL, attr_url); |
3156 | url = attr_search(attrs, NULL, attr_url); |
3133 | |
3157 | |
3134 | if (url) |
3158 | if (url) |
|
|
3159 | { |
3135 | m->url = g_strdup(url->u.str); |
3160 | m->url = g_strdup(url->u.str); |
|
|
3161 | } |
3136 | |
3162 | |
3137 | download_enabled = attr_search(attrs, NULL, attr_update); |
3163 | download_enabled = attr_search(attrs, NULL, attr_update); |
3138 | |
3164 | |
3139 | if (download_enabled) |
3165 | if (download_enabled) |
|
|
3166 | { |
3140 | m->download_enabled = download_enabled->u.num; |
3167 | m->download_enabled = download_enabled->u.num; |
|
|
3168 | } |
3141 | |
3169 | |
3142 | if (!map_binfile_open(m) && !m->check_version && !m->url) |
3170 | if (!map_binfile_open(m) && !m->check_version && !m->url) |
3143 | { |
3171 | { |
3144 | map_binfile_destroy(m); |
3172 | map_binfile_destroy(m); |
3145 | m = NULL; |
3173 | m = NULL; |