From 7e45b58f50286b297a3c8a4a4632fa5ad57bcb43 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Fri, 20 Sep 2002 02:12:33 +0000 Subject: [PATCH] Modified tick() order to prevent unhappy business if a sprite removes itself in tick(). git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1721 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- src/java/com/threerings/media/sprite/SpriteManager.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/java/com/threerings/media/sprite/SpriteManager.java b/src/java/com/threerings/media/sprite/SpriteManager.java index 27c9840e5..0614305b2 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.35 2002/07/02 23:15:53 shaper Exp $ +// $Id: SpriteManager.java,v 1.36 2002/09/20 02:12:33 mdb Exp $ package com.threerings.media.sprite; @@ -242,8 +242,10 @@ public class SpriteManager */ protected void tickSprites (long tickStamp) { + // we tick sprites in reverse order so as not to freak out if a + // sprite is removed as a result of our calling tick() on it int size = _sprites.size(); - for (int ii = 0; ii < size; ii++) { + for (int ii = size-1; ii >= 0; ii++) { Sprite sprite = (Sprite)_sprites.get(ii); sprite.tick(tickStamp); }