From 2f611366d934b444289c79496282867d5493b259 Mon Sep 17 00:00:00 2001 From: Ray Greenwell Date: Fri, 3 Feb 2006 19:09:49 +0000 Subject: [PATCH] Send the oid of the applicable game with the Hand. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3828 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../parlor/card/client/CardGameController.java | 10 ++++++++++ .../threerings/parlor/card/client/CardGameDecoder.java | 2 +- .../parlor/card/client/CardGameReceiver.java | 3 ++- .../threerings/parlor/card/server/CardGameManager.java | 10 +++++----- .../threerings/parlor/card/server/CardGameSender.java | 4 ++-- 5 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/java/com/threerings/parlor/card/client/CardGameController.java b/src/java/com/threerings/parlor/card/client/CardGameController.java index 9dae4d13a..78ec18b3f 100644 --- a/src/java/com/threerings/parlor/card/client/CardGameController.java +++ b/src/java/com/threerings/parlor/card/client/CardGameController.java @@ -59,6 +59,16 @@ public abstract class CardGameController extends GameController // Documentation inherited. public void turnDidChange (Name turnHolder) {} + + /** + * Called by our sender to notify us of a received hand. + */ + public final void receivedHand (int oid, Hand hand) + { + if (oid == _gobj.getOid()) { + receivedHand(hand); + } + } /** * Called when the server deals the client a new hand of cards. Default diff --git a/src/java/com/threerings/parlor/card/client/CardGameDecoder.java b/src/java/com/threerings/parlor/card/client/CardGameDecoder.java index e750ee708..5428d4841 100644 --- a/src/java/com/threerings/parlor/card/client/CardGameDecoder.java +++ b/src/java/com/threerings/parlor/card/client/CardGameDecoder.java @@ -53,7 +53,7 @@ public class CardGameDecoder extends InvocationDecoder switch (methodId) { case RECEIVED_HAND: ((CardGameReceiver)receiver).receivedHand( - (Hand)args[0] + ((Integer)args[0]).intValue(), (Hand)args[1] ); return; diff --git a/src/java/com/threerings/parlor/card/client/CardGameReceiver.java b/src/java/com/threerings/parlor/card/client/CardGameReceiver.java index cfcc83262..f3ebbf708 100644 --- a/src/java/com/threerings/parlor/card/client/CardGameReceiver.java +++ b/src/java/com/threerings/parlor/card/client/CardGameReceiver.java @@ -35,9 +35,10 @@ public interface CardGameReceiver extends InvocationReceiver /** * Dispatched to the client when it has received a hand of cards. * + * @param oid the oid of the game for which this hand applies * @param hand the received hand */ - public void receivedHand (Hand hand); + public void receivedHand (int oid, Hand hand); /** * Dispatched to the client when it has received a set of cards diff --git a/src/java/com/threerings/parlor/card/server/CardGameManager.java b/src/java/com/threerings/parlor/card/server/CardGameManager.java index 89adf5ef4..13e945cb0 100644 --- a/src/java/com/threerings/parlor/card/server/CardGameManager.java +++ b/src/java/com/threerings/parlor/card/server/CardGameManager.java @@ -108,9 +108,9 @@ public class CardGameManager extends GameManager } else { Hand hand = deck.dealHand(size); if (!isAI(playerIndex)) { - CardGameSender.sendHand( - (ClientObject)PresentsServer.omgr.getObject( - _playerOids[playerIndex]), hand); + ClientObject clobj = (ClientObject) + PresentsServer.omgr.getObject(_playerOids[playerIndex]); + CardGameSender.sendHand(clobj, _cardgameobj.getOid(), hand); } return hand; } @@ -130,8 +130,8 @@ public class CardGameManager extends GameManager { if (deck.size() < size * _playerCount) { return null; - } - else { + + } else { Hand[] hands = new Hand[_playerCount]; for (int i=0;i<_playerCount;i++) { diff --git a/src/java/com/threerings/parlor/card/server/CardGameSender.java b/src/java/com/threerings/parlor/card/server/CardGameSender.java index e7f6ee0f6..f9fad18eb 100644 --- a/src/java/com/threerings/parlor/card/server/CardGameSender.java +++ b/src/java/com/threerings/parlor/card/server/CardGameSender.java @@ -21,11 +21,11 @@ public class CardGameSender extends InvocationSender * CardGameReceiver#receivedHand} on a client. */ public static void sendHand ( - ClientObject target, Hand arg1) + ClientObject target, int arg1, Hand arg2) { sendNotification( target, CardGameDecoder.RECEIVER_CODE, CardGameDecoder.RECEIVED_HAND, - new Object[] { arg1 }); + new Object[] { new Integer(arg1), arg2 }); } /**