rattletrap-2.2.2: library/Rattletrap/Attribute/PrivateMatchSettings.hs
module Rattletrap.Attribute.PrivateMatchSettings where
import Rattletrap.Primitive
import qualified Data.Binary.Bits.Get as BinaryBit
import qualified Data.Binary.Bits.Put as BinaryBit
data PrivateMatchSettingsAttribute = PrivateMatchSettingsAttribute
{ privateMatchSettingsAttributeMutators :: Text
, privateMatchSettingsAttributeJoinableBy :: Word32
, privateMatchSettingsAttributeMaxPlayers :: Word32
, privateMatchSettingsAttributeGameName :: Text
, privateMatchSettingsAttributePassword :: Text
, privateMatchSettingsAttributeFlag :: Bool
} deriving (Eq, Ord, Show)
getPrivateMatchSettingsAttribute :: BinaryBit.BitGet PrivateMatchSettingsAttribute
getPrivateMatchSettingsAttribute = do
mutators <- getTextBits
joinableBy <- getWord32Bits
maxPlayers <- getWord32Bits
gameName <- getTextBits
password <- getTextBits
flag <- BinaryBit.getBool
pure
(PrivateMatchSettingsAttribute
mutators
joinableBy
maxPlayers
gameName
password
flag)
putPrivateMatchSettingsAttribute :: PrivateMatchSettingsAttribute
-> BinaryBit.BitPut ()
putPrivateMatchSettingsAttribute privateMatchSettingsAttribute = do
putTextBits
(privateMatchSettingsAttributeMutators privateMatchSettingsAttribute)
putWord32Bits
(privateMatchSettingsAttributeJoinableBy privateMatchSettingsAttribute)
putWord32Bits
(privateMatchSettingsAttributeMaxPlayers privateMatchSettingsAttribute)
putTextBits
(privateMatchSettingsAttributeGameName privateMatchSettingsAttribute)
putTextBits
(privateMatchSettingsAttributePassword privateMatchSettingsAttribute)
BinaryBit.putBool
(privateMatchSettingsAttributeFlag privateMatchSettingsAttribute)