diff --git a/src/as/com/threerings/crowd/data/BodyObject.as b/src/as/com/threerings/crowd/data/BodyObject.as index d76fdab40..0dade0653 100644 --- a/src/as/com/threerings/crowd/data/BodyObject.as +++ b/src/as/com/threerings/crowd/data/BodyObject.as @@ -201,7 +201,7 @@ public class BodyObject extends ClientObject { var who :String = username.toString() + " (" + getOid(); if (status != OccupantInfo.ACTIVE) { - who += (" " + OccupantInfo.X_STATUS[status]); + who += (" " + getStatusTranslation()); } who += ")"; return who; @@ -216,5 +216,14 @@ public class BodyObject extends ClientObject status = ins.readByte(); awayMessage = (ins.readField(String) as String); } + + /** + * Get a translation suffix for this occupant's status. + * Can be overridden to translate nonstandard statuses. + */ + protected function getStatusTranslation () :String + { + return OccupantInfo.X_STATUS[status]; + } } } diff --git a/src/java/com/threerings/crowd/data/BodyObject.java b/src/java/com/threerings/crowd/data/BodyObject.java index 0062fa5f6..056d95647 100644 --- a/src/java/com/threerings/crowd/data/BodyObject.java +++ b/src/java/com/threerings/crowd/data/BodyObject.java @@ -222,10 +222,19 @@ public class BodyObject extends ClientObject { buf.append(getOid()); if (status != OccupantInfo.ACTIVE) { - buf.append(" ").append(OccupantInfo.X_STATUS[status]); + buf.append(" ").append(getStatusTranslation()); } } + /** + * Get a translation suffix for this occupant's status. + * Can be overridden to translate nonstandard statuses. + */ + protected String getStatusTranslation () + { + return OccupantInfo.X_STATUS[status]; + } + /** The default (no tokens) access control. */ protected static final TokenRing EMPTY_TOKENS = new TokenRing(); }