diff --git a/src/java/com/threerings/media/sprite/Sprite.java b/src/java/com/threerings/media/sprite/Sprite.java
index c3bfe788f..ec6ea1252 100644
--- a/src/java/com/threerings/media/sprite/Sprite.java
+++ b/src/java/com/threerings/media/sprite/Sprite.java
@@ -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;
@@ -215,8 +215,6 @@ public class Sprite
return;
}
- Log.info("moveAlongPath [dest=" + _dest + "].");
-
// if we're already here, move on to the next node
if (x == _dest.loc.x && y == _dest.loc.y) {
moveAlongPath();
diff --git a/src/java/com/threerings/miso/client/DisplayMisoSceneImpl.java b/src/java/com/threerings/miso/client/DisplayMisoSceneImpl.java
index e438f86c2..f893cdfa2 100644
--- a/src/java/com/threerings/miso/client/DisplayMisoSceneImpl.java
+++ b/src/java/com/threerings/miso/client/DisplayMisoSceneImpl.java
@@ -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;
@@ -71,7 +71,7 @@ public class MisoScene implements Scene
_locations = new ArrayList();
_clusters = new ArrayList();
- _exits = new ArrayList();
+ _portals = new ArrayList();
tiles = new Tile[TILE_WIDTH][TILE_HEIGHT][NUM_LAYERS];
_deftile = _tilemgr.getTile(deftsid, deftid);
@@ -92,19 +92,19 @@ public class MisoScene implements Scene
* @param tilemgr the tile manager.
* @param name the scene name.
* @param locations the locations.
- * @param exits the exits.
+ * @param portals the portals.
* @param tiles the tiles comprising the scene.
*/
public MisoScene (
TileManager tilemgr, String name, ArrayList locations,
- ArrayList clusters, ArrayList exits, Tile tiles[][][])
+ ArrayList clusters, ArrayList portals, Tile tiles[][][])
{
_tilemgr = tilemgr;
_sid = SID_INVALID;
_name = name;
_locations = locations;
_clusters = clusters;
- _exits = exits;
+ _portals = portals;
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
* 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
- updateLocation(exit, -1);
+ updateLocation(portal, -1);
- // don't allow adding an exit more than once
- if (_exits.contains(exit)) {
- Log.warning("Attempt to add already-existing exit " +
- "[exit=" + exit + "].");
+ // don't allow adding an portal more than once
+ if (_portals.contains(portal)) {
+ Log.warning("Attempt to add already-existing portal " +
+ "[portal=" + portal + "].");
return;
}
// 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
- * from any containing cluster. If the location is an exit, it
- * is removed from the exit list as well.
+ * from any containing cluster. If the location is an portal, it
+ * is removed from the portal list as well.
*
* @param loc the location object.
*/
@@ -192,15 +192,15 @@ public class MisoScene implements Scene
// remove from the location list
if (!_locations.remove(loc)) {
// we didn't know about it, so it can't be in a cluster or
- // the exit list
+ // the portal list
return;
}
// remove from any possible cluster
ClusterUtil.remove(_clusters, loc);
- // remove from any possible existence on the exit list
- _exits.remove(loc);
+ // remove from any possible existence on the portal list
+ _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;
}
@@ -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(", locations=").append(StringUtil.toString(_locations));
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();
}
@@ -325,8 +325,8 @@ public class MisoScene implements Scene
/** The clusters within the scene. */
protected ArrayList _clusters;
- /** The exits to different scenes. */
- protected ArrayList _exits;
+ /** The portals to different scenes. */
+ protected ArrayList _portals;
/** The default tile for the base layer in the scene. */
protected Tile _deftile;
diff --git a/src/java/com/threerings/miso/client/Exit.java b/src/java/com/threerings/miso/client/Exit.java
deleted file mode 100644
index 279cf9790..000000000
--- a/src/java/com/threerings/miso/client/Exit.java
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// $Id: Exit.java,v 1.2 2001/08/11 00:00:13 shaper Exp $
-
-package com.threerings.miso.scene;
-
-/**
- * The Exit class represents a Location 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 Exit 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);
- }
-}
diff --git a/src/java/com/threerings/miso/client/IsoSceneView.java b/src/java/com/threerings/miso/client/IsoSceneView.java
index 742619850..894c181e0 100644
--- a/src/java/com/threerings/miso/client/IsoSceneView.java
+++ b/src/java/com/threerings/miso/client/IsoSceneView.java
@@ -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;
@@ -359,7 +359,7 @@ public class IsoSceneView implements EditableSceneView
gfx.rotate(rot);
// 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.fill(tri);
@@ -460,8 +460,7 @@ public class IsoSceneView implements EditableSceneView
if (y < (screenY + _model.tilehhei)) {
ty--;
for (int ii = 0; ii < numh; ii++) {
- if (!_dirty[tx][ty]) _numDirty++;
- _dirty[tx++][ty--] = true;
+ addDirtyTile(tx++, ty--);
}
}
@@ -500,8 +499,7 @@ public class IsoSceneView implements EditableSceneView
// add all tiles in the row to the dirty set
for (int jj = 0; jj < length; jj++) {
- if (!_dirty[tx][ty]) _numDirty++;
- _dirty[tx++][ty--] = true;
+ addDirtyTile(tx++, ty--);
}
// 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)
{
_scene = scene;
@@ -629,9 +651,9 @@ public class IsoSceneView implements EditableSceneView
_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)
diff --git a/src/java/com/threerings/miso/client/Portal.java b/src/java/com/threerings/miso/client/Portal.java
new file mode 100644
index 000000000..b09fa68a9
--- /dev/null
+++ b/src/java/com/threerings/miso/client/Portal.java
@@ -0,0 +1,36 @@
+//
+// $Id: Portal.java,v 1.1 2001/08/16 18:05:17 shaper Exp $
+
+package com.threerings.miso.scene;
+
+/**
+ * The Portal class represents a Location 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 Portal 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);
+ }
+}
diff --git a/src/java/com/threerings/miso/tools/xml/XMLSceneParser.java b/src/java/com/threerings/miso/tools/xml/XMLSceneParser.java
index aeef07433..31965002c 100644
--- a/src/java/com/threerings/miso/tools/xml/XMLSceneParser.java
+++ b/src/java/com/threerings/miso/tools/xml/XMLSceneParser.java
@@ -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;
@@ -74,9 +74,9 @@ public class XMLSceneParser extends DefaultHandler
int vals[] = StringUtil.parseIntArray(_chars.toString());
_scClusters.add(toCluster(_scLocations, vals));
- } else if (qName.equals("exits")) {
+ } else if (qName.equals("portals")) {
String vals[] = StringUtil.parseStringArray(_chars.toString());
- _scExits = toExitList(_scLocations, vals);
+ _scPortals = toPortalList(_scLocations, vals);
} else if (qName.equals("row")) {
if (_scLnum == MisoScene.LAYER_BASE) {
@@ -89,7 +89,7 @@ public class XMLSceneParser extends DefaultHandler
// construct the scene object on tag close
_scene = new MisoScene(
_tilemgr, _scName, _scLocations, _scClusters,
- _scExits, _scTiles);
+ _scPortals, _scTiles);
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
- * Exit objects constructed from each successive
- * triplet of values as (locidx, scene name) in the array. The
+ * Portal objects constructed from each successive
+ * triplet of values as (locidx, portal name) in the array. The
* list of Location objects must have already been
* fully read previously.
*
@@ -229,27 +229,27 @@ public class XMLSceneParser extends DefaultHandler
* @param ArrayList the location list.
* @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
if ((vals.length % 2) != 0) return null;
- // read in all of the exits
- ArrayList exits = new ArrayList();
+ // read in all of the portals
+ ArrayList portals = new ArrayList();
for (int ii = 0; ii < vals.length; ii += 2) {
int locidx = getInt(vals[ii]);
- // create the exit and add to the list
- Exit exit = new Exit((Location)locs.get(locidx), vals[ii+1]);
- exits.add(exit);
+ // create the portal and add to the list
+ Portal portal = new Portal((Location)locs.get(locidx), vals[ii+1]);
+ portals.add(portal);
// 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;
_scTiles = new Tile[width][height][MisoScene.NUM_LAYERS];
_scLocations = null;
- _scExits = null;
+ _scPortals = null;
_scClusters = new ArrayList();
}
@@ -326,7 +326,7 @@ public class XMLSceneParser extends DefaultHandler
/** Temporary storage of scene object values and data. */
protected StringBuffer _chars;
protected String _scName;
- protected ArrayList _scLocations, _scExits, _scClusters;
+ protected ArrayList _scLocations, _scPortals, _scClusters;
protected Tile[][][] _scTiles;
protected int _scLnum, _scRownum, _scColstart;
}
diff --git a/src/java/com/threerings/miso/tools/xml/XMLSceneWriter.java b/src/java/com/threerings/miso/tools/xml/XMLSceneWriter.java
index 0734d7d82..158f223cb 100644
--- a/src/java/com/threerings/miso/tools/xml/XMLSceneWriter.java
+++ b/src/java/com/threerings/miso/tools/xml/XMLSceneWriter.java
@@ -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;
@@ -21,8 +21,8 @@ import com.threerings.miso.tile.Tile;
* com.threerings.miso.scene.MisoScene} object to an XML file.
*
*
The scene id is omitted as the scene id is assigned when the
- * scene template is actually loaded into a server. Similarly, exit
- * points are specified by scene name rather than scene id.
+ * scene template is actually loaded into a server. Similarly,
+ * portals are named and bound to their target scene ids later.
*/
public class XMLSceneWriter extends DataWriter
{
@@ -57,7 +57,7 @@ public class XMLSceneWriter extends DataWriter
writeClusters(scene);
endElement("clusters");
- dataElement("exits", getExitData(scene));
+ dataElement("portals", getPortalData(scene));
startElement("tiles");
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
- * exit is specified by a comma-delimited tuple of (location
- * index, scene name) values.
+ * Return a string representation of the portals in the scene. Each
+ * portal is specified by a comma-delimited tuple of (location
+ * index, portal name) values.
*
* @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 exits = scene.getExits();
+ ArrayList portals = scene.getPortals();
StringBuffer buf = new StringBuffer();
- int size = exits.size();
+ int size = portals.size();
for (int ii = 0; ii < size; ii++) {
- Exit exit = (Exit)exits.get(ii);
- buf.append(locs.indexOf(exit)).append(",");
- buf.append(exit.name);
+ Portal portal = (Portal)portals.get(ii);
+ buf.append(locs.indexOf(portal)).append(",");
+ buf.append(portal.name);
if (ii < size - 1) buf.append(",");
}
diff --git a/src/java/com/threerings/whirled/data/DummyScene.java b/src/java/com/threerings/whirled/data/DummyScene.java
index 2608cf3b8..a0af9666e 100644
--- a/src/java/com/threerings/whirled/data/DummyScene.java
+++ b/src/java/com/threerings/whirled/data/DummyScene.java
@@ -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;
@@ -22,7 +22,7 @@ public class DummyScene implements Scene
return 1;
}
- public int[] getExitIds ()
+ public int[] getPortalIds ()
{
return null;
}
diff --git a/src/java/com/threerings/whirled/data/Scene.java b/src/java/com/threerings/whirled/data/Scene.java
index 7490148f4..6816dfc92 100644
--- a/src/java/com/threerings/whirled/data/Scene.java
+++ b/src/java/com/threerings/whirled/data/Scene.java
@@ -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;
@@ -13,5 +13,5 @@ public interface Scene
public int getVersion ();
- public int[] getExitIds ();
+ public int[] getPortalIds ();
}
diff --git a/tests/rsrc/scenes/default.xml b/tests/rsrc/scenes/default.xml
index 2f7d00ece..58a0e7095 100644
--- a/tests/rsrc/scenes/default.xml
+++ b/tests/rsrc/scenes/default.xml
@@ -5,29 +5,29 @@