From 6a783e8bc490b94d92a3f5c5743c2cea479a50f0 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Thu, 15 Nov 2007 02:09:51 +0000 Subject: [PATCH] Make the spot services work if you don't implement ClusteredBodyObject. You won't be able to use clusters but you'll still be able to use locations and portals. git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@501 c613c5cb-e716-0410-b11b-feb51c14d237 --- .../threerings/whirled/spot/client/SpotSceneDirector.as | 6 ++++-- .../threerings/whirled/spot/server/SpotSceneManager.java | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/as/com/threerings/whirled/spot/client/SpotSceneDirector.as b/src/as/com/threerings/whirled/spot/client/SpotSceneDirector.as index 060f0ea2..2f72f66c 100644 --- a/src/as/com/threerings/whirled/spot/client/SpotSceneDirector.as +++ b/src/as/com/threerings/whirled/spot/client/SpotSceneDirector.as @@ -123,7 +123,8 @@ public class SpotSceneDirector extends BasicDirector // sanity check the server's notion of what scene we're in with our notion of it var sceneId :int = _scdir.getScene().getId(); - var clSceneId :int = ScenePlace.getSceneId(_self as BodyObject); + var clSceneId :int = ScenePlace.getSceneId( + _wctx.getClient().getClientObject() as BodyObject); if (sceneId != clSceneId) { log.warning("Client and server differ in opinion of what scene we're in " + "[sSceneId=" + clSceneId + ", cSceneId=" + sceneId + "]."); @@ -385,7 +386,8 @@ public class SpotSceneDirector extends BasicDirector var scloc :SceneLocation = null; var ssobj :SpotSceneObject = (plobj as SpotSceneObject); if (ssobj != null) { - scloc = ssobj.occupantLocs.get((_self as BodyObject).getOid()) as SceneLocation; + scloc = ssobj.occupantLocs.get( + _wctx.getClient().getClientObject().getOid()) as SceneLocation; } _location = (scloc == null) ? null : scloc.loc; } diff --git a/src/java/com/threerings/whirled/spot/server/SpotSceneManager.java b/src/java/com/threerings/whirled/spot/server/SpotSceneManager.java index 5e53b6a2..5a25c0cc 100644 --- a/src/java/com/threerings/whirled/spot/server/SpotSceneManager.java +++ b/src/java/com/threerings/whirled/spot/server/SpotSceneManager.java @@ -378,8 +378,12 @@ public class SpotSceneManager extends SceneManager */ protected ClusterRecord getCluster (int bodyOid) { - ClusteredBodyObject bobj = (ClusteredBodyObject)CrowdServer.omgr.getObject(bodyOid); - return (bobj == null) ? null : _clusters.get(bobj.getClusterOid()); + BodyObject bobj = (BodyObject)CrowdServer.omgr.getObject(bodyOid); + if (bobj instanceof ClusteredBodyObject) { + return _clusters.get(((ClusteredBodyObject)bobj).getClusterOid()); + } else { + return null; + } } /**