rattletrap-0.1.0: library/Rattletrap/AttributeValue/PrivateMatchSettings.hs
module Rattletrap.AttributeValue.PrivateMatchSettings where
import Rattletrap.Text
import Rattletrap.Word32
import qualified Data.Binary.Bits.Get as BinaryBit
import qualified Data.Binary.Bits.Put as BinaryBit
data PrivateMatchSettingsAttributeValue = PrivateMatchSettingsAttributeValue
{ privateMatchSettingsAttributeValueMutators :: Text
, privateMatchSettingsAttributeValueJoinableBy :: Word32
, privateMatchSettingsAttributeValueMaxPlayers :: Word32
, privateMatchSettingsAttributeValueGameName :: Text
, privateMatchSettingsAttributeValuePassword :: Text
, privateMatchSettingsAttributeValueFlag :: Bool
} deriving (Eq, Ord, Show)
getPrivateMatchSettingsAttributeValue :: BinaryBit.BitGet PrivateMatchSettingsAttributeValue
getPrivateMatchSettingsAttributeValue = do
mutators <- getTextBits
joinableBy <- getWord32Bits
maxPlayers <- getWord32Bits
gameName <- getTextBits
password <- getTextBits
flag <- BinaryBit.getBool
pure
(PrivateMatchSettingsAttributeValue
mutators
joinableBy
maxPlayers
gameName
password
flag)
putPrivateMatchSettingsAttributeValue :: PrivateMatchSettingsAttributeValue
-> BinaryBit.BitPut ()
putPrivateMatchSettingsAttributeValue privateMatchSettingsAttributeValue = do
putTextBits
(privateMatchSettingsAttributeValueMutators
privateMatchSettingsAttributeValue)
putWord32Bits
(privateMatchSettingsAttributeValueJoinableBy
privateMatchSettingsAttributeValue)
putWord32Bits
(privateMatchSettingsAttributeValueMaxPlayers
privateMatchSettingsAttributeValue)
putTextBits
(privateMatchSettingsAttributeValueGameName
privateMatchSettingsAttributeValue)
putTextBits
(privateMatchSettingsAttributeValuePassword
privateMatchSettingsAttributeValue)
BinaryBit.putBool
(privateMatchSettingsAttributeValueFlag privateMatchSettingsAttributeValue)