diff --git a/src/java/com/threerings/miso/client/DirtyItemList.java b/src/java/com/threerings/miso/client/DirtyItemList.java index 8297371f..b8556b79 100644 --- a/src/java/com/threerings/miso/client/DirtyItemList.java +++ b/src/java/com/threerings/miso/client/DirtyItemList.java @@ -281,7 +281,7 @@ public class DirtyItemList this.oy = y; // calculate the item's leftmost and rightmost tiles; note - // that sprites occupy only a single tile, so leftmost and + // that normal (Non-MultiTile) sprites occupy only a single tile, so leftmost and // rightmost tiles are equivalent lx = rx = ox; ly = ry = oy; @@ -289,6 +289,10 @@ public class DirtyItemList ObjectTile tile = ((SceneObject)obj).tile; lx -= (tile.getBaseWidth() - 1); ry -= (tile.getBaseHeight() - 1); + } else if (obj instanceof MultiTileSprite) { + MultiTileSprite mts = (MultiTileSprite)obj; + lx -= (mts.getBaseWidth() - 1); + ry -= (mts.getBaseHeight() - 1); } } @@ -457,7 +461,7 @@ public class DirtyItemList } return result; } - + // check for partitioning objects on the x-axis result = comparePartitioned(X_AXIS, da, db); if (result != 0) { diff --git a/src/java/com/threerings/miso/client/MultiTileSprite.java b/src/java/com/threerings/miso/client/MultiTileSprite.java new file mode 100644 index 00000000..aa1bbc49 --- /dev/null +++ b/src/java/com/threerings/miso/client/MultiTileSprite.java @@ -0,0 +1,33 @@ +// +// $Id$ +// +// Nenya library - tools for developing networked games +// Copyright (C) 2002-2007 Three Rings Design, Inc., All Rights Reserved +// http://www.threerings.net/code/nenya/ +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published +// by the Free Software Foundation; either version 2.1 of the License, or +// (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +package com.threerings.miso.client; + +public interface MultiTileSprite +{ + /** Returns the number of tiles the sprite occupies along the x-axis. Note that the origin is + * defined to be the tile with the maximal x & y coordinates. */ + public int getBaseWidth (); + + /** Returns the number of tiles the sprite occupies along the y-axis. Note that the origin is + * defined to be the tile with the maximal x & y coordinates. */ + public int getBaseHeight (); +}