module Rattletrap.Decode.TeamPaintAttribute
  ( decodeTeamPaintAttributeBits
  )
where

import Rattletrap.Decode.Common
import Rattletrap.Decode.Word32le
import Rattletrap.Decode.Word8le
import Rattletrap.Type.TeamPaintAttribute

decodeTeamPaintAttributeBits :: DecodeBits TeamPaintAttribute
decodeTeamPaintAttributeBits :: DecodeBits TeamPaintAttribute
decodeTeamPaintAttributeBits =
  Word8le
-> Word8le -> Word8le -> Word32le -> Word32le -> TeamPaintAttribute
TeamPaintAttribute
    (Word8le
 -> Word8le
 -> Word8le
 -> Word32le
 -> Word32le
 -> TeamPaintAttribute)
-> BitGet Word8le
-> BitGet
     (Word8le -> Word8le -> Word32le -> Word32le -> TeamPaintAttribute)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> BitGet Word8le
decodeWord8leBits
    BitGet
  (Word8le -> Word8le -> Word32le -> Word32le -> TeamPaintAttribute)
-> BitGet Word8le
-> BitGet (Word8le -> Word32le -> Word32le -> TeamPaintAttribute)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> BitGet Word8le
decodeWord8leBits
    BitGet (Word8le -> Word32le -> Word32le -> TeamPaintAttribute)
-> BitGet Word8le
-> BitGet (Word32le -> Word32le -> TeamPaintAttribute)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> BitGet Word8le
decodeWord8leBits
    BitGet (Word32le -> Word32le -> TeamPaintAttribute)
-> BitGet Word32le -> BitGet (Word32le -> TeamPaintAttribute)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> BitGet Word32le
decodeWord32leBits
    BitGet (Word32le -> TeamPaintAttribute)
-> BitGet Word32le -> DecodeBits TeamPaintAttribute
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> BitGet Word32le
decodeWord32leBits