packages feed

Rasenschach-0.1: Command.hs

module Command
where

import FRP.Yampa

data Command =
      CmdQuit
    | CmdNewGame
    | CmdFreeze
    | CmdResume
    | CmdPassHigh   {dt :: Time}
    | CmdPassLow    {dt :: Time}
    | CmdKickHigh   {dt :: Time}
    | CmdKickLow    {dt :: Time}
    | CmdToggleFoot
    | CmdTakeOver
    | CmdFlipHigh
    | CmdFlipLow
    | CmdMoveForward
    | CmdMoveBackward
    | CmdMoveLeft
    | CmdMoveRight
    | CmdMoveToGoal
    | CmdMoveToMe
    | CmdFlipMeHigh
    | CmdFlipMeLow
 deriving (Show, Eq, Ord)

--cmd* :: [Command] -> (Bool, Time)
cmdQuit        [] = False; cmdQuit (c:cs) = case c of CmdQuit -> True ; _ -> cmdQuit cs
--cmdNewGame    [] = False; cmdNewGame (c:cs) = case c of CmdNewGame -> True ; _ -> cmdNewGame cs
cmdFreeze      [] = False; cmdFreeze (c:cs) = case c of CmdFreeze -> True ; _ -> cmdFreeze cs
--cmdResume     [] = False; cmdResume (c:cs) = case c of CmdResume -> True ; _ -> cmdResume cs
--cmdPassHigh   [] = (False, undefined); cmdPassHigh (c:cs) = case c of CmdPassHigh t -> (True, t) ; _ -> cmdPassHigh cs
--cmdPassLow    [] = (False, undefined); cmdPassLow (c:cs) = case c of CmdPassLow t -> (True, t) ; _ -> cmdPassLow cs
--cmdKickHigh   [] = (False, undefined); cmdKickHigh (c:cs) = case c of CmdKickHigh t -> (True, t) ; _ -> cmdKickHigh cs
--cmdKickLow    [] = (False, undefined); cmdKickLow (c:cs) = case c of CmdKickLow t -> (True, t) ; _ -> cmdKickLow cs
cmdToggleFoot  [] = False; cmdToggleFoot (c:cs) = case c of CmdToggleFoot -> True ; _ -> cmdToggleFoot cs
cmdTakeOver    [] = False; cmdTakeOver (c:cs) = case c of CmdTakeOver -> True ; _ -> cmdTakeOver cs
cmdMoveForward [] = False; cmdMoveForward (c:cs) = case c of CmdMoveForward -> True ; _ -> cmdMoveForward cs
cmdMoveBackward [] = False; cmdMoveBackward (c:cs) = case c of CmdMoveBackward -> True ; _ -> cmdMoveBackward cs
cmdMoveLeft [] = False; cmdMoveLeft (c:cs) = case c of CmdMoveLeft -> True ; _ -> cmdMoveLeft cs
cmdMoveRight [] = False; cmdMoveRight (c:cs) = case c of CmdMoveRight -> True ; _ -> cmdMoveRight cs
cmdMoveToGoal [] = False; cmdMoveToGoal (c:cs) = case c of CmdMoveToGoal -> True ; _ -> cmdMoveToGoal cs
cmdMoveToMe [] = False; cmdMoveToMe (c:cs) = case c of CmdMoveToMe -> True ; _ -> cmdMoveToMe cs
cmdFlipMeLow [] = False; cmdFlipMeLow (c:cs) = case c of CmdFlipMeLow -> True ; _ -> cmdFlipMeLow cs
cmdFlipMeHigh [] = False; cmdFlipMeHigh (c:cs) = case c of CmdFlipMeHigh -> True ; _ -> cmdFlipMeHigh cs