Commit Graph

14 Commits

Author SHA1 Message Date
Michael Bayne eb935ecfab Nixed unused variable references.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@686 c613c5cb-e716-0410-b11b-feb51c14d237
2008-07-26 22:04:34 +00:00
Dave Hoover 624daadcd9 Nix unneeded imports, add @Overrides, remove content-free comments, and rerun code generators.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@670 c613c5cb-e716-0410-b11b-feb51c14d237
2008-07-18 19:02:08 +00:00
Michael Bayne 5317113b01 Widening, implicit depends removal.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@635 c613c5cb-e716-0410-b11b-feb51c14d237
2008-06-29 14:13:12 +00:00
Michael Bayne 2890c16224 Back in the wild and wooly days of Puzzle Pirates development, we determined
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
2008-06-06 14:20:36 +00:00
Michael Bayne a133c7c693 Switch to new logging API.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@608 c613c5cb-e716-0410-b11b-feb51c14d237
2008-05-27 20:00:28 +00:00
Dave Hoover ae4596def5 Bag out if we get a progress event from a non-player as we'll just blow
up on an ArrayIndexOutOfBoundsException a second later anyways.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@333 c613c5cb-e716-0410-b11b-feb51c14d237
2007-06-27 21:18:19 +00:00
Dave Hoover f85958032f Move the check for events for a non-puzzler after the checks
for invalid rounds and straggling events; if we've ended the
game and are getting straggling events, _playerOids has already
been cleared out, so it'll always look like a non-player.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@332 c613c5cb-e716-0410-b11b-feb51c14d237
2007-06-27 00:27:00 +00:00
Michael Bayne df9b6c2657 PuzzleConfig was totally pointless and prevented Yohoho from having all of its
game configs inherit from a single enhanced config. It also prevented the
puzzle stuff from being used by ToyBox. It is now gone and Yohoho is even more
broken, but the fixes are in progress.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@287 c613c5cb-e716-0410-b11b-feb51c14d237
2007-05-01 23:40:44 +00:00
Michael Bayne 33f55d5a8d Header patrol. Please be sure to use the header in lib/SOURCE_HEADER when
creating new source files.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@209 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-24 00:37:33 +00:00
Michael Bayne 75b34c6bf6 New service group world order. My enthusiasm for widening is being stretched.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@177 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-11 01:37:46 +00:00
Dave Hoover 1245defe65 Actually substitute keywords (these files are chock full of stale $Id$ tags)
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@150 c613c5cb-e716-0410-b11b-feb51c14d237
2007-01-24 00:22:09 +00:00
Michael Bayne d673b120be We need not to define createPlaceObject() so that backwards compatibility is
preserved with old games that only override getPlaceObjectClass(). Nothing
should be using PuzzleObject directly anyway.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@76 c613c5cb-e716-0410-b11b-feb51c14d237
2006-09-25 05:22:55 +00:00
Michael Bayne 37dd31ad75 More spots, missed.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@57 c613c5cb-e716-0410-b11b-feb51c14d237
2006-08-24 00:28:04 +00:00
Michael Bayne a4df87e52f Behold Vilya, Ring of Air and repository for our game and virtual worldly
extensions to the distributed environment provided by Narya.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@1 c613c5cb-e716-0410-b11b-feb51c14d237
2006-06-23 17:58:11 +00:00