Преглед изворни кода

- Fixed the subnet 0 mask being reset to 0 when someone goes up on the fame rankings.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8021 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex пре 19 година
родитељ
комит
2918287bd5
3 измењених фајлова са 8 додато и 7 уклоњено
  1. 2 0
      Changelog-Trunk.txt
  2. 3 4
      src/char/char.c
  3. 3 3
      src/char_sql/char.c

+ 2 - 0
Changelog-Trunk.txt

@@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/07/31
+	* Fixed the subnet 0 mask being reset to 0 when someone goes up on the fame
+	  rankings. [Skotlex]
 	* Updated Poison React chance to counter and number of counters as per
 	  skill description updates. [Skotlex]
 	* Fixed Sharpshooting being counted as a magic attack, and hence, using

+ 3 - 4
src/char/char.c

@@ -3023,8 +3023,7 @@ int parse_frommap(int fd) {
 			if (RFIFOREST(fd) < 12)
 				return 0;
 			{
-				int j;
-				int id = RFIFOL(fd, 2);
+				int cid = RFIFOL(fd, 2);
 				int fame = RFIFOL(fd, 6);
 				char type = RFIFOB(fd, 10);
 				char pos = RFIFOB(fd, 11);
@@ -3064,14 +3063,14 @@ int parse_frommap(int fd) {
 					}
 					// If the player's already in the list, remove the entry and shift the following ones 1 step up
 					memmove(list+pos, list+pos+1, (size-pos-1) * sizeof(struct fame_list));
-					list[size].fame = 0; // At worst, the guy'll end up last (shouldn't happen if fame only goes up)
+					list[size-1].fame = 0; // At worst, the guy'll end up last (shouldn't happen if fame only goes up)
 				}
 				// Find the position where the player has to be inserted
 				for(i = 0; i < size && fame < list[i].fame; i++);
 				// When found someone with less or as much fame, insert just above
 				if(i >= size) break;//Out of ranking.
 				memmove(list+i+1, list+i, (size-i-1) * sizeof(struct fame_list));
-				list[i].id = id;
+				list[i].id = cid;
 				list[i].fame = fame;
 				// Look for the player's name
 				for(j = 0; j < char_num && char_dat[j].status.char_id != id; j++);

+ 3 - 3
src/char_sql/char.c

@@ -2881,7 +2881,7 @@ int parse_frommap(int fd) {
 			if (RFIFOREST(fd) < 12)
 				return 0;
 			{
-				int id = RFIFOL(fd, 2);
+				int cid = RFIFOL(fd, 2);
 				int fame = RFIFOL(fd, 6);
 				char type = RFIFOB(fd, 10);
 				char pos = RFIFOB(fd, 11);
@@ -2917,7 +2917,7 @@ int parse_frommap(int fd) {
 					}
 					// If the player's already in the list, remove the entry and shift the following ones 1 step up
 					memmove(list+pos, list+pos+1, (size-pos-1) * sizeof(struct fame_list));
-					list[size].fame = 0; // At worst, the guy'll end up last (shouldn't happen if fame only goes up)
+					list[size-1].fame = 0; // At worst, the guy'll end up last (shouldn't happen if fame only goes up)
 				}
 
 				// Find the position where the player has to be inserted
@@ -2925,7 +2925,7 @@ int parse_frommap(int fd) {
 				if(i>=size) break; //Out of ranking.
 				// When found someone with less or as much fame, insert just above
 				memmove(list+i+1, list+i, (size-i-1) * sizeof(struct fame_list));
-				list[i].id = id;
+				list[i].id = cid;
 				list[i].fame = fame;
 				// Look for the player's name
 				char_loadName(list[i].id, list[i].name);