be extended to contain the sceneId by Whirled (Vilya's Whirled, though also
Whirled Whirled by extension) so that we don't end up with problems where
BodyObject.location changes but BodyObject.sceneId remains stale. This won't
impact Yohoho because the Yohoho client is always in a scene, it uses a
separate mechanism to track games, whereas Whirled's natural usage is to move
between scenes and non-scenes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4779 542714f4-19e9-0310-aa3c-eee0fc999fb1
our code generation stuff is not the ultra-sophisticated, but we'll cope.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4764 542714f4-19e9-0310-aa3c-eee0fc999fb1
everything in two languages. Especially when one doesn't support inner classes
and has non-C syntax just to make life easier for parser writers.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4762 542714f4-19e9-0310-aa3c-eee0fc999fb1
because the oldValue variable didn't contain UNSET_OLD_VALUE, but
rather null because it was set that way in the constructor.
Additionally, some of the constructors would only set the old value
if it wasn't null, which is also wrong because an old value can
easily be null.
We could probably just rip apart most of this code, because for
the most part events are not constructed on the client anyway. We might be
able to get away with just making all the event constructors 0 arg, and
then we don't have to worry about UNSET_OLD_VALUE, we just always apply.
But let's try to be more similar to the Java code, and so now I emulate
multiple constructors by checking how many arguments were provided and
not configuring event-specific data if it wasn't actually provided
to the constructor.
Note: none of this would be necessary if we could just declare a constructor:
public function AttributeChangedEvent (
targetOid :int = 0, name :String = null, value :Object = null,
oldValue :Object = UNSET_OLD_VALUE);
But you can't use constants as the default value in a parameter list
(commence being boggled) so we have to use null instead of UNSET_OLD_VALUE
as the default value, and then check the 'arguments' special variable to
see if someone passed in null or whether it came from the default value. Aiya.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4726 542714f4-19e9-0310-aa3c-eee0fc999fb1
except that messages will never leave the server. If generated on a client,
they'll go to the server and be processed like a normal event there
(event handlers will be called) but the event will not leave the server and
be sent to subscribing clients.
Changed the ManagerCaller used by PlaceObjects to use ServerMessageEvents.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4648 542714f4-19e9-0310-aa3c-eee0fc999fb1
The way this all works is: when you send a primitive to the server, you
must wrap it up yourself, because there's no way for flash to distinguish
between the integer 3 and the floating point value 3.0.
But when it comes from the server, it's all wrapped up in a very specific
type and we can easily unwrap it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4623 542714f4-19e9-0310-aa3c-eee0fc999fb1
Hashtable -> HashMap
The one regularly used is now called HashMap. It can have keys of simple
flash datatypes, as well as objects that implement Hashable.
HashObjectMap has the ability to use nearly any object as a key, but
pays a price for it and should be avoided unless you need it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4591 542714f4-19e9-0310-aa3c-eee0fc999fb1
Make Long not wrapped for now.
Don't svn update until after mdb regenerates everything..
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4569 542714f4-19e9-0310-aa3c-eee0fc999fb1
I write two lines in the afternoon and it makes me feel alright.
I write two lines in times of peace, I write two in times of war.
I write two lines before I write two lines, and then I write two more.
Bringing ActionScript world into line with the Javver.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4556 542714f4-19e9-0310-aa3c-eee0fc999fb1
Created a simple MethodQueue utility class that works nearly identically
to UIComponent.callLater().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4537 542714f4-19e9-0310-aa3c-eee0fc999fb1
If a listener was removed during event dispatch, the size of the list
was shrinking and putting the kibosh on listeners at the end of the list.
(The Java side avoids this due to the different way arrays work.)
- Changed the listener and subscriber lists to simple arrays, and make
a copy prior to dispatch so that we don't miss anybody!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4467 542714f4-19e9-0310-aa3c-eee0fc999fb1
keep all observers in the list if the 'apply' function you specify
returns void.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4374 542714f4-19e9-0310-aa3c-eee0fc999fb1
There is already a ResultAdapter in util/ that adapts an
invocation service ResultListener into a com.samskivert.util.ResultListener.
Flash can't cope with two classes of the same name in the same library
module, so I named my adapter *Wrapper. For consistency it would be nice
if these were the same in ActionScript and Java, so maybe we'll end up
just renaming the one in util/.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4354 542714f4-19e9-0310-aa3c-eee0fc999fb1