rattletrap-0.1.0: library/Rattletrap/AttributeValue/TeamPaint.hs
module Rattletrap.AttributeValue.TeamPaint where
import Rattletrap.Word32
import Rattletrap.Word8
import qualified Data.Binary.Bits.Get as BinaryBit
import qualified Data.Binary.Bits.Put as BinaryBit
data TeamPaintAttributeValue = TeamPaintAttributeValue
{ teamPaintAttributeValueTeam :: Word8
, teamPaintAttributeValuePrimaryColor :: Word8
, teamPaintAttributeValueAccentColor :: Word8
, teamPaintAttributeValuePrimaryFinish :: Word32
, teamPaintAttributeValueAccentFinish :: Word32
} deriving (Eq, Ord, Show)
getTeamPaintAttributeValue :: BinaryBit.BitGet TeamPaintAttributeValue
getTeamPaintAttributeValue = do
team <- getWord8Bits
primaryColor <- getWord8Bits
accentColor <- getWord8Bits
primaryFinish <- getWord32Bits
accentFinish <- getWord32Bits
pure
(TeamPaintAttributeValue
team
primaryColor
accentColor
primaryFinish
accentFinish)
putTeamPaintAttributeValue :: TeamPaintAttributeValue -> BinaryBit.BitPut ()
putTeamPaintAttributeValue teamPaintAttributeValue = do
putWord8Bits (teamPaintAttributeValueTeam teamPaintAttributeValue)
putWord8Bits (teamPaintAttributeValuePrimaryColor teamPaintAttributeValue)
putWord8Bits (teamPaintAttributeValueAccentColor teamPaintAttributeValue)
putWord32Bits (teamPaintAttributeValuePrimaryFinish teamPaintAttributeValue)
putWord32Bits (teamPaintAttributeValueAccentFinish teamPaintAttributeValue)