Implement other lists
authorJoachim Breitner <mail@joachim-breitner.de>
Sat, 5 Jul 2008 00:48:27 +0000 (00:48 +0000)
committerJoachim Breitner <mail@joachim-breitner.de>
Sat, 5 Jul 2008 00:48:27 +0000 (00:48 +0000)
Partty.hs

index bff0e0a..e3bc4f8 100644 (file)
--- a/Partty.hs
+++ b/Partty.hs
@@ -2,7 +2,8 @@
  
 module Partty where
 
-import Data.Map
+import qualified Data.Map as M
+import Data.Map (Map)
 import Control.Monad.State
 import Control.Monad.Reader
 import Control.Monad.Writer
@@ -60,7 +61,9 @@ data InternalMessage = MyPlayerId Player
                     | PlayerLeave Player Place
                     | ActionsLeft Int
                     | MultiLine Int LineEater
-                    | PlayerList [String]
+                    | PlayerList [Player]
+                    | ScoreList [(Player, Int)]
+                    | NameList [(Player, String)]
                     | Noise
                     deriving (Show)
 
@@ -237,7 +240,12 @@ parseIncomingMessage msg = case id of
 
        60 -> NightMessage    (PartyHint int1)
 
-       31 -> InternalMessage (MultiLine int1 (LineEater $ \l -> InternalMessage (PlayerList l)))
+       30 -> InternalMessage (MultiLine int1 (LineEater $ \l ->
+               InternalMessage (PlayerList (map parsePlayer l))))
+       32 -> InternalMessage (MultiLine int1 (LineEater $ \l ->
+               InternalMessage (ScoreList (map parseScore l))))
+       34 -> InternalMessage (MultiLine int1 (LineEater $ \l ->
+               InternalMessage (NameList (map parseName l))))
 
        
        --_  -> UnknownMessage msg
@@ -253,6 +261,10 @@ parseIncomingMessage msg = case id of
        s3   = read (param_s !! 2) :: String
        int3 = read (param_s !! 2) :: Int
 
+       parsePlayer str = read (words str !! 2)
+       parseScore str = (read (words str !! 2), read (words str !! 2))
+       parseName str = (read (words str !! 2), read (words str !! 2))
+
 sendClientMessage :: Handle -> ClientMessage -> IO ()
 sendClientMessage h msg = do putStrLn $ "Client says: " ++ (show msg)
                              hPutStrLn h (toString msg)