From 79da3ac15c327cb417a045c821bc95cb3b6c6a9f Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Fri, 13 Aug 2004 20:48:27 +0000 Subject: [PATCH] Let the caller know that we're refusing a duplicate interesting object. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3071 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- src/java/com/threerings/miso/data/MisoSceneModel.java | 7 +++++-- .../threerings/miso/data/SimpleMisoSceneModel.java | 5 +++-- .../threerings/miso/data/SparseMisoSceneModel.java | 11 ++++++----- .../threerings/miso/data/VirtualMisoSceneModel.java | 4 ++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/java/com/threerings/miso/data/MisoSceneModel.java b/src/java/com/threerings/miso/data/MisoSceneModel.java index 74cf03fbf..12ec993f8 100644 --- a/src/java/com/threerings/miso/data/MisoSceneModel.java +++ b/src/java/com/threerings/miso/data/MisoSceneModel.java @@ -1,5 +1,5 @@ // -// $Id: MisoSceneModel.java,v 1.19 2004/02/25 14:43:57 mdb Exp $ +// $Id: MisoSceneModel.java,v 1.20 2004/08/13 20:48:27 mdb Exp $ package com.threerings.miso.data; @@ -75,8 +75,11 @@ public abstract class MisoSceneModel extends SimpleStreamableObject /** * Adds an object to this scene. + * + * @return true if the object was added, false if the add was rejected + * due to being a duplicate. */ - public abstract void addObject (ObjectInfo info); + public abstract boolean addObject (ObjectInfo info); /** * Updates an object in this scene. diff --git a/src/java/com/threerings/miso/data/SimpleMisoSceneModel.java b/src/java/com/threerings/miso/data/SimpleMisoSceneModel.java index bc0fc46a7..8581ed81e 100644 --- a/src/java/com/threerings/miso/data/SimpleMisoSceneModel.java +++ b/src/java/com/threerings/miso/data/SimpleMisoSceneModel.java @@ -1,5 +1,5 @@ // -// $Id: SimpleMisoSceneModel.java,v 1.5 2003/04/19 22:40:34 mdb Exp $ +// $Id: SimpleMisoSceneModel.java,v 1.6 2004/08/13 20:48:27 mdb Exp $ package com.threerings.miso.data; @@ -126,7 +126,7 @@ public class SimpleMisoSceneModel extends MisoSceneModel } // documentation inherited - public void addObject (ObjectInfo info) + public boolean addObject (ObjectInfo info) { if (info.isInteresting()) { objectInfo = (ObjectInfo[])ArrayUtil.append(objectInfo, info); @@ -135,6 +135,7 @@ public class SimpleMisoSceneModel extends MisoSceneModel objectXs = ArrayUtil.append(objectXs, (short)info.x); objectYs = ArrayUtil.append(objectYs, (short)info.y); } + return true; } // documentation inherited diff --git a/src/java/com/threerings/miso/data/SparseMisoSceneModel.java b/src/java/com/threerings/miso/data/SparseMisoSceneModel.java index 71dad48ff..a6355bf54 100644 --- a/src/java/com/threerings/miso/data/SparseMisoSceneModel.java +++ b/src/java/com/threerings/miso/data/SparseMisoSceneModel.java @@ -1,5 +1,5 @@ // -// $Id: SparseMisoSceneModel.java,v 1.13 2004/03/31 02:16:12 eric Exp $ +// $Id: SparseMisoSceneModel.java,v 1.14 2004/08/13 20:48:27 mdb Exp $ package com.threerings.miso.data; @@ -97,14 +97,14 @@ public class SparseMisoSceneModel extends MisoSceneModel baseTileIds[(row-y)*width+(col-x)] = fqBaseTileId; } - public void addObject (ObjectInfo info) { + public boolean addObject (ObjectInfo info) { // sanity check: see if there is already an object of this // type at these coordinates if (ListUtil.indexOfEqual(objectInfo, info) != -1 || indexOfUn(info) != -1) { Log.warning("Refusing to add duplicate interesting " + "object " + info + "."); - return; + return false; } if (info.isInteresting()) { @@ -114,6 +114,7 @@ public class SparseMisoSceneModel extends MisoSceneModel objectXs = ArrayUtil.append(objectXs, (short)info.x); objectYs = ArrayUtil.append(objectYs, (short)info.y); } + return true; } public boolean removeObject (ObjectInfo info) { @@ -329,9 +330,9 @@ public class SparseMisoSceneModel extends MisoSceneModel } // documentation inherited - public void addObject (ObjectInfo info) + public boolean addObject (ObjectInfo info) { - getSection(info.x, info.y, true).addObject(info); + return getSection(info.x, info.y, true).addObject(info); } // documentation inherited diff --git a/src/java/com/threerings/miso/data/VirtualMisoSceneModel.java b/src/java/com/threerings/miso/data/VirtualMisoSceneModel.java index c77dd114f..e3b00c7ed 100644 --- a/src/java/com/threerings/miso/data/VirtualMisoSceneModel.java +++ b/src/java/com/threerings/miso/data/VirtualMisoSceneModel.java @@ -1,5 +1,5 @@ // -// $Id: VirtualMisoSceneModel.java,v 1.4 2004/02/25 14:43:57 mdb Exp $ +// $Id: VirtualMisoSceneModel.java,v 1.5 2004/08/13 20:48:27 mdb Exp $ package com.threerings.miso.data; @@ -21,7 +21,7 @@ public abstract class VirtualMisoSceneModel extends MisoSceneModel } // documentation inherited from interface - public void addObject (ObjectInfo info) + public boolean addObject (ObjectInfo info) { throw new UnsupportedOperationException(); }