Changed exit to portal. Limit tile bounds to something reasonable

when invalidating the scene view.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@270 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Walter Korman
2001-08-16 18:05:17 +00:00
parent 2f7f106271
commit a99829818f
11 changed files with 149 additions and 128 deletions
@@ -1,5 +1,5 @@
// //
// $Id: Sprite.java,v 1.12 2001/08/15 22:48:41 shaper Exp $ // $Id: Sprite.java,v 1.13 2001/08/16 18:05:16 shaper Exp $
package com.threerings.media.sprite; package com.threerings.media.sprite;
@@ -215,8 +215,6 @@ public class Sprite
return; return;
} }
Log.info("moveAlongPath [dest=" + _dest + "].");
// if we're already here, move on to the next node // if we're already here, move on to the next node
if (x == _dest.loc.x && y == _dest.loc.y) { if (x == _dest.loc.x && y == _dest.loc.y) {
moveAlongPath(); moveAlongPath();
@@ -1,5 +1,5 @@
// //
// $Id: DisplayMisoSceneImpl.java,v 1.29 2001/08/15 01:10:09 mdb Exp $ // $Id: DisplayMisoSceneImpl.java,v 1.30 2001/08/16 18:05:16 shaper Exp $
package com.threerings.miso.scene; package com.threerings.miso.scene;
@@ -71,7 +71,7 @@ public class MisoScene implements Scene
_locations = new ArrayList(); _locations = new ArrayList();
_clusters = new ArrayList(); _clusters = new ArrayList();
_exits = new ArrayList(); _portals = new ArrayList();
tiles = new Tile[TILE_WIDTH][TILE_HEIGHT][NUM_LAYERS]; tiles = new Tile[TILE_WIDTH][TILE_HEIGHT][NUM_LAYERS];
_deftile = _tilemgr.getTile(deftsid, deftid); _deftile = _tilemgr.getTile(deftsid, deftid);
@@ -92,19 +92,19 @@ public class MisoScene implements Scene
* @param tilemgr the tile manager. * @param tilemgr the tile manager.
* @param name the scene name. * @param name the scene name.
* @param locations the locations. * @param locations the locations.
* @param exits the exits. * @param portals the portals.
* @param tiles the tiles comprising the scene. * @param tiles the tiles comprising the scene.
*/ */
public MisoScene ( public MisoScene (
TileManager tilemgr, String name, ArrayList locations, TileManager tilemgr, String name, ArrayList locations,
ArrayList clusters, ArrayList exits, Tile tiles[][][]) ArrayList clusters, ArrayList portals, Tile tiles[][][])
{ {
_tilemgr = tilemgr; _tilemgr = tilemgr;
_sid = SID_INVALID; _sid = SID_INVALID;
_name = name; _name = name;
_locations = locations; _locations = locations;
_clusters = clusters; _clusters = clusters;
_exits = exits; _portals = portals;
this.tiles = tiles; this.tiles = tiles;
} }
@@ -139,26 +139,26 @@ public class MisoScene implements Scene
} }
/** /**
* Add the specified exit to the scene. Adds the exit to the * Add the specified portal to the scene. Adds the portal to the
* location list as well if it's not already present and removes * location list as well if it's not already present and removes
* it from any cluster it may reside in. * it from any cluster it may reside in.
* *
* @param exit the exit. * @param portal the portal.
*/ */
public void addExit (Exit exit) public void addPortal (Portal portal)
{ {
// make sure it's in the location list and absent from any cluster // make sure it's in the location list and absent from any cluster
updateLocation(exit, -1); updateLocation(portal, -1);
// don't allow adding an exit more than once // don't allow adding an portal more than once
if (_exits.contains(exit)) { if (_portals.contains(portal)) {
Log.warning("Attempt to add already-existing exit " + Log.warning("Attempt to add already-existing portal " +
"[exit=" + exit + "]."); "[portal=" + portal + "].");
return; return;
} }
// add it to the list // add it to the list
_exits.add(exit); _portals.add(portal);
} }
/** /**
@@ -182,8 +182,8 @@ public class MisoScene implements Scene
/** /**
* Remove the given location object from the location list, and * Remove the given location object from the location list, and
* from any containing cluster. If the location is an exit, it * from any containing cluster. If the location is an portal, it
* is removed from the exit list as well. * is removed from the portal list as well.
* *
* @param loc the location object. * @param loc the location object.
*/ */
@@ -192,15 +192,15 @@ public class MisoScene implements Scene
// remove from the location list // remove from the location list
if (!_locations.remove(loc)) { if (!_locations.remove(loc)) {
// we didn't know about it, so it can't be in a cluster or // we didn't know about it, so it can't be in a cluster or
// the exit list // the portal list
return; return;
} }
// remove from any possible cluster // remove from any possible cluster
ClusterUtil.remove(_clusters, loc); ClusterUtil.remove(_clusters, loc);
// remove from any possible existence on the exit list // remove from any possible existence on the portal list
_exits.remove(loc); _portals.remove(loc);
} }
/** /**
@@ -230,9 +230,9 @@ public class MisoScene implements Scene
} }
/** /**
* Returns the scene ids of the exits from this scene. * Returns the scene ids of the portals from this scene.
*/ */
public int[] getExitIds () public int[] getPortalIds ()
{ {
return null; return null;
} }
@@ -254,11 +254,11 @@ public class MisoScene implements Scene
} }
/** /**
* Return the scene exits list. * Return the scene portals list.
*/ */
public ArrayList getExits () public ArrayList getPortals ()
{ {
return _exits; return _portals;
} }
/** /**
@@ -306,7 +306,7 @@ public class MisoScene implements Scene
buf.append(", sid=").append(_sid); buf.append(", sid=").append(_sid);
buf.append(", locations=").append(StringUtil.toString(_locations)); buf.append(", locations=").append(StringUtil.toString(_locations));
buf.append(", clusters=").append(StringUtil.toString(_clusters)); buf.append(", clusters=").append(StringUtil.toString(_clusters));
buf.append(", exits=").append(StringUtil.toString(_exits)); buf.append(", portals=").append(StringUtil.toString(_portals));
return buf.append("]").toString(); return buf.append("]").toString();
} }
@@ -325,8 +325,8 @@ public class MisoScene implements Scene
/** The clusters within the scene. */ /** The clusters within the scene. */
protected ArrayList _clusters; protected ArrayList _clusters;
/** The exits to different scenes. */ /** The portals to different scenes. */
protected ArrayList _exits; protected ArrayList _portals;
/** The default tile for the base layer in the scene. */ /** The default tile for the base layer in the scene. */
protected Tile _deftile; protected Tile _deftile;
@@ -1,35 +0,0 @@
//
// $Id: Exit.java,v 1.2 2001/08/11 00:00:13 shaper Exp $
package com.threerings.miso.scene;
/**
* The <code>Exit</code> class represents a <code>Location</code> in a
* scene that leads to a different scene.
*/
public class Exit extends Location
{
/** The scene name this exit transitions to. */
public String name;
/**
* Construct an <code>Exit</code> object.
*
* @param loc the location associated with the exit.
* @param name the scene name this exit leads to.
*/
public Exit (Location loc, String name)
{
super(loc.x, loc.y, loc.orient);
this.name = name;
}
/**
* Return a String representation of this object.
*/
protected void toString (StringBuffer buf)
{
super.toString(buf);
buf.append(", name=").append(name);
}
}
@@ -1,5 +1,5 @@
// //
// $Id: IsoSceneView.java,v 1.48 2001/08/15 22:16:43 shaper Exp $ // $Id: IsoSceneView.java,v 1.49 2001/08/16 18:05:16 shaper Exp $
package com.threerings.miso.scene; package com.threerings.miso.scene;
@@ -359,7 +359,7 @@ public class IsoSceneView implements EditableSceneView
gfx.rotate(rot); gfx.rotate(rot);
// draw the triangle // draw the triangle
Color fcol = (loc instanceof Exit) ? Color.green : Color.yellow; Color fcol = (loc instanceof Portal) ? Color.green : Color.yellow;
gfx.setColor(fcol); gfx.setColor(fcol);
gfx.fill(tri); gfx.fill(tri);
@@ -460,8 +460,7 @@ public class IsoSceneView implements EditableSceneView
if (y < (screenY + _model.tilehhei)) { if (y < (screenY + _model.tilehhei)) {
ty--; ty--;
for (int ii = 0; ii < numh; ii++) { for (int ii = 0; ii < numh; ii++) {
if (!_dirty[tx][ty]) _numDirty++; addDirtyTile(tx++, ty--);
_dirty[tx++][ty--] = true;
} }
} }
@@ -500,8 +499,7 @@ public class IsoSceneView implements EditableSceneView
// add all tiles in the row to the dirty set // add all tiles in the row to the dirty set
for (int jj = 0; jj < length; jj++) { for (int jj = 0; jj < length; jj++) {
if (!_dirty[tx][ty]) _numDirty++; addDirtyTile(tx++, ty--);
_dirty[tx++][ty--] = true;
} }
// step along the x- or y-axis appropriately // step along the x- or y-axis appropriately
@@ -519,6 +517,30 @@ public class IsoSceneView implements EditableSceneView
} }
} }
protected void addDirtyTile (int x, int y)
{
// constrain x-coordinate to a valid range
if (x < 0) {
x = 0;
} else if (x >= MisoScene.TILE_WIDTH) {
x = MisoScene.TILE_WIDTH - 1;
}
// constrain y-coordinate to a valid range
if (y < 0) {
y = 0;
} else if (y >= MisoScene.TILE_HEIGHT) {
y = MisoScene.TILE_HEIGHT - 1;
}
// do nothing if the tile's already dirty
if (_dirty[x][y]) return;
// mark the tile dirty
_numDirty++;
_dirty[x][y] = true;
}
public void setScene (MisoScene scene) public void setScene (MisoScene scene)
{ {
_scene = scene; _scene = scene;
@@ -629,9 +651,9 @@ public class IsoSceneView implements EditableSceneView
_scene.updateLocation(loc, clusteridx); _scene.updateLocation(loc, clusteridx);
} }
public void addExit (Exit exit) public void addPortal (Portal portal)
{ {
_scene.addExit(exit); _scene.addPortal(portal);
} }
public void removeLocation (Location loc) public void removeLocation (Location loc)
@@ -0,0 +1,36 @@
//
// $Id: Portal.java,v 1.1 2001/08/16 18:05:17 shaper Exp $
package com.threerings.miso.scene;
/**
* The <code>Portal</code> class represents a <code>Location</code> in
* a scene that both leads to a different scene and serves as a
* potential entrance into its containing scene.
*/
public class Portal extends Location
{
/** The portal name used for binding the portal to another scene. */
public String name;
/**
* Construct an <code>Portal</code> object.
*
* @param loc the location associated with the portal.
* @param name the portal name.
*/
public Portal (Location loc, String name)
{
super(loc.x, loc.y, loc.orient);
this.name = name;
}
/**
* Return a String representation of this object.
*/
protected void toString (StringBuffer buf)
{
super.toString(buf);
buf.append(", name=").append(name);
}
}
@@ -1,5 +1,5 @@
// //
// $Id: XMLSceneParser.java,v 1.11 2001/08/15 01:08:49 mdb Exp $ // $Id: XMLSceneParser.java,v 1.12 2001/08/16 18:05:17 shaper Exp $
package com.threerings.miso.scene.xml; package com.threerings.miso.scene.xml;
@@ -74,9 +74,9 @@ public class XMLSceneParser extends DefaultHandler
int vals[] = StringUtil.parseIntArray(_chars.toString()); int vals[] = StringUtil.parseIntArray(_chars.toString());
_scClusters.add(toCluster(_scLocations, vals)); _scClusters.add(toCluster(_scLocations, vals));
} else if (qName.equals("exits")) { } else if (qName.equals("portals")) {
String vals[] = StringUtil.parseStringArray(_chars.toString()); String vals[] = StringUtil.parseStringArray(_chars.toString());
_scExits = toExitList(_scLocations, vals); _scPortals = toPortalList(_scLocations, vals);
} else if (qName.equals("row")) { } else if (qName.equals("row")) {
if (_scLnum == MisoScene.LAYER_BASE) { if (_scLnum == MisoScene.LAYER_BASE) {
@@ -89,7 +89,7 @@ public class XMLSceneParser extends DefaultHandler
// construct the scene object on tag close // construct the scene object on tag close
_scene = new MisoScene( _scene = new MisoScene(
_tilemgr, _scName, _scLocations, _scClusters, _tilemgr, _scName, _scLocations, _scClusters,
_scExits, _scTiles); _scPortals, _scTiles);
Log.info("Constructed parsed scene [scene=" + _scene + "]."); Log.info("Constructed parsed scene [scene=" + _scene + "].");
} }
@@ -215,8 +215,8 @@ public class XMLSceneParser extends DefaultHandler
/** /**
* Given an array of string values, return a list of * Given an array of string values, return a list of
* <code>Exit</code> objects constructed from each successive * <code>Portal</code> objects constructed from each successive
* triplet of values as (locidx, scene name) in the array. The * triplet of values as (locidx, portal name) in the array. The
* list of <code>Location</code> objects must have already been * list of <code>Location</code> objects must have already been
* fully read previously. * fully read previously.
* *
@@ -229,27 +229,27 @@ public class XMLSceneParser extends DefaultHandler
* @param ArrayList the location list. * @param ArrayList the location list.
* @param vals the String values. * @param vals the String values.
* *
* @return the exit list, or null if an error occurred. * @return the portal list, or null if an error occurred.
*/ */
protected ArrayList toExitList (ArrayList locs, String[] vals) protected ArrayList toPortalList (ArrayList locs, String[] vals)
{ {
// make sure we have an appropriate number of values // make sure we have an appropriate number of values
if ((vals.length % 2) != 0) return null; if ((vals.length % 2) != 0) return null;
// read in all of the exits // read in all of the portals
ArrayList exits = new ArrayList(); ArrayList portals = new ArrayList();
for (int ii = 0; ii < vals.length; ii += 2) { for (int ii = 0; ii < vals.length; ii += 2) {
int locidx = getInt(vals[ii]); int locidx = getInt(vals[ii]);
// create the exit and add to the list // create the portal and add to the list
Exit exit = new Exit((Location)locs.get(locidx), vals[ii+1]); Portal portal = new Portal((Location)locs.get(locidx), vals[ii+1]);
exits.add(exit); portals.add(portal);
// upgrade the corresponding location in the location list // upgrade the corresponding location in the location list
locs.set(locidx, exit); locs.set(locidx, portal);
} }
return exits; return portals;
} }
/** /**
@@ -273,7 +273,7 @@ public class XMLSceneParser extends DefaultHandler
int width = MisoScene.TILE_WIDTH, height = MisoScene.TILE_HEIGHT; int width = MisoScene.TILE_WIDTH, height = MisoScene.TILE_HEIGHT;
_scTiles = new Tile[width][height][MisoScene.NUM_LAYERS]; _scTiles = new Tile[width][height][MisoScene.NUM_LAYERS];
_scLocations = null; _scLocations = null;
_scExits = null; _scPortals = null;
_scClusters = new ArrayList(); _scClusters = new ArrayList();
} }
@@ -326,7 +326,7 @@ public class XMLSceneParser extends DefaultHandler
/** Temporary storage of scene object values and data. */ /** Temporary storage of scene object values and data. */
protected StringBuffer _chars; protected StringBuffer _chars;
protected String _scName; protected String _scName;
protected ArrayList _scLocations, _scExits, _scClusters; protected ArrayList _scLocations, _scPortals, _scClusters;
protected Tile[][][] _scTiles; protected Tile[][][] _scTiles;
protected int _scLnum, _scRownum, _scColstart; protected int _scLnum, _scRownum, _scColstart;
} }
@@ -1,5 +1,5 @@
// //
// $Id: XMLSceneWriter.java,v 1.9 2001/08/15 01:08:49 mdb Exp $ // $Id: XMLSceneWriter.java,v 1.10 2001/08/16 18:05:17 shaper Exp $
package com.threerings.miso.scene.xml; package com.threerings.miso.scene.xml;
@@ -21,8 +21,8 @@ import com.threerings.miso.tile.Tile;
* com.threerings.miso.scene.MisoScene} object to an XML file. * com.threerings.miso.scene.MisoScene} object to an XML file.
* *
* <p> The scene id is omitted as the scene id is assigned when the * <p> The scene id is omitted as the scene id is assigned when the
* scene template is actually loaded into a server. Similarly, exit * scene template is actually loaded into a server. Similarly,
* points are specified by scene name rather than scene id. * portals are named and bound to their target scene ids later.
*/ */
public class XMLSceneWriter extends DataWriter public class XMLSceneWriter extends DataWriter
{ {
@@ -57,7 +57,7 @@ public class XMLSceneWriter extends DataWriter
writeClusters(scene); writeClusters(scene);
endElement("clusters"); endElement("clusters");
dataElement("exits", getExitData(scene)); dataElement("portals", getPortalData(scene));
startElement("tiles"); startElement("tiles");
for (int lnum = 0; lnum < MisoScene.NUM_LAYERS; lnum++) { for (int lnum = 0; lnum < MisoScene.NUM_LAYERS; lnum++) {
@@ -132,25 +132,25 @@ public class XMLSceneWriter extends DataWriter
} }
/** /**
* Return a string representation of the exits in the scene. Each * Return a string representation of the portals in the scene. Each
* exit is specified by a comma-delimited tuple of (location * portal is specified by a comma-delimited tuple of (location
* index, scene name) values. * index, portal name) values.
* *
* @param scene the scene object. * @param scene the scene object.
* *
* @return the exits in String format. * @return the portals in String format.
*/ */
protected String getExitData (MisoScene scene) protected String getPortalData (MisoScene scene)
{ {
ArrayList locs = scene.getLocations(); ArrayList locs = scene.getLocations();
ArrayList exits = scene.getExits(); ArrayList portals = scene.getPortals();
StringBuffer buf = new StringBuffer(); StringBuffer buf = new StringBuffer();
int size = exits.size(); int size = portals.size();
for (int ii = 0; ii < size; ii++) { for (int ii = 0; ii < size; ii++) {
Exit exit = (Exit)exits.get(ii); Portal portal = (Portal)portals.get(ii);
buf.append(locs.indexOf(exit)).append(","); buf.append(locs.indexOf(portal)).append(",");
buf.append(exit.name); buf.append(portal.name);
if (ii < size - 1) buf.append(","); if (ii < size - 1) buf.append(",");
} }
@@ -1,5 +1,5 @@
// //
// $Id: DummyScene.java,v 1.1 2001/08/14 06:51:07 mdb Exp $ // $Id: DummyScene.java,v 1.2 2001/08/16 18:05:17 shaper Exp $
package com.threerings.whirled.client.test; package com.threerings.whirled.client.test;
@@ -22,7 +22,7 @@ public class DummyScene implements Scene
return 1; return 1;
} }
public int[] getExitIds () public int[] getPortalIds ()
{ {
return null; return null;
} }
@@ -1,5 +1,5 @@
// //
// $Id: Scene.java,v 1.1 2001/08/11 04:09:50 mdb Exp $ // $Id: Scene.java,v 1.2 2001/08/16 18:05:17 shaper Exp $
package com.threerings.whirled.data; package com.threerings.whirled.data;
@@ -13,5 +13,5 @@ public interface Scene
public int getVersion (); public int getVersion ();
public int[] getExitIds (); public int[] getPortalIds ();
} }
+18 -18
View File
@@ -5,29 +5,29 @@
<version>1</version> <version>1</version>
<locations></locations> <locations></locations>
<clusters></clusters> <clusters></clusters>
<exits></exits> <portals></portals>
<tiles> <tiles>
<layer lnum="0"> <layer lnum="0">
<row rownum="0">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="0">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="1">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="1">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="2">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="2">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="3">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="3">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,6,1004,6,1004,6,1004,6,1004,6,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="4">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="4">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,6,1004,10,1004,10,1004,10,1004,6,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="5">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="5">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,6,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="6">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="6">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,6,1004,6,1004,10,1004,10,1004,6,1004,6,1004,10,1004,10,1004,6,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="7">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="7">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="8">1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,0,1004,10,1004,10,1004,0,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="8">1004,10,1004,10,1004,10,1004,6,1004,10,1004,10,1004,10,1004,6,1004,6,1004,12,1004,12,1004,12,1004,12,1004,12,1004,6,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="9">1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="9">1004,10,1004,10,1004,6,1004,0,1004,6,1004,10,1004,10,1004,6,1004,6,1004,12,1004,12,1004,12,1004,12,1004,12,1004,6,1004,10,1004,10,1004,10,1004,6,1004,10,1004,10,1004,10</row>
<row rownum="10">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="10">1004,10,1004,10,1004,6,1004,6,1004,10,1004,10,1004,10,1004,6,1004,6,1004,12,1004,12,1004,12,1004,12,1004,12,1004,6,1004,10,1004,10,1004,10,1004,6,1004,10,1004,10,1004,10</row>
<row rownum="11">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="11">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,6,1004,6,1004,6,1004,12,1004,12,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,10,1004,10</row>
<row rownum="12">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="12">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,6,1004,6,1004,6,1004,6,1004,6,1004,12,1004,12,1004,6,1004,6,1004,6,1004,10,1004,10,1004,6,1004,10,1004,10,1004,10</row>
<row rownum="13">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="13">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,10,1004,6,1004,10,1004,6,1004,10,1004,10,1004,10</row>
<row rownum="14">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="14">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,6,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="15">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="15">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,6,1004,10,1004,10,1004,10,1004,10,1004,6,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="16">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="16">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="17">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="17">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="18">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="18">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="19">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,0,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="19">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="20">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="20">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
<row rownum="21">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row> <row rownum="21">1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10</row>
</layer> </layer>
@@ -1,5 +1,5 @@
// //
// $Id: ViewerFrame.java,v 1.13 2001/08/15 22:48:41 shaper Exp $ // $Id: ViewerFrame.java,v 1.14 2001/08/16 18:05:17 shaper Exp $
package com.threerings.miso.viewer; package com.threerings.miso.viewer;
@@ -47,7 +47,7 @@ class ViewerFrame extends JFrame implements WindowListener
TileUtil.getSpriteFrames(tilemgr, TSID_CHAR); TileUtil.getSpriteFrames(tilemgr, TSID_CHAR);
AmbulatorySprite sprite = AmbulatorySprite sprite =
new AmbulatorySprite(spritemgr, 300, 300, anims); new AmbulatorySprite(spritemgr, 300, 300, anims);
sprite.setVelocity(3, 3); sprite.setVelocity(6, 6);
spritemgr.addSprite(sprite); spritemgr.addSprite(sprite);
// create a top-level panel to manage everything // create a top-level panel to manage everything