diff --git a/bin/genreceiver b/bin/genreceiver index aed8cade1..0874d7772 100755 --- a/bin/genreceiver +++ b/bin/genreceiver @@ -1,6 +1,6 @@ #!/usr/bin/perl -w # -# $Id: genreceiver,v 1.3 2002/08/20 19:36:43 mdb Exp $ +# $Id: genreceiver,v 1.4 2004/10/13 19:29:12 andrzej Exp $ # # This script is used to generate invocation receiver marshaller and # unmarshaller classes based on receiver interface definitions. @@ -72,7 +72,7 @@ while ($srcfile = shift) { # run javap on the interface class my $jpcp = (defined $classpath) ? "-classpath $classpath" : ""; - my $jpcmd = "javap $jpcp $class"; + my $jpcmd = "/usr/local/j2sdk1.4.1/bin/javap $jpcp $class"; # clear out the imports table %imports = (); diff --git a/bin/genservice b/bin/genservice index 4160b7491..62860acd3 100755 --- a/bin/genservice +++ b/bin/genservice @@ -1,6 +1,6 @@ #!/usr/bin/perl -w # -# $Id: genservice,v 1.5 2002/08/20 19:36:43 mdb Exp $ +# $Id: genservice,v 1.6 2004/10/13 19:29:12 andrzej Exp $ # # This script is used to generate invocation service marshaller and # unmarshaller classes based on invocation service interface definitions. @@ -72,7 +72,7 @@ while ($srcfile = shift) { # run javap on the interface class my $jpcp = (defined $classpath) ? "-classpath $classpath" : ""; - my $jpcmd = "javap $jpcp $class"; + my $jpcmd = "/usr/local/j2sdk1.4.1/bin/javap $jpcp $class"; # clear out the imports table %imports = (); diff --git a/src/java/com/threerings/parlor/card/data/Card.java b/src/java/com/threerings/parlor/card/data/Card.java index 6038a124a..9c762b72d 100644 --- a/src/java/com/threerings/parlor/card/data/Card.java +++ b/src/java/com/threerings/parlor/card/data/Card.java @@ -1,5 +1,5 @@ // -// $Id: Card.java,v 1.1 2004/10/13 02:03:26 andrzej Exp $ +// $Id: Card.java,v 1.2 2004/10/13 19:29:12 andrzej Exp $ // // Narya library - tools for developing networked games // Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved @@ -70,7 +70,7 @@ public class Card implements CardCodes, */ public boolean isNumber() { - return number <= 11; + return number >= 2 && number <= 10; } /** @@ -103,6 +103,19 @@ public class Card implements CardCodes, return number == JOKER; } + /** + * Checks whether or not this card is valid. The no-arg public constructor + * for deserialization creates an invalid card. + * + * @return true if this card is valid, false if not + */ + public boolean isValid() + { + return number == JOKER || + (number >= 2 && number <= ACE && + suit >= HEARTS && suit <= SPADES); + } + /** * Writes this object to the specified output stream. * diff --git a/src/java/com/threerings/parlor/card/server/CardGameManager.java b/src/java/com/threerings/parlor/card/server/CardGameManager.java index b1a49c686..3caccf9d6 100644 --- a/src/java/com/threerings/parlor/card/server/CardGameManager.java +++ b/src/java/com/threerings/parlor/card/server/CardGameManager.java @@ -1,5 +1,5 @@ // -// $Id: CardGameManager.java,v 1.1 2004/10/13 02:03:26 andrzej Exp $ +// $Id: CardGameManager.java,v 1.2 2004/10/13 19:29:12 andrzej Exp $ // // Narya library - tools for developing networked games // Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved @@ -38,6 +38,38 @@ import com.threerings.presents.dobj.MessageEvent; public class CardGameManager extends GameManager implements CardCodes { + /** + * Deals a hand of cards to the player at the specified index from + * the given Deck. + * + * @param deck the deck from which to deal + * @param size the size of the hand to deal + * @param playerIndex the index of the target player + * @return the hand dealt to the player, or null if the deal + * was canceled because the deck did not contain enough cards + */ + public Hand dealHand(Deck deck, int size, int playerIndex) + { + if(deck.cards.size() < size) + { + return null; + } + else + { + Hand hand = deck.dealHand(size); + + _omgr.postEvent( + new MessageEvent( + _playerOids[playerIndex], + TAKE_HAND, + new Object[] { hand } + ) + ); + + return hand; + } + } + /** * Deals a hand of cards to each player from the specified * Deck. @@ -60,13 +92,7 @@ public class CardGameManager extends GameManager for(int i=0;i<_playerCount;i++) { - _omgr.postEvent( - new MessageEvent( - _playerOids[i], - TAKE_HAND, - new Object[] { hands[i] = deck.dealHand(size) } - ) - ); + hands[i] = dealHand(deck, size, i); } return hands;