Pārlūkot izejas kodu

- Fixing a bug in map_nick2sd. Also fixed on Stable.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12445 54d463be-8e91-2dee-dedb-b68131a5f0ec
zephyrus 17 gadi atpakaļ
vecāks
revīzija
b70caae42f
1 mainītis faili ar 11 papildinājumiem un 12 dzēšanām
  1. 11 12
      src/map/map.c

+ 11 - 12
src/map/map.c

@@ -1681,6 +1681,7 @@ struct map_session_data * map_nick2sd(const char *nick)
 	struct map_session_data* found_sd;
 	struct s_mapiterator* iter;
 	size_t nicklen;
+	int qty = 0;
 
 	if( nick == NULL )
 		return NULL;
@@ -1693,32 +1694,30 @@ struct map_session_data * map_nick2sd(const char *nick)
 	{
 		if( battle_config.partial_name_scan )
 		{// partial name search
-			int qty = 0;
-
 			if( strnicmp(sd->status.name, nick, nicklen) == 0 )
 			{
 				found_sd = sd;
 
 				if( strcmp(sd->status.name, nick) == 0 )
-					break; // Perfect Match
+				{// Perfect Match
+					qty = 1;
+					break;
+				}
 
 				qty++;
 			}
-
-			if( qty != 1 ) found_sd = NULL; // Collisions
 		}
-		else
+		else if( strcasecmp(sd->status.name, nick) == 0 )
 		{// exact search only
-			if( strcasecmp(sd->status.name, nick) == 0 )
-			{
-				found_sd = sd;
-				break;
-			}
+			found_sd = sd;
+			break;
 		}
 	}
-
 	mapit_free(iter);
 
+	if( battle_config.partial_name_scan && qty != 1 )
+		found_sd = NULL;
+
 	return found_sd;
 }