module Rattletrap.Decode.ExtendedExplosionAttribute
  ( decodeExtendedExplosionAttributeBits
  )
where

import Rattletrap.Decode.Common
import Rattletrap.Decode.ExplosionAttribute
import Rattletrap.Decode.FlaggedIntAttribute
import Rattletrap.Type.ExtendedExplosionAttribute

decodeExtendedExplosionAttributeBits
  :: (Int, Int, Int) -> DecodeBits ExtendedExplosionAttribute
decodeExtendedExplosionAttributeBits :: (Int, Int, Int) -> DecodeBits ExtendedExplosionAttribute
decodeExtendedExplosionAttributeBits (Int, Int, Int)
version =
  ExplosionAttribute
-> FlaggedIntAttribute -> ExtendedExplosionAttribute
ExtendedExplosionAttribute
    (ExplosionAttribute
 -> FlaggedIntAttribute -> ExtendedExplosionAttribute)
-> BitGet ExplosionAttribute
-> BitGet (FlaggedIntAttribute -> ExtendedExplosionAttribute)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Int, Int, Int) -> BitGet ExplosionAttribute
decodeExplosionAttributeBits (Int, Int, Int)
version
    BitGet (FlaggedIntAttribute -> ExtendedExplosionAttribute)
-> BitGet FlaggedIntAttribute
-> DecodeBits ExtendedExplosionAttribute
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> BitGet FlaggedIntAttribute
decodeFlaggedIntAttributeBits