something because the requester is not the owner of the table and trying to
boot onesself from the table.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@764 c613c5cb-e716-0410-b11b-feb51c14d237
If ActionScript supported anonymous classes, TableDirector would not have to
implement InvocationService_ResultListener and could instead define a calldown
handleFailure() method that the client could override by anonymously extending
TableDirector at the point of instantiation and customize the failure handling
thusly. But it doesn't, and so we pollute TableDirector with yet more methods
that many clients probably don't care about.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@763 c613c5cb-e716-0410-b11b-feb51c14d237
the TableDirector (in Flash) even though none of that is actually wired up in
MSOY.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@748 c613c5cb-e716-0410-b11b-feb51c14d237
- Apparently genservice hasn't been run in a while, so half of vilya just got poked
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@709 c613c5cb-e716-0410-b11b-feb51c14d237
that we needed to be able to tell if one game ended and another one had started
so we introduced GameObject.roundId which was a value that was incremented
every time the game started. Thus if you had a timer that expired and you
wanted to make sure that somehow the game hadn't ended and then been started
anew while you were away, you could save the roundId and check it when you woke
up. That was all fine and good, except for the poor choice of variable name.
Then we came to implement Whirled and wanted to provide an abstraction of
"rounds" which were subunits into which a single game is divided. We had this
lovely variable already lying around called roundId and we succumbed to the
temptation to overload its meaning and have games that use round increment the
round id multiple times during a game which preserves the monotonically
increasing nature of roundId as expected by the Parlor code and seemed to do no
harm.
Then we discovered a pesky wrinkle, which is that GameManager sets
GameObject.roundId in gameWillStart() and then goes on to set GameObject.state
after that. We were naturally listening for roundId to change and triggering a
call to roundDidStart() at that time, but this resulted in a strange sequencing
of callback methods that went: roundDidStart(), gameDidStart(), roundDidEnd(),
roundDidStart(), ..., roundDidEnd(), gameDidEnd().
The premature roundDidStart() was irksome, and I looked into what would be
needed to remedy it. It turned out that a lot of code on the server-side of
things depended on the Parlor semantics of roundId and wanted roundId to be set
to the current round's value in gameWillStart() and similarly in
gameDidStart(). However, there's no gameWillStart() on the client and it
didn't appear to me that anyone much cared about roundId in gameDidStart(), so
I opted for some hackery in the name of expedience that preserved the
server-side semantics but changed the client to see ROUND_ID change after STATE
changed.
As you might expect given the verbosity of this explanation, that turned out to
be a new bad idea stacked on the previous bad idea of reusing roundId which was
stacked on the bad choice of name for roundId. It turns out some puzzles in
Yohoho did expect roundId to be already set in gameDidStart() which was no
longer the case and the inevitable digital mayhem ensued.
The time has come to undo the various bad decisions and replace them with new
decisions that we hope aren't bad. Those decisions are:
- rename roundId in GameObject to sessionId and restore its original semantics
which are that it represents a monotonically increasing integer that is
incremented (and published to the client) in gameWillStart() and thus
represents the current game session from the very first to the very last;
- add WhirledGameObject.roundId for handling rounds in Whirled games and give
it the semantics we desire which are for it to be set to 1 in gameDidStart()
and then incremented only when a new round is started, and reset to 1 when a
new game is started (this change is in another commit).
This will temporarily break some builds as I need to go rename some things in
Yohoho and then I need to look at Bang! Howdy which if I recall correctly also
naughtily uses roundId for nefarious ulterior purposes and needs also to be
cured of its wayward habits.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@611 c613c5cb-e716-0410-b11b-feb51c14d237
but the functionality is handled automatically in whirled.
Let's avoid confusion by leaving this out of the asdocs..
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@555 c613c5cb-e716-0410-b11b-feb51c14d237
AsDoc is crappy: the @eventType tag has two different syntaxes, depending on whether
you're using it to comment an [Event] declared by a class, or the type constant.
Also: this is pointless, asdoc should be able to get this value using the other
@eventType tag, but instead we have to be redundant, possibly making a mistake.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@547 c613c5cb-e716-0410-b11b-feb51c14d237
asdoc tool fails to recognize the Events, and they don't end up in the documentation.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@537 c613c5cb-e716-0410-b11b-feb51c14d237
Moved everything onto sub-control objects.
Got rid of the Listener interfaces.
https://intranet.earth.threerings.net/metasoy/EZGame_API_Reorg
I'll go through and make the documentation nice next.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@535 c613c5cb-e716-0410-b11b-feb51c14d237
(I check every time so that this still works after you're disconnected.)
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@526 c613c5cb-e716-0410-b11b-feb51c14d237
paremeter, it assumes you're supplying the description for the first parameter, even if you
supply the name of the parameter you're describing. This basically means that docs for functions
need to supply @params for all parameters or none.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@525 c613c5cb-e716-0410-b11b-feb51c14d237
call playerReady() rather than none of them. Also tidied up the way
EZGameController delays playerReady() until the game backend is connected.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@520 c613c5cb-e716-0410-b11b-feb51c14d237
(just to be safe), but let's document why we're doing that as well
as do it outside the try/catch, in case there's an error in our code.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@518 c613c5cb-e716-0410-b11b-feb51c14d237
We should always log any errors thrown from usercode. Oops.
Fixed.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@517 c613c5cb-e716-0410-b11b-feb51c14d237
that was stupid. Now they're called players. Next I added a list of watchers
rather than simply a count. If we're going to go to all the trouble to update
the table when the watchers change, let's have the goods.
This will probably break Bang and/or Yohoho. I'll fix them toot sweet.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@515 c613c5cb-e716-0410-b11b-feb51c14d237
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