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:
@@ -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. */
|
||||
|
||||
Reference in New Issue
Block a user