fixed segfault at maps load (got from Freya0
git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@253 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
da269444db
commit
4578230bbc
@ -1608,7 +1608,7 @@ static int map_readmap(int m,char *fn, char *alias) {
|
|||||||
*/
|
*/
|
||||||
int map_readallmap(void) {
|
int map_readallmap(void) {
|
||||||
int i,maps_removed=0;
|
int i,maps_removed=0;
|
||||||
char fn[256]="";
|
char fn[256];
|
||||||
FILE *afm_file;
|
FILE *afm_file;
|
||||||
|
|
||||||
// 先に全部のャbプの存在を確認
|
// 先に全部のャbプの存在を確認
|
||||||
@ -1616,39 +1616,39 @@ int map_readallmap(void) {
|
|||||||
char afm_name[256] = "";
|
char afm_name[256] = "";
|
||||||
strncpy(afm_name, map[i].name, strlen(map[i].name) - 4);
|
strncpy(afm_name, map[i].name, strlen(map[i].name) - 4);
|
||||||
strcat(afm_name, ".afm");
|
strcat(afm_name, ".afm");
|
||||||
|
|
||||||
sprintf(fn,"%s\\%s",afm_dir,afm_name);
|
sprintf(fn,"%s\\%s",afm_dir,afm_name);
|
||||||
afm_file = fopen(fn, "r");
|
afm_file = fopen(fn, "r");
|
||||||
if (afm_file != NULL) {
|
if (afm_file != NULL) {
|
||||||
map_readafm(i,fn);
|
map_readafm(i,fn);
|
||||||
}
|
fclose(afm_file);
|
||||||
|
}
|
||||||
else if(strstr(map[i].name,".gat")!=NULL) {
|
else if(strstr(map[i].name,".gat")!=NULL) {
|
||||||
char *p = strstr(map[i].name, ">"); // [MouseJstr]
|
char *p = strstr(map[i].name, ">"); // [MouseJstr]
|
||||||
if (p != NULL) {
|
if (p != NULL) {
|
||||||
char alias[64];
|
char alias[64];
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
strcpy(alias, map[i].name);
|
strcpy(alias, map[i].name);
|
||||||
strcpy(map[i].name, p + 1);
|
strcpy(map[i].name, p + 1);
|
||||||
sprintf(fn,"data\\%s",map[i].name);
|
sprintf(fn,"data\\%s",map[i].name);
|
||||||
if(grfio_size(fn) == -1 || map_readmap(i,fn, alias) == -1) {
|
if(map_readmap(i,fn, alias) == -1) {
|
||||||
map_delmap(map[i].name);
|
map_delmap(map[i].name);
|
||||||
maps_removed++;
|
maps_removed++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sprintf(fn,"data\\%s",map[i].name);
|
sprintf(fn,"data\\%s",map[i].name);
|
||||||
if(grfio_size(fn) == -1 || map_readmap(i,fn, NULL) == -1) {
|
if(map_readmap(i,fn, NULL) == -1) {
|
||||||
map_delmap(map[i].name);
|
map_delmap(map[i].name);
|
||||||
maps_removed++;
|
maps_removed++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (afm_file != NULL)
|
|
||||||
fclose(afm_file);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
free(waterlist);
|
free(waterlist);
|
||||||
printf("\rMaps Loaded: %d %60s\n",map_num,"");
|
printf("\rMaps Loaded: %d %60s\n",map_num,"");
|
||||||
printf("\rMaps Removed: %d \n",maps_removed);
|
printf("\rMaps Removed: %d \n",maps_removed);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user