Bläddra i källkod

BETA: Removing extra copy and iteration of all items in inventory container when deleting them from the world.
* Also minor cleanup of L2World.
* Reviewed by: Nos

Rumen Nikiforov 11 år sedan
förälder
incheckning
3ca636a49e

+ 6 - 27
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2World.java

@@ -129,38 +129,17 @@ public final class L2World
 		_allObjectsDebug.remove(object.getObjectId());
 	}
 	
-	public void removeObjects(List<L2Object> list)
-	{
-		for (L2Object o : list)
-		{
-			if (o != null)
-			{
-				_allObjects.remove(o.getObjectId());
-				_allObjectsDebug.remove(o.getObjectId());
-			}
-		}
-	}
-	
-	public void removeObjects(L2Object[] objects)
-	{
-		for (L2Object o : objects)
-		{
-			_allObjects.remove(o.getObjectId());
-			_allObjectsDebug.remove(o.getObjectId());
-		}
-	}
-	
 	/**
 	 * <B><U> Example of use</U>:</B>
 	 * <ul>
 	 * <li>Client packets : Action, AttackRequest, RequestJoinParty, RequestJoinPledge...</li>
 	 * </ul>
-	 * @param oID Identifier of the L2Object
+	 * @param objectId Identifier of the L2Object
 	 * @return the L2Object object that belongs to an ID or null if no object found.
 	 */
-	public L2Object findObject(int oID)
+	public L2Object findObject(int objectId)
 	{
-		return _allObjects.get(oID);
+		return _allObjects.get(objectId);
 	}
 	
 	public Collection<L2Object> getVisibleObjects()
@@ -231,12 +210,12 @@ public final class L2World
 	}
 	
 	/**
-	 * @param playerObjId Object ID of the player to get Instance
+	 * @param objectId of the player to get Instance
 	 * @return the player instance corresponding to the given object ID.
 	 */
-	public L2PcInstance getPlayer(int playerObjId)
+	public L2PcInstance getPlayer(int objectId)
 	{
-		return _allPlayers.get(playerObjId);
+		return _allPlayers.get(objectId);
 	}
 	
 	/**

+ 1 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/itemcontainer/ItemContainer.java

@@ -33,7 +33,6 @@ import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.GameTimeController;
 import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.enums.ItemLocation;
-import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2World;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -584,13 +583,11 @@ public abstract class ItemContainer
 				{
 					item.updateDatabase(true);
 					item.deleteMe();
+					L2World.getInstance().removeObject(item);
 				}
 			}
 		}
-		final List<L2Object> items = new ArrayList<L2Object>(_items);
 		_items.clear();
-		
-		L2World.getInstance().removeObjects(items);
 	}
 	
 	/**