소스 검색

* Fixed loading of AFMs when no resnametable is found. [Valaris]

git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@182 54d463be-8e91-2dee-dedb-b68131a5f0ec
valaris 20 년 전
부모
커밋
aa11516bae
4개의 변경된 파일8개의 추가작업 그리고 16개의 파일을 삭제
  1. 1 1
      Changelog.txt
  2. 2 1
      conf-tmpl/grf-files.txt
  3. 1 1
      src/common/grfio.c
  4. 4 13
      src/map/map.c

+ 1 - 1
Changelog.txt

@@ -1,7 +1,7 @@
 Date	Added
 11/14
+	* Fixed loading of AFMs when no resnametable is found. [Valaris]
 	* mob_db.txt: Fixed Golden Thief Bug MVP MOB mode (it wasn't moving/attacking) [Lupus]
-11/14
 	* Added AFM (Advanced Fusion Map) support, thanks to alexkreuz and fusion. [Valaris]
 	  Use the afm_dir option in grf-files.txt (currently needs a resnametable.txt). 
 	* Initialized password variable in login.c. [Valaris]

+ 2 - 1
conf-tmpl/grf-files.txt

@@ -1,4 +1,5 @@
 data: C:\Program Files\Gravity\RO\data.grf
 sdata: C:\Program Files\Gravity\RO\sdata.grf
 //adata: C:\Program Files\Gravity\RO\adata.grf
-//data_dir: C:\Program Files\Gravity\RO\
+//data_dir: C:\Program Files\Gravity\RO\
+//afm_dir: afm

+ 1 - 1
src/common/grfio.c

@@ -417,7 +417,7 @@ char* grfio_resnametable(char* fname, char *lfname)
 	fp = fopen(restable,"rb");
 	if(fp==NULL) {
 		printf("%s not found (grfio_resnametable)\n",restable);
-		exit(1);	// 1:not found error
+		return NULL;	// 1:not found error
 	}
 
 	while(fgets(line,508,fp)){

+ 4 - 13
src/map/map.c

@@ -1612,16 +1612,6 @@ int map_readallmap(void) {
 	FILE *afm_file;
 
 	// 先に全部のャbプの存在を確認
-	for(i=0;i<map_num;i++){
-		if(strstr(map[i].name,".gat")==NULL)
-			continue;
-		sprintf(fn,"data\\%s",map[i].name);
-		if(grfio_size(fn) == -1) {
-		    map_delmap(map[i].name);
-                    maps_removed++;
-	        }
-        }
-		
 	for(i=0;i<map_num;i++){
 		char afm_name[256] = "";
 		strncpy(afm_name, map[i].name, strlen(map[i].name) - 4);
@@ -1631,7 +1621,7 @@ int map_readallmap(void) {
 		afm_file = fopen(fn, "r");
 		if (afm_file != NULL) {			
 			map_readafm(i,fn);
-    }
+    		}
 		else if(strstr(map[i].name,".gat")!=NULL) {
                       char *p = strstr(map[i].name, ">"); // [MouseJstr]
                       if (p != NULL) {
@@ -1640,13 +1630,13 @@ int map_readallmap(void) {
                          strcpy(alias, map[i].name);
                          strcpy(map[i].name, p + 1);
                          sprintf(fn,"data\\%s",map[i].name);
-                         if(map_readmap(i,fn, alias) == -1) {
+                         if(grfio_size(fn) == -1 || map_readmap(i,fn, alias) == -1) {
                             map_delmap(map[i].name);
                             maps_removed++;
                          }
                       } else {
                          sprintf(fn,"data\\%s",map[i].name);
-                         if(map_readmap(i,fn, NULL) == -1) {
+                         if(grfio_size(fn) == -1 || map_readmap(i,fn, NULL) == -1) {
                             map_delmap(map[i].name);
                             maps_removed++;
                          }
@@ -1685,6 +1675,7 @@ int map_addmap(char *mapname) {
  *------------------------------------------
  */
 int map_delmap(char *mapname) {
+
 	int i;
 	
 	if (strcmpi(mapname, "all") == 0) {