Treasure Drop depended on the previous behavior, where if the hover sprite

was still hitting it didn't check for a new one. Let's keep the
check but instead let's just make sure that we ignore sprites
that are non-action or non-hover or are disabled.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3731 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Ray Greenwell
2005-10-13 08:54:25 +00:00
parent aed0f94e50
commit bb5e7fed19
+12 -10
View File
@@ -39,6 +39,7 @@ import javax.swing.event.AncestorEvent;
import javax.swing.event.MouseInputAdapter;
import java.util.Arrays;
import java.util.ArrayList;
import com.samskivert.swing.Controller;
import com.samskivert.swing.Label;
@@ -726,20 +727,21 @@ public class MediaPanel extends JComponent
}
/**
* Utility method, get the highest sprite, return it
* if it's enabled.
* Utility method, get the highest non-disabled action/hover sprite.
*/
protected Sprite getHit (MouseEvent me)
{
// TODO: this should get all hit sprites, sort them by render
// priority and then return the first non-disabled sprite
Sprite s = _spritemgr.getHighestHitSprite(me.getX(), me.getY());
if (!(s instanceof DisableableSprite) ||
((DisableableSprite) s).isEnabled()) {
return s;
} else {
return null;
ArrayList list = new ArrayList();
_spritemgr.getHitSprites(list, me.getX(), me.getY());
for (int ii = 0, nn = list.size(); ii < nn; ii++) {
Object o = list.get(ii);
if ((o instanceof HoverSprite || o instanceof ActionSprite) &&
(!(o instanceof DisableableSprite) ||
((DisableableSprite) o).isEnabled())) {
return (Sprite) o;
}
}
return null;
}
/** The active hover sprite, or action sprite. */