From 9b9211de165fc46c85137a4d11c5214ede8f3fcd Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Tue, 19 Feb 2002 03:57:53 +0000 Subject: [PATCH] Use a SortableArrayList instead of going for object creation mania every time we sort the sprite list. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1031 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../media/sprite/SpriteManager.java | 21 ++++--------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/src/java/com/threerings/media/sprite/SpriteManager.java b/src/java/com/threerings/media/sprite/SpriteManager.java index c35a7c89a..5442b2bf7 100644 --- a/src/java/com/threerings/media/sprite/SpriteManager.java +++ b/src/java/com/threerings/media/sprite/SpriteManager.java @@ -1,5 +1,5 @@ // -// $Id: SpriteManager.java,v 1.20 2002/01/31 01:04:13 mdb Exp $ +// $Id: SpriteManager.java,v 1.21 2002/02/19 03:57:53 mdb Exp $ package com.threerings.media.sprite; @@ -15,6 +15,7 @@ import java.util.Iterator; import java.util.List; import com.samskivert.util.CollectionUtil; +import com.samskivert.util.SortableArrayList; import com.samskivert.util.Tuple; import com.threerings.media.Log; @@ -29,7 +30,7 @@ public class SpriteManager */ public SpriteManager () { - _sprites = new ArrayList(); + _sprites = new SortableArrayList(); _notify = new ArrayList(); _dirty = new ArrayList(); } @@ -167,7 +168,7 @@ public class SpriteManager tickSprites(timestamp); // re-sort the sprite list to account for potential new positions - sortSprites(); + _sprites.sort(SPRITE_COMP); // notify sprite observers of any collisions handleCollisions(); @@ -202,20 +203,6 @@ public class SpriteManager } } - /** - * Sort the sprite list in order of ascending x-coordinate. - */ - protected void sortSprites () - { - Object[] sprites = new Sprite[_sprites.size()]; - _sprites.toArray(sprites); - Arrays.sort(sprites, SPRITE_COMP); - _sprites.clear(); - for (int ii = 0; ii < sprites.length; ii++) { - _sprites.add(sprites[ii]); - } - } - /** * Check all sprites for collisions with others and inform any * sprite observers.